API LoDi-Shift-Commander

Einführung

Im folgenden werden die vom LoDi-Shift-Commander verstandenen Kommandos aufgelistet. Die Kommunikation zum Gerät wird im Abschnitt Allgemeine API erklärt.

Basis-Kommandos

GetVersion

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 0x09      

Antwort vom Gerät

Der Gerätetyp ist beim LoDi-Shift-Commander immer 0x09.

Die Firmware-Version setzt sich aus den drei Komponenten Major, Minor und Patch zusammen. Sie wird im Format "v<Major>.<Minor>.<Patch>" angezeigt. Beispiel: "v01.01.01"

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.

DeviceConfigGet

Dieses Kommando liest die Einstellungen des LoDi-Shift-Commanders.

Pakettyp Kommando Paketnummer
 0x20 0x64 0x00 .. 0xFF

Von Steuersoftware zu senden

Pakettyp Kommando Paketnummer Bus-Konfig MaxAktivWeichen WeichenStart
 0x21 0x64 0x00 .. 0xFF 0 .. 1 0 .. 10  0 .. 2

Antwort vom Gerät

Das Feld Bus-Konfig enthält die Konfiguration des Busses. Es ist in mehrere Bits aufgeteilt.

  • Bit 0: Bus 1 aktiv
    • 0: Bus 1 inaktiv
    • 1: Bus 1 aktiv
  • Bit 1: Bus 2 aktiv
    • 0: Bus 2 inaktiv
    • 1: Bus 2 aktiv
  • Bit 2: Bus Kofniguration
    • 0: Licht-Bus (96 Ausgänge)
    • 1: Schalt-Bus (384 Ausgänge)

Im Feld MaxAktivWeichen wird die Anzahl der gleichzeitig geschalteten Weichen definiert. Auf diese Weise wird bei Magnetartikel eine Überlast im Netzteil vermieden.

  • 0: Keine Begrenzung
  • >0: Die eingestellte Anzahl an Weichen kann gleichzeitig aktiv sein. Sonst wird mit der Befehlsausführung gewartet, bis die anderen Weichen geschaltet haben.

Der Eintrag WeichenStart legt die Initialisierung der Weichen beim Einschalten fest.

  • 0: Es erfolgt keine Initialisierung der Weichen
  • 1: Die Weichen werden auf den letzten Zustand gestellt.
  • 2: Alle Zustände der Weichen werden einmal durchgeschaltet. Danach wird der letzte vor dem Ausschalten bekannte Zustand eingestellt.

Schalt-Kommandos

CommandListGet

Liest die Liste aller vom LoDi-Shift-Commander unterstützten Kommandos.

Pakettyp Kommando Paketnummer
 0x20 0x61 0x00 .. 0xFF

Von Steuersoftware zu senden

Pakettyp Kommando Paketnummer Anzahl KommandoNr Zustände Ausgänge Kategorie
 0x21 0x61 0x00 .. 0xFF    0 .. 255 1 .. 16  1 .. 10 0 .. 3

Antwort vom Gerät

Im Feld Anzahl wird die Anzahl möglichen Kommandos übergeben. Dieser Eintrag bestimmt wie viele Kommandobeschreibungen folgen.

Das Feld KommandoNr ist die Kennung des Kommandos.

Der Eintrag Zustände gibt an, wievele Zustände von 0 an gezählt das Kommando einnehmen kann. Eine einfache Weiche hat typischerweise 2 Zustände. Signale können durchaus 10 oder mehr Zustände haben.

Ausgänge beschreibt die Anzahl der vom Kommando auf der Hardware belegten Ausgänge. Eine einfache Weiche belegt zwei Ausgänge, Signale durchaus 6 und mehr.

Im Feld Kategorie wird die Klassifizierung des Kommandos ausgegeben. Die folgenden Werte sind möglich:

  • 0: Weichen - Weichen werden beim Start initialisiert, wenn dies so im Gerät eingestellt ist
  • 1: Signale - Alle Gleissignale, egal ob Licht oder Formsignale
  • 2: Effekte - Alle Lichteffekte
  • 3: Spezial - Alle speziellen Dekoderkommandos wie z.B. für den LoDi-Light-Operator

CommandNameGet

Liest den Namen eines Kommandos und weitere Zusatzinformationen.

Pakettyp Kommando Paketnummer KommandoNr
 0x20 0x62 0x00 .. 0xFF 0 .. 255

Von der Steuersoftware zu senden

Das Feld KommandoNr enthält die Kennung des zu lesenden Kommandos.

Pakettyp Kommando Paketnummer Länge Zeichen 0 .. Zeichen n
 0x21 0x62 0x00 .. 0xFF        

Antwort vom Gerät

Das Feld Länge bestimmt die Anzahl der in Zeichen 0 bis Zeichen n folgenden Zeichen. Der daraus resultierende String muss noch wie folgt interpretiert werden:

<Kommandoname>|<Farbe Ausgang 1>|..|<Farbe Ausgang n>

Die Farben sind wie folgt festgelegt:

  • ws: weiß
  • rt: rot
  • gn: grün
  • ge: gelb
  • bl: blau

Die Farben werden den jeweiligen Ausgängen zugeordnet. Sie dienen hauptsächlich der Anzeige.

Bei einigen Kommandos wird nur der Kommandoname ohne zusätzliche Farbkennung zurückgegeben.

 

Beispiel:

"DB BS|rt|gn" -> Deutsche Bahn Block Signal mit den Farben rot und grün

NodeConfigGet

List die Konfiguration aller Knoten aus dem Lodi-Shift-Commander.

Pakettyp Kommando Paketnummer
 0x20 0x66 0x00 .. 0xFF

Von Steuersoftware zu senden

Pakettyp Kommando Paketnummer GlobDelay Anzahl AusgangHi AusgangLo KommandoNr Delay
 0x21 0x66 0x00 .. 0xFF 0 .. 250        0 .. 255 0 .. 255

Antwort vom Gerät

GlobDelay gibt die Kommandodauer an, wenn Delay auf 0 gesetzt wird. Die Kommandodauer wird in 20ms Schritten interpretiert. Ein Wert von 10 bedeutet also 200ms. Die genaue Wirkung ist vom Kommando abhängig.

Das Feld Anzahl gibt die Anzahl der folgenden Knoten-Datensätze an. Jeder Datensatz ist vier Bytes lang. Der Index des Datensatzes bestimmt die Adresse des Knotens. Die Zählung beginnt bei 0 (Die Anzeige addiert 1 dazu).

AusgangHi und AusgangLo ergeben zusammen den ersten vom Knoten angesprochenen Ausgang. Die Nummer des Ausgangs wird wie folgt berechnet:

Ausgang = AusgangHi*256 + AusgangLo

Der Eintrag KommandoNr bestimmt das auszuführende Kommando. Ist das Kommando 0, so liegt auf dieser Adresse keine Funktion.

Weiterer Text folgt . . .