ECMDScript
Version vom 10. Juli 2009, 18:24 Uhr von Habo (Diskussion | Beiträge)
ECMD Scripting
Scripting soll dazu dienen ohne Änderung an der Firmware Scripte zu ermöglichen.
Dafür gibt es diese Befehle mit entsprechenden Parametern:
- wait MILLISEKUNDEN
- set VARIABLE WERT
- get VARIABLE
- inc VARIABLE
- dec VARIABLE
- if ( VERGLEICH OPERATOR KONSTANTE ) then ECMD
- call DATEI
- exit
- goto ZEILENNUMMER
- rem BELIEBIGER_TEXT
- echo BELIEBIGER_TEXT
- keiner der Werte für VERGLEICH, OPERATOR oder KONSTANTE darf Leerzeichen enthalten, da anhand der Leerzeichen der Ausdruck geparst wird
- VERGLEICH kann eine VARIABLE oder ein ECMD sein
- zur Unterscheidung wird der VARIABLE ein % vorangestellt
- OPERATOR kann folgendes sein: "eq" "ne" "OK" "!" "==" "!=" ">" "<" ">=" "<="
- Textvergleiche sind: "eq" und "ne"
- Zahlenvergleiche sind: "==" "!=" ">" "<" ">=" "<="
- Logische Vergleiche sind: "OK" und "!"
- bei logischen Vergleichen wird die KONSTANTE ignoriert, dort muss aber dennoch irgendwas angegeben werden (z.b. X)
- DATEI muss aus dem Dateisystem kommen, komprimierte Dateien aus dem inline System ist aber nicht möglich
- Die ZEILENNUMMER gibt eine Zeilennummer aus der DATEI an. Andere Werte oder Konstellationen sind unsinnig
- Die Leerzeichen sind wichtig, sonst kann nicht richtig geparset werden. Insbesondere bei 'if'
- Die Anzahl der VARIABLEN ist begrenzt, das kann aber in der Menuconfig geändert werden
- Die Länge einer Zeile ist begrenzt auf den ECMD Buffer. (ca 50 Zeichen)
Weitere Erläuterungen zu den Befehlen sind in der Ecmd Reference
Beispiele für ECMD Script Aufrufe
wait 100 ; wartet 100ms echo hello world ; gibt 'hallo welt' aus set 1 0 ; setzt Variable 1 auf 0 set 2 6 ; setzt Variable 2 auf 0 inc 1 ; incrementiert Variable 1 get 1 ; liefert den Wert von Variable 1 zurück get 2 ; liefert den Wert von Variable 2 zurück if ( whm eq 0:23 ) then echo hello ; führt das ECMD "whm" aus und vergleicht textuell mit "0:23", ; wenn wahr dann wird "echo hello" ausgeführt if ( %1 < 3 ) then date ; ist der Inhalt von Variable 1 kleiner als 3, dann wird "date" ausgeführt
Beispiele für ECMD Script in Dateien
Dazu auf einem "NICHT INLINE" Dateisystem ein Script ablegen z.b. test1.es
Hinweise:
- UNIX Zeilenumbruch in Dateien
- Dateiendung ".es"
- nicht im inline vfs ablegen, da die inline Dateien gezipped sind
- Aufruf mit "call <scriptdateiname>"
Beispiel 1:
echo run script! wait 100 echo do inc set 1 5 echo do get get 1 exit