This emulates the ZLV-Bus with a TCP server.
The Server accepts connections from clients that implement a train discriber ("Unterstation"). Any message that is received by the server is propagated to all clients except the original sender.
You can download the last version of this software here: http://www.bmertins.de/FREMO/ZN.zip
This was invented by Moritz Hebert, when he started to write his software.
This was invented by Bodo Mertins, after having some problems with the old protocol.
Each telegram has the following form:
identifier : telegram data <CR><LF>
Mnemonic Usage ZLV a ZLV telegram similar to prototype form, details see below UHR time message ID welcome message of a client
The structure of the telegram follows the prototype from the ZN800 specification but uses some simplifications.
- Byte 3 (Anfangszeichen für Infotelegramme) is dropped
- Byte 11 (Endekennzeichen für Infotelegramme) is dropped
- Byte 12 (Blockprüfzeichen) is dropped
- A train number is coded in the display form, as described in coding of train numbers. The prototype BCD code is not used, so every character is transmitted in his ascii code.
- A train number can be transmitted with leading zeros or blanks to fill unused digits.
- The most left digit of a six digit train number is used as guide number (Lenkungsziffer). This can be a number between 0 and 9.
- A track number has four digits and is rigth-aligned. Unused digits on the left should filled up with blanks. Actual software implementations can not destinguish between tracks with leading zeros and without. For that it is not recomended to use track numbers with leading zeros but new software should implement this determination, so that at a later date also track numbers with leading zeros can be used.
ZLV : 04 02 3_4711 04 _201 <CR><LF> identifier : US number ZN telegram number train number
3: guide number
4711: train number
US number track number
if you use less then 4 digits, use leading blanks
'_' is used here to really mean a blank, which is encoded with ASCII code 32, not the underscore
|Author of this page: Stefan Bormann.|