Table of Contents
RASCII
Einstellung
Optionen
Ping
Ein Ping-Befehl wird mit diesem Intervall in ms gesendet.
Deaktiviert falls Null.
Der Ping kann als "Totmannschalter" verwendet werden.
Definition
Das RASCII-Protokoll verwendet HEXA für alle Felder mit Ausnahme des Präfix- und Bemerkungs-Textes.
Befehl
Präfix | Länge | Befehl | Daten | Beispiel |
---|---|---|---|---|
@ | 00…FF | 00…FF | 0…n | @040101 |
Antwort
Präfix | Länge | Befehl | Daten | Beispiel |
---|---|---|---|---|
& | 00…FF | 00…FF | 0…n |
Ereignis
Präfix | Länge | Befehl | Daten | Beispiel |
---|---|---|---|---|
$ | 00…FF | 00…FF | 0…n | $100200010102030405 |
Info
Präfix | Länge | Text | Beispiel |
---|---|---|---|
# | 00…FF | 0…n | #0CRocDino V0.1 |
Der Infotext darf keines der Präfixe enthalten. Dadurch wird die Nachricht ungültig und zurückgewiesen.
Serieller Monitor
Der serielle Monitoreingang ist eine Möglichkeit, ein Gerät einfach einzurichten, z. B. die WLAN-Einstellungen.
Die Eingabe sollte gelesen werden, bis ein Zeilenvorschub (Line feed) erkannt wurde und kein Längenfeld enthalten.
Hilfe
Präfix | Hinweis |
---|---|
? | Sollte Hilfe zu Überwachungsbefehlen anzeigen. |
CV
Präfix | Beispeil | Hinweis |
---|---|---|
* | *ssid=myhome | Die Hilfefunktion sollte alle möglichen Einstellungen auflisten. |
HEXA
HEXA ist die Hexadezimal-ASCII-Darstellung einer Binärzahl.
Ein Dezimalwert von 47 wird beispielsweise in HEXA als "2F" dargestellt.
Code-Beispiele
Convert a HEXA string to a Byte value
Paratemers:
- s = HEXA-Zeichenkette
Rückmeldung: Den Byte-Wert
byte HexA2Byte( const char* s ) { byte h, l, val; if( s[0] >= 'A' ) h = s[0] - 55; else h = s[0] -48; if( s[1] >= 'A' ) l = s[1] - 55; else l = s[1] -48; val = l + (h << 4); return val; }
Wandelt einen Byte-Wert in eine HEXA-Zeichenkette um
Parameter:
- b = Byte-Wert
- s = Puffer für en Empfang der HEXA-Zeichenkette
Rückmeldung: Den Zeiger zum HEXA-Zeichenketten-Puffer
const char* Byte2HexA(byte b, char* s) { static char cHex[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; s[0] = cHex[(b&0xF0)>>4]; s[1] = cHex[ b&0x0F ]; s[2] = '\0'; return s; }
Lese-Sequenz
- Lesen Byte für Byte bis ein Präfix erkannt wird.
- Lesen der nächsten beiden HEXA-Zeichen und umwandeln in eine Zahl für die Länge.
- Lesen der Anzahl der Bytes, die im Längenfeld eingestellt ist.
- Umwandeln von HEXA in Bytes.
- Auswerten der Nachricht.
- Wiederholen.
Befehle
Board # FF is broadcast.
Code | Board | Description | Parameters | Reply |
---|---|---|---|---|
0 | # | Get information | none | A remark with version information. |
1 | # | Start | none | A remark. |
2 | # | Stop | none | A remark. |
3 | # | Get config | none | The board configuration response. |
4 | # | Set config | The board configuration. | |
5 | # | Reset config | none | |
6 | # | Get CV | CV-High, CV-Low | A CV number and value response. |
7 | # | Set CV | CV-High, CV-Low, value | A remark. |
10 | # | Digital output | Address, port, on/off | - |
11 | # | Analog output | Address, Port, value | Value can be brightness, followed by three bytes RGB. |
12 | # | Accessory | Address, Port, aspect1) | - |
13 | # | Mobile speed | Address-High, Address-Low, direction/speed2) | - |
14 | # | Mobile function | Address-High, Address-Low, function, value, lights, fx | Lights and FX(32bit) are for information only and optional. |
37 | # | PT ON | none | A remark. |
38 | # | PT OFF | none | A remark. |
39 | # | Accessory CV get | Address-High, Address-Low, CV-High, CV-Low | A CV number and value response. |
40 | # | Accessory CV set | Address-High, Address-Low, CV-High, CV-Low, value | A remark. |
Ereignisse
Board # FF is broadcast.
Code | Board | Description | Parameters | Remark |
---|---|---|---|---|
1 | # | Occupancy | Port, Status on/off | |
2 | # | RFID | Port, RFID bytes | All RFID bytes may be set zero to signal depart. Sending a one byte zero ID will also be evaluated as departed. |
3 | # | Digital input | Port, on/off | |
4 | # | Analog input | Port, value H/L | |
19 | # | MVTrack | Speed H/L, train length H/L |
Ereignisse können vom Hostprogramm bestätigt werden.