In SLIP-Pakete eingebettet sind folgende Pakete definiert.
Legende Relevanz Symbol Erläuterung notwendig + muss gesendet werden
muss empfangen werdennotwendig (nur
empfangsseitig)(+) kann gesendet werden
muss empfangen werdennicht
anwendbar- wird nicht gesendet
wird beim Empfang ignoriertoptional o kann gesendet und empfangen werden
ist für Blockfunktionen nicht relevant
Name Bytecode Blockbauform Dez Hex Relaisblock
Felderblock
Tf71Selbstblock
AchszählerSelbstblock
GleiskreisSchweizer
BlockReserviert für interne Zwecke Bodos EStW zu Bodos EStW 1..10 1..0A - - - - Konfiguration Information über Bauart und Technologie 41 29 o o o o Felderblock/Relaisblock/Tf71 Vorblock 42 2A + - - - Rückblock 43 2B + - - - Erlaubnis-Abgabe 44 2C + + + - Erlaubnis-Anfrage 45 2D (+) (+) (+) - Klick-Klack 40 28 o - - - Optionale Acknowledges für Debugzwecke Vorblock Acknowledge 142 8E o - - - Rückblock Acknowledge 143 8F o - - - Erlaubnis-Abgabe Acknowledge 144 90 o - - - Erlaubnis-Anfrage Acknowledge 145 91 o - - - Selbstblock Achssensor Zählerstand 46 2E - + - - Achszählergrundstellung 49 31 - + - - Austausch von Gleisstromkreis-Zuständen 53 35 - - + + Zustandsmeldung Einfahrsignal-Zustand 47 2F o + + o Blockstellensteuerung/-überwachung Blockstellen-Zustand 50 32 o o o o Befehle an die Blockstelle 51 33 o o o o Selbststellbetrieb Anstoßmeldung 52 34 o o o - americaN Transportcontainer für Broadcast über Blockleitung 55 37 o o o o Stacked Data 56 38 o o o o Aspect Transfer 57 39 o o o o Schweizer Block LSPOL LoopStatusPositiveOddLowOhmic 70 46 - - - + LSPOH LoopStatusPositiveOddHighOhmic 71 47 - - - + LSPEL LoopStatusPositiveEvenLowOhmic 68 44 - - - + LSPEH LoopStatusPositiveEvenHighOhmic 69 45 - - - + LSH LoopStatusHigh 67 43 - - - + LSL LoopStatusLow 66 42 - - - + LSO Loop Status Off 65 41 - - - + ZN-Light Transportcontainer für vereinfachte Zugnummernweiterschaltung 72 48 o o o o Alte Pakete, die nicht mehr verwendet werden, sind hier gelistet, damit wir wissen, dass wir diese Nummern nicht aus Versehen für etwas Neues verwenden Plug & Pray Konfiguration 48 30 - - - - Zusatzinformationen für Zentralblock 54 36 - - - -
Alles weitere sind Planungen, die zur Diskussion stehen. Falls jemand bei der Implementierung von diesem oder jenem mitwirken möchte, ist er herzlich eingeladen!
Wer weiss, was noch kommt ;-)
Die o.g. Bytecodes werden im sogenannten Serial Line Internet Protocol (SLIP) eingebettet. Dies dient dazu, hintereinander geschickte Pakete voneinander zu trennen. Das Trennzeichen ist C016. Beispiel eines Vorblock-Pakets in hexadezimaler Darstellung:C0 2A C0Das erste C016 ist optional, schadet aber auch nicht. Man kann es als Paketende des vorausgehenden Paketes oder als Paket mit 0 Bytes Länge auffassen, welches ignoriert wird. Die 2A16 ist die Nutzlast des Paketes, in der Tabelle oben als "Vorblock" definiert. Das zweite C016 ist das Paketende des Vorblocks.
Andere Pakete haben mehr Nutzbytes und variable Inhalte. Zum Beispiel istC0 2F 3F C0die Meldung eines Hp1-zeigenden Einfahrsignals. 2F16 zeigt an, dass es sich um die Meldung eines Signalzustands handelt, 3F16 ist der Code für GO, was im Gebiet der Deutschen (Bundes-)Bahn Hp1 entspricht.
Was ist zu tun, wenn C016 selbst zur Nutzlast des Pakets gehört? C016 entspricht 192 in dezimaler Darstellung. Wenn man nun einen Achszählerstand von 192 melden möchte, wäre die Lösung vermeintlich:C0 2E 10 CO 00 C0Dies führt jedoch beim Empfänger zum Missverständnis, dass das Paket schon nach den ersten beiden Nutzbytes beendet ist und dann noch ein Paket mit der Nutzlast 0016 folgt. Laut SLIP ist die Lösung hierfür folgender Algorithmus:
Ist ein Nutzbyte C016, so wird es durch die zwei Zeichen DB16DC16 ersetzt.
Ist ein Nutzbyte DB16, so wird es durch die zwei Zeichen DB16DD16 ersetzt.
Der Empfänger muss diese Zeichenfolgen ebenfalls erkennen und wieder durch die ursprünglichen Nutzbytes C016 und DB16 ersetzen. Das korrekte Paket zur Meldung von 192 Achsen lautet also:C0 2E 10 DB DC 00 C0Durch dieses Protokoll sind beliebig lange Zeichenketten aus allen 256 Zeichen übertragbar.
Die Realisation der Übertragung ist hier erläutert.
Autor: Stefan Bormann. | Site hosted by: |