Statusandquestion-plugin
Aus VDR Wiki
(Unterschied zwischen Versionen)
(Kleinigkeit, es fehlte nur ein "/" :-))) |
|||
Zeile 87: | Zeile 87: | ||
==Konfiguration== | ==Konfiguration== | ||
+ | ==Sample== | ||
+ | <pre>#!/bin/sh | ||
+ | |||
+ | TIMEOUT=20 | ||
+ | |||
+ | read_key() { | ||
+ | case "${1}" in | ||
+ | 0) KEY="UP" ;; | ||
+ | 1) KEY="DOWN" ;; | ||
+ | 2) KEY="MENU" ;; | ||
+ | 3) KEY="OK" ;; | ||
+ | 4) KEY="BACK" ;; | ||
+ | 5) KEY="LEFT" ;; | ||
+ | 6) KEY="RIGHT" ;; | ||
+ | 7) KEY="RED" ;; | ||
+ | 8) KEY="GREEN" ;; | ||
+ | 9) KEY="YELLOW" ;; | ||
+ | 10) KEY="BLUE" ;; | ||
+ | 11) KEY="0" ;; | ||
+ | 12) KEY="1" ;; | ||
+ | 13) KEY="2" ;; | ||
+ | 14) KEY="3" ;; | ||
+ | 15) KEY="4" ;; | ||
+ | 16) KEY="5" ;; | ||
+ | 17) KEY="6" ;; | ||
+ | 18) KEY="7" ;; | ||
+ | 19) KEY="8" ;; | ||
+ | 20) KEY="9" ;; | ||
+ | 21) KEY="PLAY" ;; | ||
+ | 22) KEY="PAUSE" ;; | ||
+ | 23) KEY="STOP" ;; | ||
+ | 24) KEY="RECORD" ;; | ||
+ | 25) KEY="FASTFWD" ;; | ||
+ | 26) KEY="FASTREW" ;; | ||
+ | 27) KEY="POWER" ;; | ||
+ | 28) KEY="CHAN+" ;; | ||
+ | 29) KEY="CHAN-" ;; | ||
+ | 30) KEY="VOL+" ;; | ||
+ | 31) KEY="VOL-" ;; | ||
+ | 32) KEY="MUTE" ;; | ||
+ | 33) KEY="SCHEDULE" ;; | ||
+ | 34) KEY="CCHANNELS" ;; | ||
+ | 35) KEY="TIMERS" ;; | ||
+ | 36) KEY="RECORDINGS" ;; | ||
+ | 37) KEY="???" ;; | ||
+ | 38/37) KEY="SETUP" ;; | ||
+ | 39/38) KEY="COMMANDS" ;; | ||
+ | 40/39) KEY="USER1" ;; | ||
+ | 41/40) KEY="USER2" ;; | ||
+ | 42/41) KEY="USER3" ;; | ||
+ | 43/42) KEY="USER4" ;; | ||
+ | 44/43) KEY="USER5" ;; | ||
+ | 45/44) KEY="USER6" ;; | ||
+ | 46/45) KEY="USER7" ;; | ||
+ | 47/46) KEY="USER8" ;; | ||
+ | 48/47) KEY="USER9" ;; | ||
+ | 49/48) KEY="NONE" ;; | ||
+ | *) KEY= | ||
+ | esac | ||
+ | } | ||
+ | |||
+ | wait_key() { | ||
+ | ID=`echo ${1}|sed '/^250/!d;s#^.*id=##'` | ||
+ | until [ "${KEY}" ] ; do | ||
+ | i=$[i+1] | ||
+ | sleep 1s | ||
+ | read_key "`svdrpsend.pl "SAQRESP ${ID}"|sed '/^250/!d'|cut -d' ' -f4`" | ||
+ | test "${i}" = "${TIMEOUT}" && { | ||
+ | echo "Timeout ...?" | ||
+ | exit 0 | ||
+ | } | ||
+ | done | ||
+ | |||
+ | test "${KEY}" || { | ||
+ | echo "Key ...?" | ||
+ | exit 0 | ||
+ | } | ||
+ | } | ||
+ | |||
+ | # menu_1 | ||
+ | svdrpsend.pl "SAQTIME 10" | ||
+ | svdrpsend.pl "SAQPARA TEST_1, <red>, <green>, <yellow>, <blue>" | ||
+ | wait_key "`svdrpsend.pl "SAQTEXT 1"`" | ||
+ | |||
+ | echo "1 ---> ${KEY}" | ||
+ | unset KEY | ||
+ | |||
+ | # menu_2 | ||
+ | svdrpsend.pl "SAQTIME 10" | ||
+ | svdrpsend.pl "SAQPARA TEST_2, <red>, <green>, <yellow>, <blue>" | ||
+ | wait_key "`svdrpsend.pl "SAQTEXT 2"`" | ||
+ | |||
+ | echo "2 ---> ${KEY}" | ||
+ | unset KEY</pre> | ||
==Probleme== | ==Probleme== | ||
Rückgabewert (in SAQRESP) des Tastencodes ist in den VDR-Versionen und auch ja nach Patch des VDR's verschieden. | Rückgabewert (in SAQRESP) des Tastencodes ist in den VDR-Versionen und auch ja nach Patch des VDR's verschieden. |
Version vom 20. August 2004, 20:22 Uhr
Inhaltsverzeichnis |
Beschreibung
Plugin mit Möglichkeit einer Benutzerfrage aus einem Shell Script heraus auf.
Implementiert sind:
- Statusmeldungen
- Infomeldungen
- Warnungen
- Fehlermeldungen
- Mehrzeiliger Text (mit scrollen)
Zusätzliche "svdrpsend" Befehle:
SAQTIME SAQMESS SAQMESI SAQMESW SAQMESE SAQPARA SAQTEXT SAQLSTQ SAQDELQ SAQRESP SAQLSTR SAQDELR SAQTEST SAQTIME [ timeout ] Da Standardmäßig nur 2 Sekunden als Anzeigezeit von OSD-Nachrichten im Setup eingestellt sind, ist es möglich mit diesem Befehl vor dem Text die maximale Anzeigedauer zu bestimmen. SAQMESS [ <message> ] SAQMESI [ <message> ] SAQMESW [ <message> ] SAQMESE [ <message> ] Mit diesen 4 Befehlen werden kurze (ab VDR-Version 1.3.x einzeile) Texte an dem untern Bildschirmrand dargestellt. Durch die Verwendung der Skins ab 1.3.7 ist dort leider nur eine Zeile möglich. In der VDR-Version 1.2.6 können mehrere Zeilen durch ein '|' getrennt dargestellt werden, soll der Text mit einer Leerzeile beginnen/enden, so ist dort als erstes/leztes Zeichen ein '@' zu verwenden. Die 4 Befehle unterscheiden sich in der Farbe des Dargestellten Textes. Ohne Parameter aufgerufen geben sie die nächste darzustellende Nachricht dieses Typs zurück, wenn noch welche in der Warteschlange auf die Darstellung wartet. Es können bis zu 99 Nachrichten in der Warteschlange gespeichert werden. SAQPARA [ title, red, green, yellow, blue ] Für die Menüdarstellung eines langen Textes wird mit diesem Befehl die Beschriftung der Farbtasten und des Titels festgelegt. Dieser Befehl speichert die Werte nur, er ist nur bei Veränderung aufzurufen. Sollten sich Nachrichten in der Warteschlange befinden, so wird auch die Änderung in der Warteschlange gespeichert, d. H. zum richtigen Zeitpunkt erst ausgeführt. SAQTEXT [ long text ] Mit diesem Befehl wird ein Menü (z.Z. noch kein richtiges) angezeigt. Mit den Tasten Auf/Ab und Links/Rechts kann der Text gescrollt werden. Ohne Parameter aufgerufen geben sie die nächste darzustellende Nachricht dieses Typs zurück, wenn noch welche in der Warteschlange auf die Darstellung wartet. SAQLSTQ Alle wartenden Nachrichten werden aufgelistet. SAQDELQ Alle wartenden Nachrichten werden gelöscht. SAQRESP [ id ] Jede Nachricht bei SAQMESx und SAQTEXT liefert eine ID zurück (gleich erster Wert in der Antwort), mit dieser ID läst sich die Reaktion des Benutzers festellen. SAQLSTR Alle Antworten, die noch nicht abgefragt oder verfallen sind werden angezeigt. SAQDELR Alle Antworten, die noch nicht abgefragt oder verfallen sind werden gelöscht, standardmäßig verbleiben sie aber auch nur 10 minutes in der Antwortwarteschlange.
Hardwareanforderungen
Keine.
Softwareanforderungen
Patch des VDR's (svdrp_0.0.1) - noch nicht die entgültige Version, Klaus Schmidinger hat dabei andere Vorstellung der Schnittstelle
Installation
Siehe Plugin Installation.
Konfiguration
Sample
#!/bin/sh TIMEOUT=20 read_key() { case "${1}" in 0) KEY="UP" ;; 1) KEY="DOWN" ;; 2) KEY="MENU" ;; 3) KEY="OK" ;; 4) KEY="BACK" ;; 5) KEY="LEFT" ;; 6) KEY="RIGHT" ;; 7) KEY="RED" ;; 8) KEY="GREEN" ;; 9) KEY="YELLOW" ;; 10) KEY="BLUE" ;; 11) KEY="0" ;; 12) KEY="1" ;; 13) KEY="2" ;; 14) KEY="3" ;; 15) KEY="4" ;; 16) KEY="5" ;; 17) KEY="6" ;; 18) KEY="7" ;; 19) KEY="8" ;; 20) KEY="9" ;; 21) KEY="PLAY" ;; 22) KEY="PAUSE" ;; 23) KEY="STOP" ;; 24) KEY="RECORD" ;; 25) KEY="FASTFWD" ;; 26) KEY="FASTREW" ;; 27) KEY="POWER" ;; 28) KEY="CHAN+" ;; 29) KEY="CHAN-" ;; 30) KEY="VOL+" ;; 31) KEY="VOL-" ;; 32) KEY="MUTE" ;; 33) KEY="SCHEDULE" ;; 34) KEY="CCHANNELS" ;; 35) KEY="TIMERS" ;; 36) KEY="RECORDINGS" ;; 37) KEY="???" ;; 38/37) KEY="SETUP" ;; 39/38) KEY="COMMANDS" ;; 40/39) KEY="USER1" ;; 41/40) KEY="USER2" ;; 42/41) KEY="USER3" ;; 43/42) KEY="USER4" ;; 44/43) KEY="USER5" ;; 45/44) KEY="USER6" ;; 46/45) KEY="USER7" ;; 47/46) KEY="USER8" ;; 48/47) KEY="USER9" ;; 49/48) KEY="NONE" ;; *) KEY= esac } wait_key() { ID=`echo ${1}|sed '/^250/!d;s#^.*id=##'` until [ "${KEY}" ] ; do i=$[i+1] sleep 1s read_key "`svdrpsend.pl "SAQRESP ${ID}"|sed '/^250/!d'|cut -d' ' -f4`" test "${i}" = "${TIMEOUT}" && { echo "Timeout ...?" exit 0 } done test "${KEY}" || { echo "Key ...?" exit 0 } } # menu_1 svdrpsend.pl "SAQTIME 10" svdrpsend.pl "SAQPARA TEST_1, <red>, <green>, <yellow>, <blue>" wait_key "`svdrpsend.pl "SAQTEXT 1"`" echo "1 ---> ${KEY}" unset KEY # menu_2 svdrpsend.pl "SAQTIME 10" svdrpsend.pl "SAQPARA TEST_2, <red>, <green>, <yellow>, <blue>" wait_key "`svdrpsend.pl "SAQTEXT 2"`" echo "2 ---> ${KEY}" unset KEY
Probleme
Rückgabewert (in SAQRESP) des Tastencodes ist in den VDR-Versionen und auch ja nach Patch des VDR's verschieden.
Links
[1] | http://www.fast-info.de/vdr | Homepage des Plugins |