ECMDScript

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche

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
  • 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