Hallo BlackJack,
@BlackJack
Ich habe hier in der Fa. mehrere Türen( insgesamt 22 mit Lager) welche alle mit Transponder geöffnet werden. Ist ein Transponder verloren, oder es kommt ein neuer Mitarbeiter, muss eine Fa. jedes Mal indie neuen Daten in jede Steuerung eintragen. Das ist sehr kostspielig.
Frage nicht, was ein vernetztes System kostet.
Ich ersetze diese Steuerungen durch Raspi.
Das System macht also nichts anderes, als die ganze Zeit zu lauern, ob jemand durch die Tür will. Kommt jemand, wird die Transponder-Nr eingelesen. Das System prüft, ob der betreffende TP im System ist. Wenn ja, wird geprüft, für welche Türen er Rechte hat.
Hat er, wird die Tür geöffnet. Das Ganze wird mitgelockt und steht im System zur Verfügung.
Die Vorteile liegen klar auf der Hand. Die Personalabteilung kann nun bequem Transponder und Rechte verwalten. Ebenso kann nachvollzogen werden, wann und wo jemand gekommen ist.
Das System funktioniert schon jetzt so, wie beschrieben. Nebeneffekt - ich gebe auf LCD den Benutzer aus und Zutritt erlaubt oder nicht. Das ganze mit einem Signalton und 2 Status-LEDs aufgemotzt, ist es besser als das System was jetzt gar nichts zeigt und nur durch leises Klicken signalisiert, ob die Tür offen ist.
Das Ganze wird am Notstrom hängen und zusätzlich mit 12V Bleigel gepuffert.
Wenn unser Netzwerk nicht läuft, sammelt es die Daten und gibt sie bei Erreichen wieder aus.
Soweit das Programm.
Ich hatte so ein System schon mit ATMega18 gemacht. Nur mit dem Raspi ist es einfach einfach.
Jetzt fülle ich das Feld Transponder_Liste (welches ich in meinem Test oben einfach fld nannte) einfach im Hauptprogramm mit einer IF-Anweisung. Wobei ein Flag geprüft wird, was ich mittels Interrupt setze.
Soweit so gut. Damit kann ich leben. Ich hätte es eben nur gern in einer Function erledigt. Wo es meiner Meinung nach auch hin gehört. Nun habe ich in dem ganzen Tread schon so viel gelesen, dass ich eigentlich alles falsch mache und dass ich keine Ahnung habe...
Ich schrieb ja auch anfangs, dass ich mich mit Python noch nicht gut auskenne.
Die Standard-Tipps, "lies erst mal ein Buch", befolgte ich auch. Nun setze ich das um und es ist auch falsch.
Leider weiß ich immer noch nicht, wie ich die Liste im Hauptprogramm prüfen, und ggf in der Function neu füllen kann.
MfG LotharK