ECMDScript: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(Beispiele für ECMD Script)
(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 folgende Befehle:
+
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 27. Juni 2009, 00: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:

  1. wait MILLISEKUNDEN
  2. set VARIABLE WERT
  3. get VARIABLE
  4. inc VARIABLE
  5. dec VARIABLE
  6. if ( VERGLEICH OPERATOR KONSTANTE ) then ECMD
  7. call DATEI
  8. exit
  9. goto ZEILENNUMMER
  10. rem BELIEBIGER_TEXT
  11. 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