ECMDScript: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
(ECMD Scripting)
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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 Befehle mit entsprechenden Parametern
  
Dafür gibt es folgende Befehle:
+
== ECMD Script Befehle ==
  
# 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]]
+
* 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)
  
== Beispiele für ECMD Script ==
+
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:
 
Beispiel 1:
Zeile 29: Zeile 68:
 
  get 1
 
  get 1
 
  exit
 
  exit
 +
 +
[[Kategorie:ECMD]]

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

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