ECMDScript: Unterschied zwischen den Versionen
Habo (Diskussion | Beiträge) (→Beispiele für ECMD Script) |
Habo (Diskussion | Beiträge) (→ECMD Scripting) |
||
| Zeile 3: | Zeile 3: | ||
Scripting soll dazu dienen ohne Änderung an der Firmware Scripte zu ermöglichen. | Scripting soll dazu dienen ohne Änderung an der Firmware Scripte zu ermöglichen. | ||
| − | Dafür gibt es | + | Dafür gibt es diese Befehle mit entsprechenden Parametern: |
| − | # wait | + | # wait MILLISEKUNDEN |
| − | # set | + | # set VARIABLE WERT |
| − | # get | + | # get VARIABLE |
| − | # inc | + | # inc VARIABLE |
| − | # dec | + | # dec VARIABLE |
| − | # if | + | # if ( VERGLEICH OPERATOR KONSTANTE ) then ECMD |
| − | # call | + | # call DATEI |
# exit | # exit | ||
| − | # goto | + | # goto ZEILENNUMMER |
| − | # rem | + | # rem BELIEBIGER_TEXT |
| − | # echo | + | # echo BELIEBIGER_TEXT |
| − | Erläuterungen zu den Befehlen sind in der [[Ecmd Reference]] | + | * 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 | ||
| + | ** bei ! und OK wird die KONSTANTE irgnoriert, muss aber dennoch angegeben werden | ||
| + | * 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. 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 == | == Beispiele für ECMD Script Aufrufe == | ||
Version vom 26. Juni 2009, 23:18 Uhr
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
- 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
- bei ! und OK wird die KONSTANTE irgnoriert, muss aber dennoch angegeben werden
- 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. 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