Python Weiterer Umgang mit Script

LasseSamenström

Lieutenant
Registriert
Mai 2016
Beiträge
761
Moini zusammen,

ich konnte vor einigen Tagen mein erstes simples Python Script zusammengebastelt. Das Script vergleicht EAN Nummern in und von unterschiedlichen Barcodes. Falls alle EAN's zusammenpassen wird über ein GPIO Pin ein Signal ausgegeben.

Das Script soll dauerhaft laufen. Es gibt keine Gui oder anzuzeigender Text auf irgendeinem Monitor (Es gibt nur eine Rückmeldung über ein Ampelsystem [Rot=Falsche Kombi von EAN's, Gelb=warte auf EAN's,Grün=Alle EAN's richtig). Daher habe ich in meinem Script aktuell ein:

[CODE=python]while 1 == 1:[/CODE]

stehen.

Sollte ich das while rausnehmen und dafür auf dem Pi die rc.local anpassen? Gibt es noch wartungsfreiere Wege?
 
Zuletzt bearbeitet:
die rc.local ist ja für den autostart des scripts. in dem script würde ich ein sleep von ~100ms einbauen, dass sich der PI nicht zu tode arbeitet.

der königsweg für das script wäre wohl einen dienst zu schreiben. diesen startet das OS automatisch und schaut auch ob der noch läuft stichwort systemd.
 
  • Gefällt mir
Reaktionen: jb_alvarado und madmax2010
Das kann man als Außenstehender gar nicht beantworten, weil das davon abhängig ist, wie/wann die zu verarbeitenden Daten reinkommen, und wann/wie sie verarbeitet werden sollen.

Es scheint hier ja um ein Gerät mit GPIO zu gehen.
Beispiele:

-Bei einem Barcodescanner würde das Erkennen des Barcodes entweder per Taste ausgelöst werden, oder per Distanzsensor, oder ähnliches. Entsprechend interruptbasiert, und daraufhin die Verarbeitung der Daten
-Bei einem Crawler muss es beim Polling bleiben, es sei denn es gibt ein entsprechendes Benachrichtigungssystem bzw. eine API, die das anbietet
 
LasseSamenström schrieb:
Sollte ich das while rausnehmen und dafür auf dem Pi die rc.local anpassen?
Das kommt auch auf das Betriebssystem an. Mit aktuellem Raspberry Pi OS wird es wahrscheinlich gar nicht mehr funktionieren. (?)

LasseSamenström schrieb:
Gibt es noch wartungsfreiere Wege?
Was heißt denn "wartungsfrei"? Aber im Prinzip gibt es dafür systemd. Du kannst eine Unit anlegen, die das Skript etwa nach dem Systemstart automatisch ausführt.
 
Zurück
Oben