srcpd 2.0.10 review

Download
by rbytes.net on

SRCP is a TCP/IP Protocol to cover all aspects of model railroading

License: GPL (GNU General Public License)
File size: 0K
Developer: Matthias Trute
0 stars award from rbytes.net

SRCP is a TCP/IP Protocol to cover all aspects of model railroading. It is ascii text based and follows a strict command-response schema. In the world of SRCP the server is the interface to the model railway system.

Any client connects to the server and recieves information about the state of any component (including the server) and sends commands to change the state of any component. Thus SRCP is fully multiuser. To prevent conflicts, a component can be locked by one client session.

SRCP means Simple Railroad Command Protocol. It is an IP based protocol. It covers all aspects of model railroading. srcpd project implements a client-server architecture.

SRCP defines an abstract layer above the model railroad system. If covers the differences between DCC or MarklinMotorola or any other system. A client developer does not need to know, which type of signalling is used. Even if a complete new system comes up: once a SRCP server implements it, any SRCP client can be used without any change.

SRCP consists of command words and devices, on which the commands operate. Command words are SET, GET, WAIT, VERIFY, RESET, INIT and TERM. The most important devices are locomotive decoders (GL== generic loco), impulse decoders (GA == generic accessoire) and feed back sensors. To address decoder programming so called Service mode devices are defined.

All components are structured in busses, which basically bundle components which are accessible through a shared device (e.g. a central unit). These busses will also be used to segment the adress space. One basic feature of SRCP is that it never changes the hardware adress. E.g. can the NMRA "short" addresses and the "long" addresses be structured into two independent busses. It is the responsibility of the server developer, to define the the bus structure well. A client developer has to take care, that the address of any component contains two elements.

Not all components does exists on all systems. To get initial information, the server can inform the client about all devices it knows about. Some functionality can even be emulated by the server, if the target does not support the requested feature (e.g. get current speed: many railroad systems do not support this operation).

Another nice feature, which is can be used is a central time source. SRCP contains a time "device", which keeps all clients with a current model time. This time can run at any ratio to the real time: 6 real time minutes can be 1 model hour.

SRCP has evolved over time. The first usable revision, which is outdated by now is called 0.7.3. It works well and a lot of program still use it. For all software we encourage to use the current version 0.8.2, which is stable for more than a year. The most recent version is called 0.8.3-wip, which contains a few enhancements. They are not yet formally correct and may contain errors or can be changed in the future.

Future Versions of SRCP will keep compatability with the current 0.8 specification. A client can request a special SRCP version during the initial handshake.

The discussion around SRCP runs in the German newsgroup de.rec.modelle.bahn.

What's New in This Release:
This release adds basic loconet support, provides enhancements for Selectrix and LI100, and includes internal changes for better support of Linux 2.6 and 64-bit architectures.
From the SRCP 0.8.3 the SET FB feature was implemented.
This is most useful for the loopback bus, as others may suffer from hardware support.

srcpd 2.0.10 keywords