Im folgenden werden die vom LoDi-Con verstandenen Kommandos aufgelistet. Die Kommunikation zum Gerät wird im Abschnitt Allgemeine API erklärt.
Dieses Kommando liefert die Gerätekennung sowie die FW-Version des Geräts.
Pakettyp | Kommando | Paketnummer |
0x20 | 0x0F | 0x00 .. 0xFF |
Von Steuersoftware zu senden
Pakettyp | Kommando | Paketnummer | Gerätetyp | Major | Minor | Patch |
0x21 | 0x0F | 0x00 .. 0xFF | 0x13 |
Antwort vom Gerät
Der Gerätetyp ist beim LoDi-Con immer 0x13.
Die Firmware-Version setzt sich aus den drei Komponenten Major, Minor und Patch zusammen. Sie wird im Format "v<Major>.<Minor>.<Patch>" angezeigt. Beispiel: "v0.5.7"
Die Major-Version ändert sich nur, wenn eine komplett neue Hardware mit geänderten Eigenschaften und Funktionsumfang herausgebracht wird.
Die Minor-Version ändert sich, wenn Ergänzungen an der API erfolgen. Diese können bei einzelnen Kommandos auch inkompatibel sein.
Die Patch-Version ändert sich bei allgemeinen Fehlerbehebungen, die nicht die API betreffen.
Dieses Kommando sollte vor der Verbindungstrennung gesendet werden.
Pakettyp | Kommando | Paketnummer |
0x20 | 0x0C | 0x00 .. 0xFF |
Von Steuersoftware zu senden
Pakettyp | Kommando | Paketnummer |
0x21 | 0x0C | 0x00 .. 0xFF |
Antwort vom Gerät ist ACK
Dieses Kommando startet das Hochladen einer Datenbank auf das LoDi-Con. Der eigentliche Hochladevorgang erfolgt über die FTP-Schnittstelle.
Pakettyp | Kommando | Paketnummer | Aktion | Länge | |||
0x20 | 0xDE | 0x00 .. 0xFF | 0x01 | 24..31 | 16..23 | 8..15 | 0..7 |
Von Steuersoftware zu senden
Pakettyp | Kommando | Paketnummer |
0x21 | 0xDE | 0x00 .. 0xFF |
Antwort vom Gerät
Das Feld Länge definiert die Größe der Hochzuladenden Datenbank.
Dieses Kommando schließt das Hochladen der Datenbank ab. Die vorher angegebene Dateigröße wird überprüft. Stimmt die Größe überein, so wird dem Anwender im LoDi-Con ein Bestätigungsdialog präsentiert.
Pakettyp | Kommando | Paketnummer | Aktion |
0x20 | 0xDE | 0x00 .. 0xFF | 0x02 |
Von Steuersoftware zu senden
Pakettyp | Kommando | Paketnummer |
0x21 | 0xDE | 0x00 .. 0xFF |
Antwort vom Gerät
Dieses Kommando muss vor dem Download der Datenbank aus dem LoDi-Con gesendet werden.
Pakettyp | Kommando | Paketnummer | Aktion |
0x20 | 0xDE | 0x00 .. 0xFF | 0x03 |
Von Steuersoftware zu senden
Pakettyp | Kommando | Paketnummer | Länge | |||
0x21 | 0xDE | 0x00 .. 0xFF | 24..31 | 16..23 | 8..15 | 0..7 |
Antwort vom Gerät
Das Feld Länge gibt die aktuelle Größe der Datenbankdatei auf dem LoDi-Con an.
Fordert einen Screenshot des aktuellen LoDi-Con Bildschirms an. Die eigentlichen Bilddaten werden als Events übertragen
Pakettyp | Kommando | Paketnummer | Modus |
0x20 | 0xDF | 0x00 .. 0xFF | 0..1 |
Von Steuersoftware zu senden
Das Feld Modus bestimmt die Anzahl der im Event zu übertragenden Zeilen.
0: Es wird immer nur eine Zeile als Event übertragen.
1: Es dürfen mehrere Zeilen pro Event übertragen werden.
Pakettyp | Kommando | Paketnummer | Breite | Höhe | ||
0x21 | 0xDF | 0x00 .. 0xFF | Bit 8..15 | Bit 0..7 | Bit 8..15 | Bit 0..7 |
Antwort vom Gerät
Die Felder Breite und Höhe geben die Anzahl der Pixel an.
Mit der Bestätigung des Kommandos wurde der Screenshot aufgenommen und wird im Folgenden mittels Events aktiv vom LoDi-Con übertragen.
Pakettyp | Kommando | Paketnummer |
0x23 | 0xDF | 0x00 .. 0xFF |
Antwort vom Gerät wenn bereits ein Screenshot übertragen wird.
Schickt die Zeilen des Screenshots an die Steuersoftware.
Pakettyp | Kommando | Eventzähler | Zeilennummer | Daten | |
0x22 | 0xDF | 0x00 .. 0xFF | Bit 8..15 | Bit 0..7 | 16 Bit pro Pixel |
Event vom Gerät
Das Feld Zeilennummer entspricht der Zeile im Screenshot
Hochformat: 0-319, 240 Pixel a 16 Bit folgen
Querformat: 0-239, 320 Pixel a 16 Bit folgen.
Ist Modus 1 gewählt, so können weitere Zeilen folgen. Wobei immer die Zeilennummer gefolgt von den Daten gesendet wird. Die maximale Paketgröße ist dabei auf 1500 Bytes begrenzt. Die Anzahl der gesendeten Zeilen ist über die Paketgröße zu ermitteln.
Bit 15 | Bit 14 | Bit 13 | Bit 12 | Bit 11 | Bit 10 | Bit 9 | Bit 8 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
R | R | R | R | R | G | G | G | G | G | G | B | B | B | B | B |
Aufbau eines Pixels
Schickt eine virtuelle User Interface Eingabe an das LoDi-Con. (ab v0.5.7)
Pakettyp | Kommando | Paketnummer | Typ | X | Y | C | ||
0x20 | 0xD2 | 0x00 .. 0xFF | 0 .. 255 | Bit 8..15 | Bit 0..7 | Bit 8..15 | Bit 0..7 | 0..255 |
Von der Steuersoftware zu senden
Das Feld Typ enthält den Typ der Eingabe. Die Felder X,Y und C werden je nach Typ belegt.
1: Touch Screen gedrückt - X: X-Pos, Y: Y-Pos
2: Touch Screen losgelassen - X: X-Pos, Y: Y-Pos
3: Touch Screen lange gedrückt - X: X-Pos, Y: Y-Pos
4: Knopf gedrückt
5: Knopf losgelassen
6: Knopf lange gedrückt
8: Knopf nach rechts gedreht
9: Knopf nach links gedreht
10: UI Element angeklickt - X: X-Pos, Y: Y-Pos
11: Wischen - X: X-Distanz, Y: Y-Distanz ( X oder Y muss 0 sein)
12: Zeicheneingabe - C: ASCII-Code des Zeichens
Alle anderen Typen werden intern verwendet und durch die API nicht weitergegeben.
Besondere Tastencodes für das Feld C bei Typ=12:
0x06: ACK - Bestätigung, Enter
0x15: NACK - Abbruch
0x08: DEL - Löschen
Weitere Codes unterhalb von 0x20 werden intern verwendet, sollten aber von außen nicht angesteuert werden.
Dieses Kommando fordert das Logbuch des LoDi-Cons an. Die Übertragung des Logbuchs erfolgt durch Events. (ab v0.5.7)
Pakettyp | Kommando | Paketnummer |
0x20 | 0xD3 | 0x00 .. 0xFF |
Von Steuersoftware zu senden
Dieser Event wird nach dem Empfang des Kommandos GetLogbook gesendet, um das aktuelle Logbuch zu übertragen. Er erfolgt auch ungefragt, wenn ein neuer Eintrag zum Logbuch hinzugefügt wird. (ab v0.5.7)
Pakettyp | Kommando | Eventzähler | Zeitstempel | Ursprung | Level | Text | |||
0x22 | 0xD3 | 0 .. 0xFF | Bit 24..31 | Bit 16..23 | Bit 8..15 | Bit 0..7 | Bis zu 122 Bytes |
Von Gerät versendet
Das Feld Zeitstempel gibt die Zeit seit dem Gerätestart im Millisekunden an.
Das Feld Ursprung enthält die Quelle des Eintrags.
1: WLAN
2: API
3: FTP
5: Datenbank
10: Zentrale
11: LoDi-Rektor
12: LoDi-S8-Commander
13: LoDi-Shift-Commander
14: märklin CS2 oder CS3
15: ESU ECoS
16: WiThrottle
17: XpressNet
18: z21
20: Lokomotive
21: Schaltartikel
Der Level gibt den Schweregrad des Eintrags an.
0: Emergency
1: Alert
2: Critical
3: Error
4: Warning
5: Notice
6: Info
7: Debug
8: Trace
Der Text ist bis zu 122 Zeichen lang und wird mit 0 abgeschlossen, wenn er kürzer als 122 Zeichen ist.
Mit einem Event werden bis zu 10 Einträge versendet.