![]() |
![]() |
||
RocRail |
bidibSlotserverAktionenInitialisierungAutomatikEinmessenxmlScriptraspberryRCPSRCPAlternativen
Pfad: mknetz/Eisenbahn/Digital/RocRail |
||
Impressum |
|
Unter 'Rocrail-Eigenschaften' kann man im Tab 'Dienst' bei SRCP einen Haken bei 'Freigeben' machen. Beim nächsten Start des Rocrail-Servers läuft dann auch der SRCP-Server. Untenstehendes Telnet-Protocol dokumentiert die Handshake-Phase und das anschließende Stellen der Weiche mit der Adresse 0 und Port 1 (Rocrail-Notation) auf 'turnout' und 'straight'. Das Schließen der Telnet-Verbindung beendet die Session. Auffallend war, dass der Bus im SRCP-Kommando beliebig sein durfte. Vielleicht hängt das daran, dass ich in Rocrail eine virtuelle Zentrale eingestellt habe.
mk@x2:~$ telnet localhost 4303 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Rocrail 2.0r9063; SRCP 0.8.4; SRCPOTHER 0.8.3 set connectionmode srcp command 1436518738.101 202 OK CONNECTIONMODE go 1436518744.310 200 OK GO 2 set 0 ga 0 0 1 -1 1436518790.671 200 OK set 0 ga 0 1 1 -1 1436518811.711 200 OK
Das gleiche Beispiel auf der Python 3.4-Konsole:
>>> s = socket.socket() >>> s.connect(("localhost",4303)) >>> print(str(s.recv(1024)),'ASCII') b'Rocrail 2.0r9063; SRCP 0.8.4; SRCPOTHER 0.8.3\n' ASCII >>> s.send(bytes('set connectionmode srcp command','ASCII')) 31 >>> print(str(s.recv(1024)),'ASCII') b'1436628310.609 202 OK CONNECTIONMODE\n' ASCII >>> s.send(bytes('go','ASCII')) 2 >>> print(str(s.recv(1024)),'ASCII') b'1436628424.377 200 OK GO 2\n' ASCII >>> s.send(bytes('set 0 ga 0 0 1 -1','ASCII')) 17 >>> print(str(s.recv(1024)),'ASCII') b'1436628474.570 200 OK\n' ASCII >>> s.send(bytes('set 0 ga 0 1 1 -1','ASCII')) 17 >>> print(str(s.recv(1024)),'ASCII') b'1436628523.335 200 OK\n' ASCII >>> s.close