ECMDScript: Unterschied zwischen den Versionen
Habo (Diskussion | Beiträge) |
Habo (Diskussion | Beiträge) |
||
Zeile 1: | Zeile 1: | ||
ECMD Scripting soll dazu dienen ohne Änderung an der Firmware Scripte zu ermöglichen. | ECMD Scripting soll dazu dienen ohne Änderung an der Firmware Scripte zu ermöglichen. | ||
− | Dafür gibt es | + | Dafür gibt es Befehle mit entsprechenden Parametern |
− | + | == ECMD Script Befehle == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * 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 | * keiner der Werte für VERGLEICH, OPERATOR oder KONSTANTE darf Leerzeichen enthalten, da anhand der Leerzeichen der Ausdruck geparst wird | ||
Zeile 33: | Zeile 32: | ||
Weitere Erläuterungen zu den Befehlen sind in der [[Ecmd Reference]] | Weitere Erläuterungen zu den Befehlen sind in der [[Ecmd Reference]] | ||
+ | |||
+ | == Autostart == | ||
+ | Wird "Script auto start" aktiviert, wird die angegebene Datei z.b. "auto.es" automatisch aus | ||
+ | dem VFS ausgeführt. Auch hier ist kein inline-vfs möglich, da auch der "call" Aufruf benutzt wird. | ||
== Beispiele für ECMD Script Aufrufe == | == Beispiele für ECMD Script Aufrufe == |
Aktuelle Version vom 6. März 2010, 20:55 Uhr
ECMD Scripting soll dazu dienen ohne Änderung an der Firmware Scripte zu ermöglichen.
Dafür gibt es Befehle mit entsprechenden Parametern
Inhaltsverzeichnis
ECMD Script Befehle
- 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
Autostart
Wird "Script auto start" aktiviert, wird die angegebene Datei z.b. "auto.es" automatisch aus dem VFS ausgeführt. Auch hier ist kein inline-vfs möglich, da auch der "call" Aufruf benutzt wird.
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