Ich möchte gerne für mein NUKI Bridge Modul die Schaltbefehle serialisieren. Vielleicht ist die Bezeichnung „serialisieren“ nicht korrekt… Ich will sie nacheinander abarbeiten.
The Bridge can only handle one incoming request at a time and you therefore have to serialize repeated requests to the Bridge API.
Danke für den Hinweis, aber ich glaube, dass dies nicht für mein Modul geeignet ist.
Die Schaltbefehle die der User absetzt entsprechen ja nicht einer gleichbleibenden Reihenfolge.
Es geht darum, wenn die Befehle an die Bridge übermittelt werden, in der Reihenfolge abzuarbeiten, wie Sie eintreffen und mit der Voraussetzung, dass der nächste Befehl erst durchgeführt wird, wenn der Befehl zuvor erfolgreich abgearbeitet worden ist. Mitunter kann das auch schon mal etwas dauern.
Oder wie soll der Ablaufplan dies innerhalb eines Moduls das übernehmen?
Natürlich muss weiterhin zwischen Lock und unlock die Antwort abgewartet werden.
Vorteil ist hier, die Wartezeit wird nicht durch die Semaphore selbst, sondern durch eine zufällige Wartezeit per IPS_Sleep realisiert.
Somit versuchen nicht alle wartenden Befehle auf einmal die Semaphore zu ergattern.
Michael
Einige davon wie plugwise, Squeezebox, Onkyo oder Xbee (und bestimmt noch andere) nutzen zusätzlich noch eine Send und Receive Queue. Wobei dies nur sinnvoll ist, wenn man halt mehrere Befehle senden kann und dann die Antworten zu den ausgehend Befehlen zuordnen will.
Das geht in deinem Fall ja nicht, weil ja nur immer ein Kommando gesendet und dann auf die Antwort gewartet werden muss.
Somit solltest du IPS_SemaphoreEnter und Leave einfach mit Lock und unlock ersetzen können.
Michael