Seite 1 von 1

port='/dev/ttyUSBX' mit PORT1 odr Port2 usw...

Verfasst: Samstag 3. August 2019, 22:00
von SolarGuido
Hallo,

bin leider nicht so fit mit python und hab ne Frage wegen der Möglichkeit den Port anstelle von USB0 oder USB1 ... Mit Port1 oder Port2 zu belegen.
Das doofe beim Rasbery ist das er hin und wieder die USB Zuordnung ändert, und ich habe das jetzt mit Ports gelöst.
KERNEL=="ttyUSB*", KERNELS=="1-1.1", SYMLINK+="ttyPORT1"
KERNEL=="ttyUSB*", KERNELS=="1-1.2", SYMLINK+="ttyPORT2"
Bei den meisten Anwendungen geht das jetzt perfekt, aber leider meine wenigen python scripte wollen das nicht.

Ich habe nirgends gefunden wie man das bei Python nutzen kann Beispiel:
Ich habe mein Gerät fest auf Port2 gemappt:

bisher war je nach Port:
ser = serial.Serial(port='/dev/ttyUSB0',baudrate=2400,timeout=2)
ser = serial.Serial(port='/dev/ttyUSB1',baudrate=2400,timeout=2)

Mit der Port zuweisung wäre das einfach
ser = serial.Serial(port='/dev/ttyPort2',baudrate=2400,timeout=2)

Aber mit Port kann phyton nix anfangen brauch man da was spezielles , ich hoffe das geht mit python.

Kann mir jemand hier auf die Sprünge helfen?

Re: port='/dev/ttyUSBX' mit PORT1 odr Port2 usw...

Verfasst: Samstag 3. August 2019, 22:16
von __deets__
Das Linux des PI sollte eigentlich stabile Namen für USB Serial Ports vergeben. Siehe https://steigerbalett.wordpress.com/201 ... -zuordnen/

Wenn du aber darauf bestehst dein eigenen udev Kram zu machen, dann leg eine richtige Datei statt einem symlink an. Oder prüfen in Python, ob der Name ein symlink ist, und lös den auf. Aber das ist umständlicher und eigentlich total unnötig.

Re: port='/dev/ttyUSBX' mit PORT1 odr Port2 usw...

Verfasst: Samstag 3. August 2019, 22:39
von __deets__
Ein Nachtrag: Linux filesystem ist case sensitiv. Wenn du deine Ports groß schreibst, musst du sie auch so in Python schreiben. Dem symlink sollte eigentlich gefolgt werden, mein Kommentar diesbezüglich war also Unfug.

Re: port='/dev/ttyUSBX' mit PORT1 odr Port2 usw...

Verfasst: Sonntag 4. August 2019, 10:38
von SolarGuido
Ja und ich hab null verstanden was du da schreibst...
Abgesehen von case sentitiv..
Heißt das ich kann das nutzen :

port='/dev/ttyPORT1'
?

OK ich werde mal das probieren was in dem verlinkten beitrag steht
Danke

Re: port='/dev/ttyUSBX' mit PORT1 odr Port2 usw...

Verfasst: Montag 5. August 2019, 06:00
von SolarGuido
So der Eintrag:

ser = serial.Serial(port='/dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0',baudrate=2400,timeout=2)

War erfolgreich, vielen Dank!