khadoran Geschrieben December 28, 2015 at 20:10 Geschrieben December 28, 2015 at 20:10 Hallo, ich möchte über eine Hardwareleitung erkennen können, ob ein Redbrick aktiv ist, bzw. abgeschaltet hat. Ich habe drei Stacks am Laufen, wobei einer die Funktion eines Masters/Controllers/Watchdogs übernehmen soll. An selbigen hängen, via IO-16 Bricklet, u.a. zwei Ein-/Aus-Kippschalter (wie man sie von Netzteilen her kennt) und zwei 2-Farb-LED (rot/grün). Zudem will ich mit einem DualRelay Bricklet die Stromversorgung ein- und ausschalten. Status- und Kommandotelegramme werden per Ethernet Master Extension ausgetauscht. Was ich konkret möchte ist folgendes (für jeden Stapel separat): Initialzustand: Die grüne LED ist aus und die rote LED leuchtet dauerhaft. Beide Relais sind abgefallen, d.h. die Stromversorgung für beide Stapel ist unterbrochen. Der Masterstapel ist aktiv. Einschaltvorgang (das ist noch straight forward): 1. Der Schalter wird auf "ein" geschaltet. 2. Die grüne LED blinkt und die rote LED ist aus. 3. Das Relais für den entsprechenden Stack wird geschaltet, sodass der andere Stapel Strom bekommt. 4. Dessen Redbrick fährt hoch und meine Applikation wird automatisch gestartet. 5. Die Applikation sendet Statustelegramme an den Masterstapel 6. Die grüne LED leuchtet dauerhaft, sobald das erste gültige Statustelegramm empfangen wurde. Die rote LED ist weiterhin aus. Ausschaltvorgang (hier kommt nun meine Frage auf): 1. Der Schalter wird auf "aus" geschaltet. 2. Die grüne LED erlischt und die rote LED blinkt. 3. Der Masterstapel sendet einen Shutdown-Befehl an die Applikationen auf den anderen Stapeln 4. Die Applikationen sagen dem RED Daemon, er soll das System herunterfahren (via API, so wie es der BrickViewer tut) 5. Der Redbrick schaltet sich aus. 6. Der Masterstapel erkennt, dass die anderen Redbricks ausgeschaltet sind. 7. Die grüne LED ist aus und die rote LED leuchtet nun dauerhaft. 8. Das Relais fällt ab (vom Master angesteuert) und die Stromversorgung wird unterbrochen. Während der Ein- und Ausschaltvorgänge wird eine Änderung des Schalters ignoriert. Die Schalterstellung wird nur davor und dannach ausgewertet. Mein Problem liegt nun im Punkt 6 des Ausschaltvorgangs. Wie kann ich erkennen, dass der Redbrick vollständig heruntergefahren ist? Ließen sich dafür die GPIOs nutzen (z.B. ein Kerneltreiber, der einen Pin auf HIGH setzt und beim abschalten auf LOW?) oder die 5V/3.3V Spannungsversorgung des GPIO-Headers? Oder kann ich das per Strommessung herausfinden (wenn der Stromverbrauch unter eine bestimmte Schwelle fällt oder so)? Gibt es da Möglichkeiten, das über eine Hardwareleitung zu erkennen (also hardwareseitig ein Signal zu generieren, was per IO-16 eingelesen werden kann)? Ich möchte das ganze nicht timergesteuert machen (ist mir zu ungenau), sondern das Relais wirklich erst ansteuern, wenn der Redbrick vollständig heruntergefahren ist. Ich will den Redbrick auch nicht hart ausschalten, da meine Applikationen Dateien auf die SD-Karte schreiben (Stichwort Datenverlust ). Danke im Voraus. Grüße, Jens Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.