API LoDi-S88-Commander

Einführung

Im folgenden werden die vom LoDi-S88-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 0x0A      

Antwort vom Gerät

Der Gerätetyp ist beim LoDi-S88-Commander immer 0x0A.

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-S88-Commanders.

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

Von Steuersoftware zu senden

Pakettyp Kommando Paketnummer Länge Geschwindigkeit  Einschaltverz. Ausschaltverz.
Bus1 Bus2 Bus1 Bus2 Bus1 Bus2 Bus1 Bus2
 0x21 0x35 0x00 .. 0xFF 0..48 0..48 0..2 0..2

0,10,

100,250

0,10,

100,250

0,10,

100,250

0,10,

100,250

                     
      Busse trennen µCon-Kompat

Adressen

verw.

     
      0 0..1 1      

Antwort vom Gerät

Die Felder Länge Bus1 und Länge Bus2 geben die Anzahl der am jeweiligen Bus angeschlossenen Module wieder. Ein Modul ist dabei immer 16 Eingänge lang. Insgesamt dürfen 96 Module angeschlossen werden.

 

Die Einträge Geschwindigkeit Bus1 und Geschwindigkeit Bus2 enthalten die S88-Busgeschwindigkeit.

  • 0: Schnell
  • 1: Normal
  • 2: Langsam

Die Busgeschwindigkeit ist vor allem bei langen Bussen wichtig, um eine hohe Abfragerate zu erreichen. Der erste Takt eines Buszyklus hält sich immer an die im S88-Standard definierten Werte. Alle am Markt erhältlichen Module sollten die Einstellung 1 (Normal) vertragen, da diese dem S88-Standard entspricht. Oft funktioniert die Einstellung 0 (Schnell). Alle LoDi-Rückmelder unterstützen die Einstellung schnell.

 

Die Felder Einschaltverzögerung Bus1 und Einschaltverzögerung Bus 2 bestimmen, wie schnell eine erkannte Belegtmeldung auslösen soll. In der Regel sollte hier der Wert 0 (Keine) eingetragen werden.

  • 0: Keine
  • 10: Kurz (100 ms)
  • 100: Mittel (1 s)
  • 250: Lang (2,5 s)

Die Felder Ausschaltverzögerung Bus1 und Ausschaltverzögerung Bus 2 bestimmen, wie lange eine Belegtmeldung noch aktiv sein soll, wenn kein Signal erkannt wurde. In der Regel sollte hier der Wert 100  (Mittel) eingetragen werden, um ein Flackern der Belegtmeldung und einen ausreichend großen Sicherheitsabstand zu erreichen.

  • 0: Keine
  • 10: Kurz (100 ms)
  • 100: Mittel (1 s)
  • 250: Lang (2,5 s)

Das Feld Busse trennen wird aktuell nicht unterstützt und sollte deshalb den Wert 0 haben.

 

Mit der Einstellung µCon Kompatibilität kann man den LoDi-S88-Commander in einem zum µCon-S88-Master kompatiblen Modus schalten. Das Gerät öffnet einen zusätzlichen UDP Port (11082) und hört dort auf µCon-S88-Master kompatible Kommandos. Alle Events werden im µCon-kompatiblen Format gesendet. Es sind kein RailCom  und keine Strommessung verfügbar.

 

Das Feld Adressen verwenden wird derzeit nicht unterstützt. Es sollte den Wert 1 haben.

S88BusModulesGet

List alle an den beiden S88-Bussen angeschlossenen Geräte sortiert nach ihren S88-Adressen ein.

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

Von Steuersoftware zu senden

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

Pakettyp Kommando Paketnummer Anzahl KommandoNr Zustände Ausgänge Kategorie
 0x21 0xA0 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

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 . . .