KLF 200: Current Position – Wert im Trigger falsch
Automatisierer0 opened this issue · 1 comments
Ich habe einen Trigger für die Current Poition.
+++++++++ Screenshot: Objekt_Current Position.jpg+++++++++
Der Trigger ist in Blockly geschrieben:
+++++++++ Screenshot: Trigger Current Position.jpg+++++++++
Das Verhalten ist OK, wenn ich ein Fenster aufmache und warte bis es offen ist. Wie man im Screenshot erkennt, sendet der KLF200, wenn das Fenster vollständig geöffnet ist im Trigger der richtigen Wert Current Position = 100
+++++++++ Screenshot Fenster Aufmachen -- mit Kommentar.jpg+++++++++
Hier der Fehlerfall:
Das Fenster wird wie im obigen Fall geöffnet, aber während des Öffnungsvorgangs wird es wieder geschlossen. Es ist hier im Trigger für die Current Position kein richtiger Wert!
(Verdacht: Es schaut so aus als wäre es ein Nullpointer)
+++++++++ Screenshot Zumachen während Aufmachen läuft -- mit Kommenar.jpg+++++++++
Wenn der aktuelle Befehl durch einen anderen Befehl überschrieben wird, z.B. wenn man das Stop-Kommando sendet, dann wird zwischendrin für den alten Befehl eine Kommando-Ende Nachricht gesendet mit dem Feld StatusReply = 29 (Command Overruled = Befehl überschrieben). In dieser Nachricht befindet sich für die aktuelle Position ein ungültiger Wert, welchen ich entsprechend abfange und daher der Prozent-Wert auf NULL gesetzt wird. Durch den zweiten Befehl wird jedoch, wenn dieser abgeschlossen ist, wiederum eine gültige Position gesendet.
In Blockly kann man das Problem mit einer gezielten Abfrage auf ungleich NULL umgehen:
Der Wert ist daher nicht falsch, sondern zwischendurch kurzfristig nicht bekannt, was grundsätzlich eine gültige Aussage ist.