next up previous
Nächste Seite: Unterstützte Funktionen Aufwärts: Ein Simulator für legOS Vorherige Seite: Funktionsweise

Protokoll

Das Protokoll definiert Zeichenketten die als Eingabe für den Simulator dienen (input) oder vom Simulator ausgegeben (output) werden. Es wird nachfolgend in EBNF angegeben.


<simulation>   ::= {<input> | <output>}*

<input>        ::= "input" <idevice> <nl>

<idevice>      ::= <sensor> | <ir> | <button>

<sensor>       ::= "sensor" <snr> <svalue>

<snr>          ::= "1" | "2" | "3"

<svalue>       ::= <INT NUMBER>

<ir>           ::= "ir" <msg length> <msg>

<msg length>   ::= <NUMBER>

<msg>          ::= {<BYTE>}+

<button>       ::= <bnr> <baction>
 
<bnr>          ::= <bview> | <bonoff> | <bprgm> | <brun>

<bview>        ::= "1" | "view"

<bonoff>       ::= "2" | "onoff"

<bprgm>        ::= "3" | "prgm"

<brun>         ::= "4" | "run"

<baction>      ::= "pressed" | "released"

<nl>           ::= "\n"

<output>       ::= "output" <odevice> <nl>

<odevice>      ::= <actuator> | <lcd> | <ir> | <osensor>

<actuator>     ::= "actuator" <anr> <acommand>

<anr>          ::= "A" | "B" | "C"

<acommand>     ::= <avalue> | <speed> | <direction>

<avalue>       ::= "value" <NUMBER>

<speed>        ::= "speed" <NUMBER>

<direction>    ::= "direction" <dvalue>

<dvalue>       ::= "off" | "fwd" | "rev" | "brake"

<lcd>          ::= <show hex> | <show string> | <show number> |
                   <show segment> | <hide segment> |
                   <refresh> | <clear>

<show hex>     ::= "x" "0x"([0-9a-f])+

<show string>  ::= "s" <STRING>

<show number>  ::= <NUMBER> "(" <number style> "," 
                   <comma style> ")"

<number style> ::= "digit" | "sign" | "unsign"

<comma style>  ::= "digit_comma" | "e0" | "e_1" | "e_2" | "e_3"

<show segment> ::= "show" <NUMBER>

<hide segment> ::= "hide" <NUMBER>

<refresh>      ::= "refresh"

<clear>        ::= "clear"

<osensor>      ::= "sensor" <snr> <smode>

<smode>        ::= "active" | "passive"



Frank Mueller
1999-10-29