[Fernsteuerung] WAIT-Befehl möglich?

Bei manchen Fernsteuerungsbefehlen gibt es eine fest programmierte Kette, bei der das nächste Kommando erst dann ausgeführt wird, wenn die Fernsteuerungs-Taste erneut gedrückt wird, z.B.
PLAYER 1-1 START/PAUSE/STOP

Nun kann man das / nicht selber in die Befehlskette einfügen (wäre ja auch eine Option, oder?).
Ich hatte spaßeshalber mit SLEEP experimentiert, aber der braucht einen <VALUE>, und selbst ein…
VALUE = "unendlich" (falls überhaupt möglich :thinking:)
… hätte mir da wohl nichts gebracht.

Angenommen, man würde ein WAIT in Fernsteuerungs-Verkettungen einbauen können, dann wären frei kombinierbare Befehlsketten auf einer Taste der Fernsteuerung möglich:
COMMAND 1;WAIT;COMMAND 2;WAIT;COMMAND 3

Dabei löst jeder Tastendruck den nächsten Befehl (“Command”) in der Kette aus.
Wäre das möglich?

procedure Belehrung(Inhalt: TBesserWisser; KlugScheisser: string);
  begin

Lieber Uli,

falls Du davon ausgingst: Dieser Befehl toggelt keineswegs zwischen drei Zuständen, sondern nur zwischen zweien, den zweiten jedoch davon abhängig, was anderweitig passiert.

Die von Dir gewünschte Funktionalität ließe sich aber problemlos verscripten, mit einer case-Anweisung. Ich schreibe heute Nachmittag mal was.

  KlugScheisser := 'TSD';
end;

begin
end.

“Ach was!”

Toggle between … START and … PAUSE/STOP

Das steht ja sogar im Wiki!

Das ändert aber nichts an der Tatsache, dass hier mit einem Tastendruck (oder auch einer Faderstellung) zwei verschiedene Zustände ausgelöst werden können, die normalerweise zwei Tasten oder Schaltzuständen zugeordnet werden.
Darauf möchte ich aufbauen; das ist quasi das Fundament meiner Überlegung.

Befehle verketten mit einem ; können wir ja schon. Jetzt hätte ich gerne noch die Option, zwischen zwei Befehlen einen “warte auf einen Trigger” zu haben - der im günstigsten Fall eben auf einer Taste liegt.

Für meinen Anwendungsfall, auf den ich heute Nacht kam, möchte ich nichts verscripten, sondern schlicht und ergreifend …
tap
Erste Funktion im workflow
tap
Zweite Funktion im workflow
tap
Dritte Funktion im workflow

Du fändest es vermutlich besser, wenn der Tastendruck das Script startet, den Status der Tastatur abfragt, die Funktionen ausführt - und irgendwann sollte das Script auch mal merken, dass es nicht mehr gebraucht wird.

Was ich brauche, ist eigentlich nichts zum “auf der Dauer im Hintergrund lauern” - es sei denn, die Fernsteuerung arbeitet genauso. Aber da kenne ich den programmtechnischen Hintergrund nicht. :thinking:

Zugescriptete Grüße
Uli
(geweckt von einem Heckenscheren-Massaker eines Subunternehmers des Grünflächenamtes der Stadt Frankfurt am Main am frühen Samstag Morgen :rage:)

Ich schiß auch daher klug, daß der geneigte Leser, der nicht nebenher Wikis schreibt, versteht, was gemeint ist.

Ich fände es nicht um des verskriptens Willen besser, sondern nur deswegen, da man Torbens Zeit nicht dafür verplempern müßte, ein Rad neu zu erfinden. Für solche Fälle gerade gibt es ja die Skripterei.

Der Tastendruck löste auch kein Skript aus, sondern das Skript wird als Hintergrundskript geladen und macht was, wenn Du Deine Taste drückst. Abhängig von dem Befehl, der einen Druck vorher dran war, wird der nächste ausgeführt usw. Das ist das Wesen von Hintergrundskripten: brav zu warten, bis etwas geschieht. Es ist nicht so, daß ständig eine Schleife fragt, „wann drückt der endlich?“ und dabei Rechnerleistung frißt. (Es sei denn, Du programmierst es so.)

Sequentielle Grüße

TSD

… und genau da pfeffert der Hase. Das brauche ich gar nicht (Ausnahme, wie vorab schon erwähnt: Die Fernsteuerung arbeitet genauso).

Der von mir angedachte Anwendungsfall passiert vielleicht an einem Tag der Woche, dann aber mehrmals in einer (!) Stunde. Das war’s dann wieder.
Daher der Gedanke, speziell dafür, wenn ich in diesem Arbeitsmodus bin, das Skript zu starten (und auch wieder zu stoppen, wenn ich fertig bin).

Schön fürs Skript.
Umgekehrt aber: Wo weniger Skript, da weniger potentielle Fehlerquelle. Gelebter Pragmatismus.

Das kann Samstag früh morgens mit Heckenscheren-Wecker im Bereich des möglichen liegen.

Im übrigen bin ich nicht der Ansicht, dass meine Anfrage an den Entwickler in Richtung Radneuerfindung geht - es sei denn, Du kennst den Programmcode und kannst ihn diesbezüglich beurteilen.
Ich kann es jedenfalls nicht.

Er muss sie (die Wiki-Einträge) dazu nicht zwingend schreiben. Lesen reicht in den meisten Fällen schon. :stuck_out_tongue_winking_eye:

Apropos Wiki (mit-)schreiben… :sunglasses:

Ich kenne ihn dergestalt, daß ich weiß, wie die Hintergrundskripts funktionieren. Ich werde das demnächst an anderer Stelle näher erläutern.

Eilige Grüße

TSD

So, hier gibt es die Lösung für Deinen Wunsch. Du mußt den Code nur in einen Texteditor kopieren, die entsprechenden Befehle eintragen und als .mls irgendwo abspeichern. In der Systemsteuerung/Konfiguration gibst Du den Pfad zu dieser Datei an und fertig.

Keine Angst vor Skripten, sie sind nicht per se „unsicher“ oder so, sondern werden zuverlässig ausgeführt, weil sie eben Teil des Programmcodes sind. Wir dürfen mitbestimmen, was mAirList in bestimmten Situationen tun soll und brauchen dafür nicht mal um Erlaubnis fragen! ist doch gut, oder?

Ergänzte Grüße

TSD