serielle Schnittstelle auslesen und gleichzeitig auf eingehende UDP Befehle hören ..

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
gtrdriver
User
Beiträge: 11
Registriert: Donnerstag 28. Februar 2019, 13:52

Hallo zusammen

ich weiß jetzt gar nicht genau wie ich das beschreiben soll - aber ich versuche es mal..

Im Prinzip geht es 2 unterschiedliche Dinge

1: Ein Script fragt eine RS232 schnittstelle periodisch ab und sendet die empfangenen Daten per UDP an eine entfernte Maschine - das klappt soweit einwandfrei.
Dazu läuft im Prinzip eine Schleife durch die 3 verschiedene Write Commands an die Serielle schickt und jeweils die Rückmeldung liest decodiert und dann per UDP versendet

2: Zusätzlich soll Script1 aber noch externe "befehle" empfangen - am liebsten per UDP (da das andere System UDP kann) Es müsste also einen UDP Server haben welcher eingehend "lauscht"
Kommt ein bestimmtes Kommando -- dann soll die bei Punkt1 beschriebene Schleife kurz unterbrochen werden - das per UDP empfange Kommando wird dann an die Serielle gesendet - die Antwort ausgewertet und wieder per UDP verschickt und dann geht es wieder mit der schleife weiter ...

Ich bin jetzt leider nicht der große Python Geek - und ich bin momentan am überlegen wie ich es realisiere dass der eingehende UDP Server quasi dauernd lauscht - auch wenn die in Punkt 1 genannte Schleife läuft ...

Da die serielle Kommunikation nur mit 2400 Baud läuft wäre auch noch eine art queue notwendig falls hintereinandere mehrere Kommandos per UDP rein kommen - aber die Ausführung der vorhergehenden noch nicht abgearbeitet ist...

Evt könnt ihr mir helfen - ich hab da grad ein massives Brett vorm kopf ...
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ein Weg wäre ein Thread mit einer queue.Queue zu verbinden, welcher der Hauptschleife die Kommandos über hilft.
gtrdriver
User
Beiträge: 11
Registriert: Donnerstag 28. Februar 2019, 13:52

Hallo

Super danke für die beiden Schlagwörter!

Ich Habs genau damit umgesetzt...

2 threads und eine queue
__deets__
User
Beiträge: 14538
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ein extra thread sollte reichen. Du hast ja implizit schon einen, den main Thread.
Antworten