Serielle „shutdown message“ in eigener Python Anwendung erfassen

65 views
0 Comments

Hallo
Ich benutze den Strompi3 in einem eignen Projekt, welches neben weiteren Dingen zyklisch die vom Strompi3 gemessenen Spannungen pollen soll, jedoch aber auch auf die „Shutdown“message reagieren soll.
Wie implementiere ich das Script „SerialShutdown.py“ am besten in mein eigenes Python Script, sodass die serielle Schnittstelle alle 200ms auf „‚xxxShutdownRaspberryPixxx\n“ getestet wird.
Ich habe eine Timer-Routine, die alle 200ms aufgerufen wird. Diese darf natürlich nicht gestoppt werden, solange kein ‚xxxShutdownRaspberryPixxx\n‘ empfangen wurde…

Bin dankbar für jeden Tip, da ich schon eine Weile am probieren bin und es bisher nicht so funktioniert, wie ich es mir vorstelle…
Danke und Grüße
ED

Answered question

2 Answers

Guten Tag ED,
ich möchte Ihnen den Gedanken meines Kollegen noch etw. ausführlicher erläutern. Er schlägt vor die Shutdown-Funktion mit Hilfe des „serialless“ Modes auf die GPIOs auszulagern. Dadurch umgehen Sie die Gefahr, die serielle Nachricht „zu verpassen“. (Ich habe gestern schon einige Varianten versucht. Es kam leider in all meinen Versuchen zu Situationen in denen die serielle Nachricht nicht erfasst wurde.)
Wenn Sie serialless in der Konfiguration aktivieren, aber das Startskript nicht ausführen, wird der Shutdown Indikator auf den Reset-Pin gelegt aber die Möglichkeit der seriellen Kommunikation bleibt erhalten. So können Sie den Shutdown über die GPIO Leiste realisieren, haben aber dennoch weiterhin die Möglichkeit die z. B. die ADC Daten zu pollen.
Sollten Sie weitere Fragen haben stehen wir Ihnen gerne zur Verfügung.
Mit freundlichen Grüßen
Nils (Joy-IT)

Answered question

Hallo ED,
eine Möglichkeit ihren Code einzufügen wäre den Seriallessmodus im Config Skript zu aktivieren und anschließend das hier zur Verfügung gestellte Beispielskript auszuführen. Achten Sie darauf nicht das Start-Serialless.py Skript zu benutzen um weiterhin die Kommunikation über die Serielle Schnittstelle zu ermöglichen. In dem hier zur Verfügung gestellten Skript müssen Sie nun zusätzlich noch den Befehl „print („Insert code here“)“ in Zeile 27, 40 und 57 mit Ihrem Code ersetzen. Zusätzlich müssen Sie noch einen der Reset Pins an einen der GPIO Pins anschließen, schauen Sie dazu in die Anleitung auf Seite 39.
Beispielskript Download:
Mit freundlichen Grüßen
Jordan Tekampe

Answered question
Write your answer.