Seite 1 von 1
pyserial eingehende Signale
Verfasst: Montag 1. Februar 2021, 19:05
von egon11
Hallo, ich stehe vor der Frage wie ich das realisiere,.
Ich möchte, wenn auf Serial eine Nachricht rein kommt etwas auslösen was ich im Python Script verarbeiten kann.
Bisher hatte ich pyserial erfolgreich mit einer while Schleife getestet, das ein print auslöst sobald eine Meldung rein kommt.
Nun muss ja 24/7 das Script laufen.
Gibt es da andere Varianten mittels Python oder kann ich per UDEV dann ein Script starten?
Was wäre sinnvoller?
Re: pyserial eingehende Signale
Verfasst: Montag 1. Februar 2021, 19:19
von __deets__
Warum kann dein Skript nicht dauernd laufen?
Mit UDEV hat das nichts zu tun, und das kann da auch nicht helfen.
Re: pyserial eingehende Signale
Verfasst: Montag 1. Februar 2021, 19:41
von egon11
OK wenn das nichts macht dann ist ja gut.

Re: pyserial eingehende Signale
Verfasst: Montag 1. Februar 2021, 21:38
von egon11
Wenn eine Nachricht in Pyserial rein kommt soll etwas ausgeführt werden.
Ich habe das jetzt so gelöst:
Gibt es da eine "check-Methode" oder kann man das so lassen?
Re: pyserial eingehende Signale
Verfasst: Montag 1. Februar 2021, 22:36
von __deets__
Das kann man so lassen. Der wartet ja, bis was kommt. Wenn selten was kommt, dann wartet er lang.
Re: pyserial eingehende Signale
Verfasst: Montag 1. Februar 2021, 22:47
von egon11
Alles klar. Vielen dank.
Re: pyserial eingehende Signale
Verfasst: Montag 1. Februar 2021, 23:26
von __blackjack__
Die 1 ist komisch, da würde ich `True` erwarten. Und ich würde nicht ``while`` + `readline()` verwenden, sondern ``for``:
Wobei das ``if`` soweit ich das sehe voraussetzt, dass man bei der seriellen Verbindung ein Timeout angegeben hat — was zumindest bei diesem Code keinen Sinn macht, denn ohne Timeout wäre das einfach nur:
Weil man dann die leeren Antworten nicht mehr berücksichtigen/raus filtern muss die bei einer Zeitüberschreitung entstehen
Re: pyserial eingehende Signale
Verfasst: Dienstag 2. Februar 2021, 14:14
von egon11
@__blackjack__ Ich habe in Serial keinen Timer verwendet.
Aber deine Lösung sieht etwas sauberer aus wie meine und es funktioniert auch.