ECMDScript: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
Zeile 1: Zeile 1:
== ECMD Scripting ==
+
ECMD 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 diese Befehle mit entsprechenden Parametern:
 
Dafür gibt es diese Befehle mit entsprechenden Parametern:
Zeile 16: Zeile 14:
 
# rem BELIEBIGER_TEXT
 
# rem BELIEBIGER_TEXT
 
# echo BELIEBIGER_TEXT
 
# echo BELIEBIGER_TEXT
 +
 +
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.
  
 
* 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

Version vom 6. März 2010, 20:53 Uhr

ECMD 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

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.

  • 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