Drucken

API Smartphone

Railware Smartphone IP-Protokoll


Verwendet wird UDP Port 11083. Er kann per Railware Systemoptionen (Bereich: Profi Parameter / Netzwerk) geändert werden; sollte also parametrierbar sein.
Port 11080 ist für Programmierbefehle fest reserviert und nicht dokumentiert.
Es wird im Halb-Duplex? Mode gearbeitet. Bis zum nächsten Befehl muss eine Antwort abgewartet werden.
Als Antworten werden 2 Byte Datagramme mit '!' (Ack) oder '?' ( Nack) gesendet.
Einige OpCodes? initiieren ein Antwort Datagramm.
Nicht beschriebene OpCodes? sind zur internen Nutzung oder für andere Controllertypen reserviert!
Initialisierungssequenz ist zwingend.

Antworten auf Befehle

Es wird immer eine Antwort mit mindestens 2 Byte gegeben.
In Op wird der zuvor gesendete OpCode? zurückgegeben.

Soweit nicht anders angegeben, werden diese Antworten gesendet:

Befehl ausgeführt
AckOp
0x21


Antwort auf Befehl mit angehängten Nutzdaten
AckOpByte1Byte2ByteN
0x21


Befehl unbekannt
NackPadding
0x3F0x00


Die Befehle:


SendTurnout
Sendet Einzelbefehl an eine Weiche
OpAddrHiAddrLoState
0x01
AddrLo?, AddrHi: Adressbereich 1 bis 4096
State: 1=Abzweig 0=Gerade


GetTurnout
Liest Status einer Weiche
OpAddrHiAddrLo
0x02

Antwort:
AckOpState
0x210x02
State: 1=Abzweig 0=Gerade


SendTrain
Sendet Befehl an Zug oder Lok
OpHandleCmdSpeedDirectionF0F1F8F9F16
0x03
Handle: Aktuelle Nummer des Zuges
Cmd: 0=Nothalt, 1=Abfahren, 2=Vorwärts, 3=Rückwärts 4=Bremsvorgang, 5=Fahren auf Sicht, 6=Zugsteuerung (Speed, Direction, F0, F1F8?, unbenutzt)
Cmd: 9=Lok Kommando mit Speed, F0, F1F16
Direction: 1=Vorwärts 0=Rückwärts
F0: Lichtfunktion 1=Ein 0=Aus
F1F8: Lokfunktionen Einzelbits 1=Ein 0=Aus


GetTrainStatus
Holt Status des Zuges und Speedsteps der Lok
OpHandle
0x03
Handle: Aktuelle Nummer des Zuges

Antwort:
AckOpStatusSpeedStepsDirectionF0F1F8F9F16
0x210x03
Status: 0=Halt, 1=Fährt, 2=Bremst, 3=Wartet
Steps: Anzahl Fahrstufen (14,15,27,28,126)
Direction: 1=Vorwärts 0=Rückwärts
F0: Lichtfunktion 1=Ein 0=Aus
F1F16: Lokfunktionen Eizelbits 1=Ein 0=Aus


GetTrainList
Liste aller Zugnamen
Op
0x04

Antwort:
AckOpCountHandle1Name1...DelimiterHandle nName n...Delimiter n
0x210x04
Count: Anzahl der aktiven Züge
Handle: Nummer des Zuges
Name: Zugname bis zu 10 Zeichen
Delimiter ist Zeichen: @ (0x40)


Status
Abfrage Controllertyp und Version
Op
0x0F

Antwort:
AckOpTypMajorVerMinorVer
0x210x0F709
Typ=7 für rwFahrpult
ertsmals vor einem Kommando zu prüfen!


Verbindungsaufbau:


1. UDP Broadcast über Port 11083 senden

Op
0xF5
Wird Railware gefunden, kommen 18 Bytes zurück. Es kann mehrere aktive Railware PC im Netz geben.

Antwort:
AckOpIP1IP2IP3IP4Mask1Mask2Mask3Mask4MAC1MAC2MAC3MAC4MAC5MAC6PortHiPortLo
0x210xF5
IP1..4: IP1..IP4: IP Adresse Railware PC
Mask1..4: Netzwerkmaske
MAC1..6: MAC Adresse
Port: Tatsächlich verwendeter Port (kann abweichen)


2. Typ erfragen
Ist es Railware Software oder irgendein Railware Hardware Controller?

Op
0x0F
AckOpTypMajorVerMinorVer
0x210x0F709
Typ: Muss 7 sein!


3. Mit GetTrainList? Liste der momentan aktiven Züge holen
4. Eventuell Status erfragen, wenn schon ein Zug aktiv

Nach Step 2 (Status) können folgende Events ungefragt gesendet werden.
Events können am gesetzten MSB von Op erkannt werden.

TurnoutEvent
Kann als ungefragtes Event empfangen werden, wenn die Adresse vorher benutzt wurde
Ack OpAddrHiAddrLoState
0x210x82
Beschreibung siehe: GetTurnout


TrainStatusEvent
Kann als ungefragtes Event kommen, wenn das Handle schon mal benutzt wurde.
AckOpHandleStatusSpeedStepsDirectionF0F1F8F9F16
0x210x83
Beschreibung siehe: GetTrainStatus


ListChangeEvent
Wurden Züge im PC ein- oder ausgesetzt, dann wird ungefragt dieses Event gesendet. Danach sollte mit GetTrainList? aktuelle Liste geholt werden
AckOp
0x210x85


MainEvent
Wird bei Nothalt oder Ende gesendet
AckOpState
0x210x86
State: 0=Digital Ok, 1=Digital Stop, 2=Digital Lokhalt, 3=Railware Terminate


Kategorie: API


Zu dieser Seite haben beigesteuert: Railware Team5973 Punkte  .
Page last modified on Mittwoch 02 Juni, 2010 22:11CEST by Railware Team5973 Punkte .
Der Inhalt dieser Seite unterliegt folgenden Lizenzbestimmungen: Copyright.

Suche

in: