Hallo zusammen,
vorab möchte ich sagen, das ich bisher noch nicht oft in die Situation gekommen bin mit Seriellen Daten zu arbeiten. Aber irgendwann ist ja immer das erst mal...
Es geht um folgendes: Ich habe ein RFID Reader welcher per USB an ein Linux System (in Testfall ein Raspberry) angeschlossen ist. Dieser Reader wird als COM Schnittstelle erkannt. Wenn ich ein cat auf die Schnittstelle mache kann ich die RFID Codes auch lesen. (Sobald ein Chip gelesen wird, sehe ich Ihn. Der Reader liefert auf dem COM Port nur die Chipnummer und ein CR.
Das einfach lesen über ein CAT ist natürlich etwas sehr wenig...
ganz einfache Frage:
Ich möchte gerne per Python die ganze zeit auf diesem Port hören und sobald ein Chip gelesen wird, soll eine mit diesem Wert eine Aktion ausgelöst werden. Während diese Aktion läuft, wäre es natürlich toll, wenn trotzdem weiter auf dem Port "zugehört" würde und nach Abschluss der Aktion erneut die Aktion mit dem nächsten Chip Code ausgeführt werden würde. (Das letztere ist allerdings eher ein Wunsch und kein muss, da zwischen den Chips immer Ablaufbedingt ca 1 Sekunde zeit ist und das sollte für die Aktion die ausgelöst wird ungefähr reichen. Im Ersten Schritt würde ich aber gerne erst mal den RFID Code in eine Textdatei schreiben.
Daher als erster Teil der Frage:
Wie schaffe ich es, das Python permanent auf den COM Port hört und sobald etwas kommt, das in eine Textdatei schreibt. Im Internet habe ich viel gefunden, wie man kurzzeitig auf einen Port hören kann, aber ich habe nicht verstanden, wie man Python davon überzeugt, die ganze zeit zuzuhören und bei einer Reaktion dann etwas zu tun.
Zum zweiten Teil:
Wie schaffe ich es, sobald etwas kommt, eine Aktion auszuführen und während die Aktion läuft trotzdem weiter zuzuhören?
Vielen Dank für die Hilfe
COM Port lesen
-
- User
- Beiträge: 48
- Registriert: Montag 4. Januar 2016, 15:14
kannst Du das etwas genauer beschreiben? ich bin mir im Moment nicht mal sicher, wie ich für diesen Fall die Anbindung des ComPorts machen kann
Und googeln kann man auch: https://tinkering.xyz/async-serial/