Digitalprojekt: Unterschied zwischen den Versionen

aus DerMoba, der Wissensdatenbank für Modellbahner
Wechseln zu: Navigation, Suche
(Grundzüge des SRCP erläutert. Erster Teil. Simple Railroad Command Protocol (SRCP))
(E-Mail-Adresse aktualisiert)
 
(59 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= Einleitung =
 
= Einleitung =
  
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich über die Newsgroup '''de.rec.modelle.bahn''' koordinieren. Ziel ist die Schaffung eines skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems zur [[Modellbahnsteuerung]]. Einzelne Komponenten dieses Systems können ausgetauscht werden, falls sich die Anforderungen ändern. Dies erfordert, daß zwischen den Komponenten eine lose Koppelung besteht. Diese Koppelung wird durch das Kommunikationsprotokoll SRCP erreicht. Die Kommunikation zwischen den einzelnen Komponenten erfolgt über TCP/IP, also mit herkömmlicher ''Internet-Technik''.
+
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich über die Newsgroup '''de.rec.modelle.bahn''' koordinieren. Ziel ist die Schaffung eines modularen und skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems zur [[Modellbahnsteuerung]]. Einzelne Komponenten dieses nach dem Client-Server-Prinzip aufgebauten Systems können
 +
ausgetauscht bzw. je nach Anforderung bausteinartig zusammengestellt werden.  
 +
Der Informationsaustausch der einzelnen Programme untereinander erfolgt über ein speziell für
 +
diesen Zweck erfundenes Protokoll (SRCP = [[SRCP-Grundlagen | Simple Railroad Command Protocol]]). Mit den Details
 +
dieser Sprachdefinition muß sich ein Anwender allerdings genausowenig auseinander setzen,
 +
wie ein E-Mail-Verfasser mit SMTP (Simple Mail Transfer Protocol). Wichtig ist lediglich,
 +
dass die eingesetzten Programme die gleiche Sprache sprechen.
  
Ein funktionsfähiges Digitalsystem des '''DER_MOBA''' Digitalprojekts besteht aus mindestens zwei Programmen: Einem SRCP-Server und einem SRCP-Client. Der Server stellt die eigentliche Schnittstelle zur Anlage dar und kommuniziert direkt mit einem [[Interface]] oder - im Falle eines DigitalDirekt-Systems - mit den [[Booster|Boostern]]. Der Client kommuniziert mit Hilfe des SRCP-Protokolls nur mit dem Server und stellt in der Regel ein Steuerungs- oder Bedienprogramm dar.
+
Ein Vorteil des hier eingesetzten Client-Server-Prinzips ist, dass die SRCP-Programme
 +
grundsätzlich netzwerkfähig sind. Der Anwender ist damit nicht an einen einzelnen
 +
Steuerungsrechner gebunden, wie das bei herkömmlichen Modellbahnsteuerungsprogrammen
 +
in der Regel der Fall ist.
  
Obwohl sehr viele, der derzeit verfügbaren SRCP-Programme, für das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grundsätzlich unabhängig von einem bestimmten PC-Betriebssystem. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere können mit wenig Aufwand portiert werden.
+
[[Bild:Srcp-clients.png|framed|Nachrichtenfluß zwischen der Modellbahn, einem SRCP-Server und verschiedenen SRCP-Clients]]
 +
Ein funktionsfähiges SRCP-Digitalsystem besteht von der Software-Seite her aus mindestens zwei Programmen:
  
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgeführt. Informationen zu den einzelnen Programmen werden überlichweise vom jeweiligen Autor über dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen Überblick über die verfügbare Soft- und Hardware bietet.
+
* Einem SRCP-Server und
 +
* einem SRCP-Client
  
= Simple Railroad Command Protocol (SRCP) =
+
Der ''Server'' stellt die eigentliche Schnittstelle zur Hardware der Modellbahnanlage dar und kommuniziert entweder mit einer per [[Interface]] angeschlossenen [[Digitalzentrale]] oder - im Falle eines DigitalDirekt-Systems - direkt mit den [[Booster|Boostern]]. Er nimmt Steuerbefehle von SRCP-Clients entgegen und leitet diese an die Modellbahn weiter. Zusätzlich hält er die Clients über Statusänderungen der Modellbahn informiert.
  
* Protokollspezifikation SRCP<br\>Die aktuelleste Protokollspezifikation von SRCP: [http://srcpd.sourceforge.net/srcp/srcp-083.html [HTML]][http://srcpd.sourceforge.net/srcp/srcp.pdf [PDF]]<br\>SRCP 0.8.x ist inkompatibel zu fr&uuml;heren SRCP-Versionen. Bereits vorhandene Software f&uuml;r SRCP 0.7.x wird im Laufe der Zeit auf SRCP 0.8.x umgestellt.<br/>
+
Der ''Client'' kommuniziert mit Hilfe von SRCP-Kommandos nur mit dem Server und stellt in der Regel ein Steuerungs- oder Bedienprogramm dar. Das Konzept schließt ausdrücklich die gleichzeitige Verwendung mehrerer SRCP-Clients ein, die z.B. auf verschiedene Funktionalitäten (Lokomotivsteuerung, Stellwerk, Ablaufsteuerung etc.) spezialisiert sein können (siehe nebenstehende Abbildung).
  
=== Designprinzipien===
+
Obwohl sehr viele, der derzeit verf&uuml;gbaren SRCP-Programme, f&uuml;r das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grunds&auml;tzlich unabh&auml;ngig von einem bestimmten Betriebssystem und der dafür notwendigen Hardware. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere k&ouml;nnen mit wenig Aufwand portiert werden.
  
SRCP benutzt zeilenorientierten Klartext. Der Text besteht aus Kommandos und Informationen.
+
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgef&uuml;hrt. Informationen zu den einzelnen Programmen werden &uuml;blicherweise vom jeweiligen Autor &uuml;ber dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen &Uuml;berblick &uuml;ber die verf&uuml;gbare Soft- und Hardware bietet. Weitere Detailinformationen zum Protokoll z.B. für Programmentwickler befinden sich im Artikel [[SRCP-Grundlagen]].
Kommandos werden vom Client an den Server übermittelt, Informationen vom Server an den
+
Client. Jedes Kommando und jede Information besteht aus exakt einer Zeile. Es ist eine
+
maximale Zeilenlänge definiert, um auch Programmieranfängern einfache Fehler wie
+
Buffer Overflows vermeiden zu helfen.
+
  
Der Server stellt seine Dienste im Netzwerk bereit. Zur Verbindungsaufnahme sind sein
+
<br clear="both"/>
Hostname (ersatzweise die IP Adresse) und der Netzwerkport (z.B. 12345) bei jedem
+
Client anzugeben. Der Client kann diese Angaben über andere Dienste anfordern (Bonjour,
+
Zeroconf, Active Directory).
+
  
Nach Verbindungsaufnahme wird vom Server eine zunächst anonyme Session gestartet. Diese
+
= SRCP-Server =
wird Handshake genannt. In ihr kann der Client verschiedene Betriebsparameter einstellen.
+
== Projekte für den praktischen Einsatz ==
Derzeit sind zwei verschiedene Betriebsmodus definiert: Command und Info. Weitere Parameter
+
betreffen z.B. die Version des SRCP, das benutzt werden soll. Da diese Idee erst ab Version
+
0.8 des SRCP enthalten ist, sind frühere, aber noch immer benutzte Versionen des SRCP (0.7),
+
nicht auswählbar.
+
  
Mit dem Befehl GO wird die Handshakephase beendet und die noch anonyme Session erhält eine
+
* '''DDW Server''' - DigitalDirekt-SRCP-Server (0.7.x und 0.8.x) f&uuml;r Windows.<br />Dieser Server macht den Computer zur Softwarezentrale und ermöglicht einen Digitalbetrieb ohne separate [[Digitalzentrale | Zentraleinheit]] und [[Interface | Computerinterface]].<br /> Kontakt: [mailto:mgrafe@snafu.de Michael Gr&auml;fe]<br /> Weitere Informationen zu diesem Programm gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.
Session-ID. Gleichzeitig wird die Verbindung auf den gewählten Betriebsmodus eingestellt.
+
  
Die Session-ID ist ein numerischer Wert, der die Session identifiziert.  
+
* '''erddcd''' - DigitalDirekt-SRCP-Server (0.7.x) f&uuml;r Linux (DDL)<br />Dieser Server macht den Computer zur Softwarezentrale und ermöglicht einen Digitalbetrieb ohne separate [[Digitalzentrale | Zentraleinheit]] und [[Interface | Computerinterface]] (für Linux Kernel 2.4 und 2.6).<br /> Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]<br />Weitere Informationen zu diesem Programm gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].  
  
Im Betriebsmodus INFO wird ausschließlich vom Server zum Client kommuniziert. Es werden
+
* '''TrackONE SRCP-Server''' - SRCP-Server (0.7.x) f&uuml;r Windows und die Intellibox.<br />Server zur Ansteuerung einer per serieller Schnittstelle angeschlossenen Intellibox.<br /> Kontakt: [mailto:Michael@Reukauff.de Michael Reukauff]<br /> Weitere Informationen zu diesem Programm gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.
alle im Protokoll als INFO gekennzeichneten Angaben (Code 100 bis 199) übertragen. Alle
+
Angaben markieren Veränderungen. Der Client beendet die INFO Session, indem er die
+
Verbindung kappt (es besteht keine Möglichkeit zur Kommandoübermittlung an den Server).
+
  
Im Betriebsmodus COMMAND wartet der Server auf Kommandos vom Client. Sobald ein Kommando
+
* '''DCC-Signaler''' - SRCP-Server (0.7.x) f&uuml;r Windows und Linux.<br />Dieser Server arbeitet in Verbindung mit einem externen, über die serielle Schnittstelle angeschlossenen DCC-Signalgenerator.<br /> Kontakt: [mailto:markus@gietzen.de Markus Gietzen]<br /> Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des [http://dccsignaler.sourceforge.net/ Projektes].
eintrifft, wird es bearbeitet und eine Antwort generiert und an den Client gesendet. Die
+
Antworten sind Bestätigungen, das das Kommando angenommen wurde, Fehlermeldungen oder
+
Abfrageergebnisse.
+
  
Kommandos bestehen aus einem Kommandowort, einer Adressangabe und weiteren Parametern.
+
* '''srcpd''' - SRCP-Server (0.8.x) f&uuml;r Linux/FreeBSD/Windows (Cygwin)/Mac&nbsp;OS&nbsp;X<br />&raquo;srcpd&laquo; kann zur Steuerung von Anlagen sowohl über verschiedene [[Digitalzentralen]], wie z.B. Intellibox, M&auml;rklin Interface 6051, Lenz LI100, Selectrix, Zimo MX1, OpenDCC, als auch über direkt an der seriellen Schnittstelle (RS232) angeschlossene [[Booster]] (DDL-Betrieb) genutzt werden. Möglichkeiten zum Anschluß von Rückmeldungen, wie Littfinski HSI-S88 oder S88-Module am Parallelport, sowie weitere Module für seltener vorkommende Schnittstellen (CAN-Bus, I2C) sind ebenfalls vorhanden. Es können auch mehrere Geräte gleichzeitig (z.B. zwei Intelliboxen) eingesetzt werden.<br /> Kontakt: [mailto:srcpd-devel@lists.sourceforge.net srcpd-devel@lists.sourceforge.net]<br /> Weitere Infos zu diesem Programm gibt es auf den [http://srcpd.sourceforge.net/ Projekt-Seiten] bei SourceForge.
Kommandoworte bestehen aus Verben, die eine Tätigkeit beschreiben: SET, GET, INIT
+
TERM usw. Adressangaben sind i.allg. dreiteilig: Ein Bus, eine Gerätegruppe und eine
+
Adressangabe (Dekoderadresse).
+
  
Eine Gerätegruppe markiert Geräte mit gleichen Parametern. Dies können reale Geräte
+
* '''ejsrcpd''' - Extended Java SRCP-Daemon (0.8.x)<br />In Java implementierter SRCP-Server mit Plugin-Konzept zur Unterstützung unterschiedlicher Hardware-Schnittstellen.<br /> Kontakt: [mailto:kurtharders@users.sourceforge.net Kurt Harders]<br /> Weitere Informationen zu diesem Programm gibt es auf den [http://sourceforge.net/projects/ejsrcpd WWW-Seiten] des Projektes.
wie Decoder sein (Jeder hat eine Adresse, einen Motor mit unterschiedlichen Fahrstufen
+
und 0 oder mehr Funktionsausgängen) oder nur logische Geräte wie das TIME Device sein,
+
die nicht unbedingt ein Hardwarependant haben müssen.
+
  
Ein Bus kennzeichnet einen Adressraum, über den verschiedene Geräte erreichbar sind.
+
== Technologiestudien ==
Im einfachsten Fall ist ein Bus eine Verbindung zwischen dem SRCP Server und dem
+
Computerinterface der Moba.
+
 
+
====Gründe für das Design====
+
 
+
=====Parameterlisten vs. benamte Parameter=====
+
Die Diskussion wurde per Mehrheitsbeschluß entschieden. Eine technische Über- oder
+
Unterlegenheit einer der beiden Varianten konnte nicht festgestellt werden. Allgemein
+
wurde vermutet, das benamte Parameter aufwendiger in der Umsetzung sind.
+
 
+
=====Kommandoworte=====
+
Die Kommandoworte wurden zugunsten einer größeren Gerätegruppenzahl klein und
+
abstrakt gehalten. Jeden beeinflußbaren Parameter kann man via GET/SET bearbeiten.
+
 
+
Es wurde allgemein für einfacher gehalten, neue Gerätegruppen mit den definierten
+
Kommandos zu kombinieren als für neue Geräte auch neue Kommandos einzuführen.
+
 
+
 
+
* Historie:
+
** [[SRCP_0.5.0_(plain_text)|SRCP - Simple Railroad Command Protocol 0.5.0]]
+
** [[SRCP - Simple Railroad Command Protocol 0.6.0]]
+
** [[SRCP - Simple Railroad Command Protocol 0.6.1]]
+
** [[SRCP_0.7.0_(plain_text)|SRCP - Simple Railroad Command Protocol 0.7.0]]
+
** [[SRCP - Simple Railroad Command Protocol 0.7.2]]
+
** [[SRCP - Simple Railroad Command Protocol 0.7.3]]
+
** [[SRCP - Simple Railroad Command Protocol 0.8.0]]
+
 
+
 
+
Nat&uuml;rlich ist es w&uuml;nschenswert, da&szlig; sich SRCP auch &uuml;ber die Grenzen des '''DER_MOBA''' Digitalprojekts verbreitet. Deshalb ist auch der Einsatz von SRCP in kommerziellen Produkten erlaubt. Allerdings sind folgende Bedingungen einzuhalten:
+
 
+
# Sowohl in der Software, wie auch in der zugeh&ouml;rigen Dokumentation wird auf die SRCP-Entwicklergruppe und diese Internetseite verwiesen.
+
# Es findet keine eigenm&auml;chtige Erweiterung von SRCP statt. Stattdessen werden Erweiterungen mit der SRCP Entwicklergruppe diskutiert und offiziell in SRCP integriert bzw. verworfen.
+
# Bei kommerziellem Erfolg des jeweiligen Produktes w&uuml;rden wir es gerne sehen, wenn sich die Entwickler &uuml;ber eine Spende zur Unterst&uuml;tzung von '''DER_MOBA''' Gedanken machen ;-).
+
 
+
== SRCP-Server ==
+
 
+
=== Aktiv gepflegte Projekte ===
+
 
+
Diese SRCP-Server werden aktiv weiterentwickelt. Wer sie einsetzt, hat einen
+
einsatzbereiten und leistungsf&auml;higen Server und kann bei Problemen und Herausforderungen auf Hilfe und Unterst&uuml;tzung setzen.
+
 
+
* '''DDW Server''' - DigitalDirekt-Server f&uuml;r Windows.<br />Digitalbetrieb ohne Zentraleinheit und Computerinterface.<br /> Kontakt: [mailto:mgrafe@snafu.de Michael Gr&auml;fe]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.
+
 
+
* '''erddcd''' - DigitalDirekt-Server f&uuml;r Linux (DDL)<br />Digitalbetrieb ohne Zentraleinheit und Computerinterface (für Linux Kernel 2.4 und 2.6).<br /> Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].
+
 
+
* '''TrackONE SRCP-Server''' - SRCP-Server f&uuml;r Windows und die Intellibox.<br />Wird ben&ouml;tigt, um SRCP-Clients mit der Intellibox zu betreiben.<br /> Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.
+
 
+
* '''srcpd''' - SRCP-Server f&uuml;r Linux/FreeBSD/Windows (Cygwin)/Mac&nbsp;OS&nbsp;X<br />&raquo;srcpd&laquo; kann zur Steuerung von Anlagen sowohl über verschiedene [[Digitalzentralen]], wie z.B. Intellibox, M&auml;rklin Interface 6051, Lenz LI100, Selectrix, Zimo MX1, als auch über direkt an der seriellen Schnittstelle (RS232) angeschlossene [[Booster]] (DDL-Betrieb) genutzt werden. Möglichkeiten zum Anschluß von Rückmeldungen, wie Littfinski HSI-S88 oder S88-Module am Parallelport, sowie weitere Module für seltener vorkommende Schnittstellen (CAN-Bus, I2C) sind ebenfalls vorhanden. Es können auch mehrere Geräte gleichzeitig (z.B. zwei Intelliboxen) eingesetzt werden.<br /> Kontakt: [mailto:srcpd-devel@lists.sourceforge.net srcpd-devel@lists.sourceforge.net]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ Projekt-Seiten] bei SourceForge.
+
 
+
* '''ejsrcpd''' - Extended Java SRCP-Daemon<br />In Java implementierter SRCP-Server mit Plugin-Konzept zur Unterstützung unterschiedlicher Hardware-Schnittstellen.<br /> Kontakt: [mailto:kurtharders@users.sourceforge.net Kurt Harders]<br /> Weitere Informationen zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://sourceforge.net/projects/ejsrcpd WWW-Seiten] des Projektes.
+
 
+
=== Technologiestudien ===
+
  
 
Diese SRCP-Server sind entstanden, um Funktionen nicht nur am gr&uuml;nen Tisch testen zu k&ouml;nnen. Sie
 
Diese SRCP-Server sind entstanden, um Funktionen nicht nur am gr&uuml;nen Tisch testen zu k&ouml;nnen. Sie
Zeile 117: Zeile 52:
 
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x. Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&auml;t. Derzeit ist es nicht f&uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&auml;higen SRCP-Server sucht, sollte sich die weiter oben angeführten Produkte ansehen.<br /> Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd/ Autors].
 
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x. Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&auml;t. Derzeit ist es nicht f&uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&auml;higen SRCP-Server sucht, sollte sich die weiter oben angeführten Produkte ansehen.<br /> Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd/ Autors].
  
== SRCP-Clients ==
+
== Kommerzielle Produkte ==
 +
 
 +
* '''Mini SRCP Server''' - Auf SRCP 0.8.2 basierende Firmware für Atmel Mikrocontroller; ist nur in Form eines fertig programmierten ATMega32 erhältlich.<br /> Kontakt: [mailto:r.barnstorf@online.de Reimar Barnstorf]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.7soft.de/de/mini_srcp_server/index.html Autors].
 +
 
 +
= SRCP-Clients =
  
* '''J-Man''' - manuelle Steuerung von Lokomotiven und Magnetartikel mit grafischer Oberfl&auml;che.<br />
+
* '''J-Man''' - Java-Programm zur manuellen Steuerung von Lokomotiven und Magnetartikeln unter einer grafischen Benutzeroberfl&auml;che. Die Weiterentwicklung dieses Programms findet unter einer eigenen [http://sourceforge.net/projects/j-man/ Projektseite] statt.<br />
  
 
* '''loco-panel''' - Monitor zur &Uuml;berwachung aller aktiven Loks.<br /> <!-- <LI><B>ddsh</B> - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÀufen.<BR> -->
 
* '''loco-panel''' - Monitor zur &Uuml;berwachung aller aktiven Loks.<br /> <!-- <LI><B>ddsh</B> - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÀufen.<BR> -->
Zeile 125: Zeile 64:
 
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Decodern<br />
 
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Decodern<br />
  
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Decodern<br />
+
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Decodern. Die Möglichkeit die Software zu beziehen, gibt es im Downloadbereich von [http://sourceforge.net/project/showfiles.php?group_id=29376 srcpd].
  
 
* '''phpTrainCtrl f&uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer<br />Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]<br /> Weitere Infos zu diesen Programmen und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].
 
* '''phpTrainCtrl f&uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer<br />Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]<br /> Weitere Infos zu diesen Programmen und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].
  
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &uuml;bersichtlicher Bedienoberfl&auml;che.<br /> Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den veralteten Seiten den [http://www.markus-pfeiffer.de/ WWW-Seiten] des Autors. Außerdem existiert eine von [http://www.lug-burghausen.org/dienste/rpm.html Guido Scholz] weiterentwickelte Version dieses Programms, sowie eine darauf aufbauende Version mit SRCP 0.8-Unterstützung von einer neuen [http://sourceforge.net/projects/dtcltiny/ Projektseite].
+
* '''phpDDLTerminal''' - PHP basiertes Web-Interface zur Steuerung und Decoder-Programmierung<br />Kontakt: [mailto:tt@borrmanns.de Thomas Borrmann]<br /> Weitere Informationen zu diesem Programm gibt es auf den Seiten des [http://tt.borrmanns.de/index.php?nav=0;0&cont=software Projektes].
  
* '''SpDrS60''' - grafisches Gleisbildstellpult nach Bundesbahnvorlage mit vorbildgerechter Fahrstraßensicherungslogik.<br /> Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den veralteten [http://www.linux-modellbahn.de/ WWW-Seiten] von Stefan Preis sowie der aktuellen [http://spdrs60.sourceforge.net/ Projektseite] des Programms.
+
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &uuml;bersichtlicher Bedienoberfl&auml;che.<br /> Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf  der aktuellen [http://dtcltiny.sourceforge.net/ Projektseite] des Programms.
 +
 
 +
* '''spdrs60''' - grafisches Gleisbildstellpult nach Bundesbahnvorlage mit vorbildgerechter Fahrstraßensicherungslogik.<br /> Kontakt: [mailto:guido.scholz@web.de Guido Scholz]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den veralteten [http://home.arcor.de/stefan.preis/modellbahn/spdrs60/index_d.htm WWW-Seiten] von Stefan Preis sowie der aktuellen [http://spdrs60.sourceforge.net/ Projektseite] des Programms.
  
 
* '''M6051emu''' - Emulation des M&auml;rklin Interfaces 6051 f&uuml;r '''erddcd'''.<br />Wird ben&ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;Co) mit '''erddcd''' betrieben werden sollen.<br /> Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].
 
* '''M6051emu''' - Emulation des M&auml;rklin Interfaces 6051 f&uuml;r '''erddcd'''.<br />Wird ben&ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;Co) mit '''erddcd''' betrieben werden sollen.<br /> Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].
  
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&auml;che (rcman)<br /> Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]<br /> Weitere Infos zu diesen Programmen und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors.
+
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&auml;che (rcman)<br /> Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]<br /> Weitere Infos zu diesen Programmen und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors. Die SRCP 0.8 fähige rcsh-Version ist über die [https://sourceforge.net/projects/srcpd/files/clients/rcsh/ Dateiablage des srcpd] erhältlich
  
 
* Programmbibliothken für '''TCL/Tk''' und '''Python''' - Sammlung n&uuml;tzlicher Routinen und Prozesse f&uuml;r den Selbstprogrammierer: [http://srcpd.sourceforge.net/clients/ Client-Seiten des srcpd]
 
* Programmbibliothken für '''TCL/Tk''' und '''Python''' - Sammlung n&uuml;tzlicher Routinen und Prozesse f&uuml;r den Selbstprogrammierer: [http://srcpd.sourceforge.net/clients/ Client-Seiten des srcpd]
Zeile 145: Zeile 86:
 
* '''Gplan''' - Gleispl&auml;ne erstellen und Magnetartikel steuern (f&uuml;r Windows und Linux).<br /> Kontakt: [mailto:mgrafe@snafu.de Michael Gr&auml;fe]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.
 
* '''Gplan''' - Gleispl&auml;ne erstellen und Magnetartikel steuern (f&uuml;r Windows und Linux).<br /> Kontakt: [mailto:mgrafe@snafu.de Michael Gr&auml;fe]<br /> Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.
  
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&uuml;r Windows) <br /> Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]<br /> Weitere Infos zu diesen Programmen und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.
+
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&uuml;r Windows) <br /> Kontakt: [mailto:Michael@Reukauff.de Michael Reukauff]<br /> Weitere Infos zu diesen Programmen und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.
  
 
* '''JTrain''' - In Java geschriebener grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdecodern mit grafischem Stellpult (f&uuml;r Windows und Linux). Die ursprünglich von Werner Kunkel betreute Original-Internetseite (www.jtrain.de) dieses Programms existiert nicht mehr. Es bestehen noch eine von [http://www.lug-burghausen.org/dienste/rpm.html Guido Scholz] weiterentwickelte Version dieses Programms sowie eine darauf aufbauende, von [mailto:ibruell@users.berlios.de Ingo Bruell] betreute [http://developer.berlios.de/projects/jtrain/ Projektseite].
 
* '''JTrain''' - In Java geschriebener grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdecodern mit grafischem Stellpult (f&uuml;r Windows und Linux). Die ursprünglich von Werner Kunkel betreute Original-Internetseite (www.jtrain.de) dieses Programms existiert nicht mehr. Es bestehen noch eine von [http://www.lug-burghausen.org/dienste/rpm.html Guido Scholz] weiterentwickelte Version dieses Programms sowie eine darauf aufbauende, von [mailto:ibruell@users.berlios.de Ingo Bruell] betreute [http://developer.berlios.de/projects/jtrain/ Projektseite].
Zeile 155: Zeile 96:
 
* '''TRAINer''' - SRCP-Client mit Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&uuml;r Windows)<br /> Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.keintzel.at/html/at/hobby/TRAINer/trainer.htm WWW-Seiten] des Autors.
 
* '''TRAINer''' - SRCP-Client mit Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&uuml;r Windows)<br /> Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.keintzel.at/html/at/hobby/TRAINer/trainer.htm WWW-Seiten] des Autors.
  
* '''SRCP-Pakete f&uuml;r verschiedene Linux-Distributionen''' - Guido Scholz hat einige der hier gelisteten Linux-Programme weiterentwickelt und diese in einfach zu installierende Pakete (SuSE, Fedora, Debian) verpackt.<br /> Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]<br /> Weitere Infos zu diesem Angebot und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.lug-burghausen.org/dienste/rpm.html WWW-Seiten] des Autors (hier Linux User Group Burghausen).
+
* '''SRCP-Pakete f&uuml;r verschiedene Linux-Distributionen''' - Guido Scholz hat einige der hier gelisteten Linux-Programme weiterentwickelt und diese in einfach zu installierende Pakete (SuSE, Fedora, Debian) verpackt.<br /> Kontakt: [mailto:guido.scholz@web.de Guido Scholz]<br /> Weitere Infos zu diesem Angebot und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.lug-burghausen.org/dienste/rpm.html WWW-Seiten] des Autors (hier Linux User Group Burghausen).
  
 
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version)<br /> Kontakt: [mailto:ganter@ganter.at Fritz Ganter]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc/ WWW-Seiten] des Autors.
 
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version)<br /> Kontakt: [mailto:ganter@ganter.at Fritz Ganter]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc/ WWW-Seiten] des Autors.
Zeile 163: Zeile 104:
 
* '''MOBA-Package''' - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)<br /> Kontakt: [mailto:selandro@users.sourceforge.net Roman Lauer]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://mobapackage.sourceforge.net/ WWW-Seiten] des Autors.
 
* '''MOBA-Package''' - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)<br /> Kontakt: [mailto:selandro@users.sourceforge.net Roman Lauer]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit die Software zu beziehen, gibt es auf den [http://mobapackage.sourceforge.net/ WWW-Seiten] des Autors.
  
* '''EnjoyTheTime''' - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)<br /> Kontakt: [mailto:mgeramb@users.sourceforge.net  Michael Geramb]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/enjoythetime.htm WWW-Seiten] des Autors.
+
* '''EnjoyTheTime''' - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)<br /> Kontakt: [mailto:mgeramb@users.sourceforge.net  Michael Geramb]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://sourceforge.net/projects/enjoythetime/ WWW-Seiten] des Projektes.
  
 
* '''Railroad Express''' - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)<br /> Kontakt: [mailto:support@miniware.nl  Fred Stevens]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://www.moba-digitaal.nl/de/main/index.html WWW-Seiten] des Autors.
 
* '''Railroad Express''' - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)<br /> Kontakt: [mailto:support@miniware.nl  Fred Stevens]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://www.moba-digitaal.nl/de/main/index.html WWW-Seiten] des Autors.
 +
 +
* '''ELECTRIP''' - SRCP-Client zum Steuern von Modellbahnanlagen mit dem Gamepad, unterstützt die Simulation der Lokomotivgeräusche (Linux-Version)<br /> Kontakt: [mailto:momits@users.sourceforge.net  Moritz Renftle]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://electrip.sourceforge.net/ WWW-Seiten] des Autors.
  
 
* '''dras/Kdigirail''' - SRCP-Client zum Steuern von Modellbahnanlagen (Linux-Version)<br /> Kontakt: [mailto:schmischi@users.sourceforge.net  Frank Schmischke]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/clients/dras/ WWW-Seiten] des Autors.
 
* '''dras/Kdigirail''' - SRCP-Client zum Steuern von Modellbahnanlagen (Linux-Version)<br /> Kontakt: [mailto:schmischi@users.sourceforge.net  Frank Schmischke]<br />Weitere Infos zu diesem Programm und die M&ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/clients/dras/ WWW-Seiten] des Autors.
Zeile 172: Zeile 115:
  
 
* '''jsrcpc''' - Java-SRCP-Bibliothek zur Entwicklung von SRCP-Clients<br /> Kontakt: [mailto:fork_ch@users.sourceforge.net Benjamin Mueller]<br />Weitere Infos zu dieser Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf der [http://sourceforge.net/projects/jsrcpc/ Projektseite] der Bibliothek.
 
* '''jsrcpc''' - Java-SRCP-Bibliothek zur Entwicklung von SRCP-Clients<br /> Kontakt: [mailto:fork_ch@users.sourceforge.net Benjamin Mueller]<br />Weitere Infos zu dieser Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf der [http://sourceforge.net/projects/jsrcpc/ Projektseite] der Bibliothek.
 +
 +
* '''nsrcp''' - .NET basierte SRCP-Bibliothek zur Entwicklung von SRCP-Clients<br /> Kontakt: [mailto:mgeramb@users.sourceforge.net Michael Geramb]<br />Weitere Infos zu dieser Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf der [http://sourceforge.net/projects/nsrcp/ Projektseite] der Bibliothek.
 +
 +
* '''JMRI''' - Java basierte Programmsammlung zur Steuerung von Modellbahnen<br /> Kontakt: [mailto:jmri-developers@users.sourceforge.net Entwickler Mailingliste]<br />Weitere Infos zu dieser Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf der [http://jmri.sourceforge.net/ Projektseite] der Programmsammlung.
 +
 +
* '''PPC SRCP Client''' - .Net basierter PocketPC-Client zur Steuerung von Lokomotiven<br /> Kontakt: [mailto:r.barnstorf@online.de Reimar Barnstorf]<br />Weitere Infos zu dieser Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf den [http://www.7soft.de/de/ppc_srcp_client/index.html WWW-Seiten] des Programms.
 +
 +
* '''eWicht''' - Handheld auf Basis eines Ethernet-PICs<br /> Kontakt: [mailto:svesch@gmx.de Sven Schlender]<br />Weitere Infos zu dieser Hard- und Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf den [http://www.mobacon.de/eWicht/ WWW-Seiten] des Projekts.
 +
 +
* '''Locomotion''' - Java basierte Eisenbahnsteuerung für Geräte mit Touch-Display<br /> Kontakt: [mailto:thkusch@googlemail.com Th. Kusch]<br />Weitere Infos zu dieser Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf den [http://locomotion.thkusch.de/ WWW-Seiten] des Projekts.
 +
 +
* '''Lokdrive''' - Lokomotivsteuerung<br /> Kontakt: [mailto:philipp@philipp-kolb.net Philipp Kolb]<br />Weitere Infos zu dieser Software und die M&ouml;glichkeit, diese zu beziehen, gibt es auf den [http://philipp-kolb.net/philipp_kolb_KLokdrive.html WWW-Seiten] des Projekts.
 +
 +
* '''SRCP Client f. Android''' - Lokomotivsteuerung mit einem Android Smartphone<br /> Kontakt: [mailto:michael@oscale.net Michael Blank]<br />Die kostenlose Software kann mit einem Android Handy direkt aus dem Android Market installiert werden, siehe hierzu [http://www.oscale.net/android SRCP Client bei oscale.net ] .
  
 
= Hardware =
 
= Hardware =
Im Rahmens des DDL-Projektes wurde eine Technik entwickelt, mit der ein PC einfach an die Hardware der Modellbahnanlage angeschlossen werden kann. Prinzipiell benötigt man hierfür zwei Informationskanäle, die jedoch auch einzeln betrieben werden können:
+
[[Bild:Srcp-moba-interface.png|framed|Mögliche Hardware-Schnittstellen zwischen SRCP-Server und Modellbahn]]
 +
Ein SRCP-Server kann unterschiedliche Hardwareschnittstellen eines Computers ansprechen und über diese mit der Modellbahn kommunizieren. Die größte Verbreitung für diesen Zweck hat die serielle Schnittstelle ([http://de.wikipedia.org/wiki/EIA-232 RS232/EIA-232]), die in neueren Rechnern zunehmend durch die [http://de.wikipedia.org/wiki/USB USB-Schnittstelle] ersetzt wird. Weitere Verwendung findet die parallele Schnittstelle ([http://de.wikipedia.org/wiki/IEEE_1284 IEEE 1284]) oder auch weniger geläufige, wie der [http://de.wikipedia.org/wiki/I2C I2C-Bus] oder diverse IO-Karten. Welche Art Hardware-Anbindung von den einzelnen SRCP-Servern unterstützt wird, ist der jeweiligen Programmdokumentation zu entnehmen.
 +
 
 +
<br clear="both"/>
 +
 
 +
== DDL-Betrieb ==
 +
Im Rahmens des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes] wurde eine Technik entwickelt, mit der ein PC einfach und kostengünstig an die Hardware der Modellbahnanlage angeschlossen werden kann. Der Computer kann nach diesem System als [[Digitalzentrale]] genutzt werden.  Prinzipiell benötigt man hierfür zwei Informationskanäle, die jedoch auch einzeln betrieben werden können:
 
* Ein Kanal zum Senden von Steuerbefehlen an die Anlage
 
* Ein Kanal zum Senden von Steuerbefehlen an die Anlage
 
* Ein Kanal zum Empfang von Rückmeldungen von der Anlage
 
* Ein Kanal zum Empfang von Rückmeldungen von der Anlage
  
Das Senden von Befehlen läuft über die serielle Schnittstelle, die im einfachsten Fall über zwei Kabel elektrisch mit einem [[Booster]] verbunden ist. Programmtechnisch wird die serielle Schnittstelle hierbei als Signalgenerator für das gewählte [[Digitalprotokoll]] genutzt.
+
Das ''Senden'' von Befehlen läuft über die serielle Schnittstelle ([http://de.wikipedia.org/wiki/EIA-232 RS232/EIA-232]), die im einfachsten Fall über zwei Kabel elektrisch mit einem [[Booster]] verbunden ist. Programmtechnisch wird die serielle Schnittstelle hierbei als Signalgenerator für das gewählte [[Digitalprotokoll]] genutzt. Beim praktischen Einsatz ist zu beachten, dass Notebooks in der Regel ein anderes Spannungsniveau an der RS232 liefern (ca. 5-8&nbsp;V), als Desktop-Rechner (ca. 12&nbsp;V). Manche Hardware-Kombinationen funktionieren daher an dem einen oder anderen Notebook nicht.
  
Zum Empfang von Rückmeldungen der Anlage benötigt man ein S88-Bus-System, das über Kabelverbindungen und eine 5&nbsp;V-Spannungsversorgung an die parallele Schnittstelle angeschlossen wird.
+
Zum ''Empfang'' von Rückmeldungen der Anlage benötigt man ein [[S88-R%C3%BCckmeldebus | S88-Bus-System]], das über Kabelverbindungen und eine 5&nbsp;V-Spannungsversorgung an die parallele Schnittstelle ([http://de.wikipedia.org/wiki/IEEE_1284 IEEE 1284]) angeschlossen wird.
  
 
Ein übersichtliche Zusammenstellung der für diese Anbindungen notwendigen elektischen Verbindungen gibt es von Holger Seider: http://home.snafu.de/mgrafe/Anleitung_Server.htm
 
Ein übersichtliche Zusammenstellung der für diese Anbindungen notwendigen elektischen Verbindungen gibt es von Holger Seider: http://home.snafu.de/mgrafe/Anleitung_Server.htm
  
= Common Railroad Configuration Files (CRCF) =
 
 
Ein Entwurf f&uuml;r ein Dateinformat, das eine zentrale Serverkonfiguration beschreibt, stammt von Edbert van Eimeren und ist zur Diskusssion in der Newsgroup '''de.rec.modelle.bahn''' freigegeben.
 
 
* Entwurf [[CRCF - Common Railroad Configuration Files 0.2.0 | CRCF 0.2.0 ]] / [[CRCF 0.2.0 (Muster) | CRCF Beispiel]]
 
 
* Historie:
 
** Entwurf [[CRCF - Common Railroad Configuration Files 0.1 | CRCF 0.1.0 ]]
 
  
 
[[Kategorie:Digitalbetrieb]]
 
[[Kategorie:Digitalbetrieb]]
 
[[Kategorie:SRCP]]
 
[[Kategorie:SRCP]]

Aktuelle Version vom 30. Januar 2016, 18:36 Uhr

Einleitung

Am DER_MOBA Digitalprojekt arbeiten derzeit viele Entwickler, die sich über die Newsgroup de.rec.modelle.bahn koordinieren. Ziel ist die Schaffung eines modularen und skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems zur Modellbahnsteuerung. Einzelne Komponenten dieses nach dem Client-Server-Prinzip aufgebauten Systems können ausgetauscht bzw. je nach Anforderung bausteinartig zusammengestellt werden. Der Informationsaustausch der einzelnen Programme untereinander erfolgt über ein speziell für diesen Zweck erfundenes Protokoll (SRCP = Simple Railroad Command Protocol). Mit den Details dieser Sprachdefinition muß sich ein Anwender allerdings genausowenig auseinander setzen, wie ein E-Mail-Verfasser mit SMTP (Simple Mail Transfer Protocol). Wichtig ist lediglich, dass die eingesetzten Programme die gleiche Sprache sprechen.

Ein Vorteil des hier eingesetzten Client-Server-Prinzips ist, dass die SRCP-Programme grundsätzlich netzwerkfähig sind. Der Anwender ist damit nicht an einen einzelnen Steuerungsrechner gebunden, wie das bei herkömmlichen Modellbahnsteuerungsprogrammen in der Regel der Fall ist.

Nachrichtenfluß zwischen der Modellbahn, einem SRCP-Server und verschiedenen SRCP-Clients

Ein funktionsfähiges SRCP-Digitalsystem besteht von der Software-Seite her aus mindestens zwei Programmen:

  • Einem SRCP-Server und
  • einem SRCP-Client

Der Server stellt die eigentliche Schnittstelle zur Hardware der Modellbahnanlage dar und kommuniziert entweder mit einer per Interface angeschlossenen Digitalzentrale oder - im Falle eines DigitalDirekt-Systems - direkt mit den Boostern. Er nimmt Steuerbefehle von SRCP-Clients entgegen und leitet diese an die Modellbahn weiter. Zusätzlich hält er die Clients über Statusänderungen der Modellbahn informiert.

Der Client kommuniziert mit Hilfe von SRCP-Kommandos nur mit dem Server und stellt in der Regel ein Steuerungs- oder Bedienprogramm dar. Das Konzept schließt ausdrücklich die gleichzeitige Verwendung mehrerer SRCP-Clients ein, die z.B. auf verschiedene Funktionalitäten (Lokomotivsteuerung, Stellwerk, Ablaufsteuerung etc.) spezialisiert sein können (siehe nebenstehende Abbildung).

Obwohl sehr viele, der derzeit verfügbaren SRCP-Programme, für das Betriebssystem Linux entwickelt wurden, ist das DER_MOBA Digitalprojekt grundsätzlich unabhängig von einem bestimmten Betriebssystem und der dafür notwendigen Hardware. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere können mit wenig Aufwand portiert werden.

Das DER_MOBA Digitalprojekt wird dezentral durchgeführt. Informationen zu den einzelnen Programmen werden üblicherweise vom jeweiligen Autor über dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen Überblick über die verfügbare Soft- und Hardware bietet. Weitere Detailinformationen zum Protokoll z.B. für Programmentwickler befinden sich im Artikel SRCP-Grundlagen.


SRCP-Server

Projekte für den praktischen Einsatz

  • DDW Server - DigitalDirekt-SRCP-Server (0.7.x und 0.8.x) für Windows.
    Dieser Server macht den Computer zur Softwarezentrale und ermöglicht einen Digitalbetrieb ohne separate Zentraleinheit und Computerinterface.
    Kontakt: Michael Gräfe
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Autors.
  • erddcd - DigitalDirekt-SRCP-Server (0.7.x) für Linux (DDL)
    Dieser Server macht den Computer zur Softwarezentrale und ermöglicht einen Digitalbetrieb ohne separate Zentraleinheit und Computerinterface (für Linux Kernel 2.4 und 2.6).
    Kontakt: Torsten Vogt
    Weitere Informationen zu diesem Programm gibt es auf den Seiten des DDL-Projektes.
  • TrackONE SRCP-Server - SRCP-Server (0.7.x) für Windows und die Intellibox.
    Server zur Ansteuerung einer per serieller Schnittstelle angeschlossenen Intellibox.
    Kontakt: Michael Reukauff
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Autors.
  • DCC-Signaler - SRCP-Server (0.7.x) für Windows und Linux.
    Dieser Server arbeitet in Verbindung mit einem externen, über die serielle Schnittstelle angeschlossenen DCC-Signalgenerator.
    Kontakt: Markus Gietzen
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Projektes.
  • srcpd - SRCP-Server (0.8.x) für Linux/FreeBSD/Windows (Cygwin)/Mac OS X
    »srcpd« kann zur Steuerung von Anlagen sowohl über verschiedene Digitalzentralen, wie z.B. Intellibox, Märklin Interface 6051, Lenz LI100, Selectrix, Zimo MX1, OpenDCC, als auch über direkt an der seriellen Schnittstelle (RS232) angeschlossene Booster (DDL-Betrieb) genutzt werden. Möglichkeiten zum Anschluß von Rückmeldungen, wie Littfinski HSI-S88 oder S88-Module am Parallelport, sowie weitere Module für seltener vorkommende Schnittstellen (CAN-Bus, I2C) sind ebenfalls vorhanden. Es können auch mehrere Geräte gleichzeitig (z.B. zwei Intelliboxen) eingesetzt werden.
    Kontakt: srcpd-devel@lists.sourceforge.net
    Weitere Infos zu diesem Programm gibt es auf den Projekt-Seiten bei SourceForge.
  • ejsrcpd - Extended Java SRCP-Daemon (0.8.x)
    In Java implementierter SRCP-Server mit Plugin-Konzept zur Unterstützung unterschiedlicher Hardware-Schnittstellen.
    Kontakt: Kurt Harders
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Projektes.

Technologiestudien

Diese SRCP-Server sind entstanden, um Funktionen nicht nur am grünen Tisch testen zu können. Sie können auch als Anregung für Weiterentwicklungen dienen.

  • jsrcpd - Referenzimplementierung von SRCP 0.8.x. Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalität. Derzeit ist es nicht für den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schwächen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe für die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzfähigen SRCP-Server sucht, sollte sich die weiter oben angeführten Produkte ansehen.
    Kontakt: Olaf Schlachter
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des Autors.

Kommerzielle Produkte

  • Mini SRCP Server - Auf SRCP 0.8.2 basierende Firmware für Atmel Mikrocontroller; ist nur in Form eines fertig programmierten ATMega32 erhältlich.
    Kontakt: Reimar Barnstorf
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des Autors.

SRCP-Clients

  • J-Man - Java-Programm zur manuellen Steuerung von Lokomotiven und Magnetartikeln unter einer grafischen Benutzeroberfläche. Die Weiterentwicklung dieses Programms findet unter einer eigenen Projektseite statt.
  • loco-panel - Monitor zur Überwachung aller aktiven Loks.
  • uhl-programmer - Programmieren von Uhlenbrock-Decodern
  • nmra-programmer - Programmieren von NMRA-DCC-Decodern. Die Möglichkeit die Software zu beziehen, gibt es im Downloadbereich von srcpd.
  • phpTrainCtrl für SRCP 0.8 (alpha) - u.a. phpTamsProgrammer
    Kontakt: Torsten Vogt
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des DDL-Projektes.
  • phpDDLTerminal - PHP basiertes Web-Interface zur Steuerung und Decoder-Programmierung
    Kontakt: Thomas Borrmann
    Weitere Informationen zu diesem Programm gibt es auf den Seiten des Projektes.
  • dtcltiny - manuelle Steuerung von Lokomotiven mit besonders kompakter und übersichtlicher Bedienoberfläche.
    Kontakt: Markus Pfeiffer
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf der aktuellen Projektseite des Programms.
  • spdrs60 - grafisches Gleisbildstellpult nach Bundesbahnvorlage mit vorbildgerechter Fahrstraßensicherungslogik.
    Kontakt: Guido Scholz
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den veralteten WWW-Seiten von Stefan Preis sowie der aktuellen Projektseite des Programms.
  • M6051emu - Emulation des Märklin Interfaces 6051 für erddcd.
    Wird benötigt, wenn Nicht-SRCP-Clients (z.B. Railroad&Co) mit erddcd betrieben werden sollen.
    Kontakt: Dieter Schaefer
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des DDL-Projektes.
  • rcsh und rcman - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfläche (rcman)
    Kontakt: Dr. Peer Griebel
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors. Die SRCP 0.8 fähige rcsh-Version ist über die Dateiablage des srcpd erhältlich
  • Programmbibliothken für TCL/Tk und Python - Sammlung nützlicher Routinen und Prozesse für den Selbstprogrammierer: Client-Seiten des srcpd
  • SRCP Recorder - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie später wieder ab.
    Kontakt: Matthias Trute
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • SRCP Tester - SRCP-Befehle mit einem Web-Server und PHP generieren.
    Kontakt: Martin Wolf
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den [http://www.stud.mw.tu-muenchen.de/~mw7/familie/martin/hobby/modellbahn/srcptest.html WWW-Seiten (link defekt)] des Autors.
  • Gplan - Gleispläne erstellen und Magnetartikel steuern (für Windows und Linux).
    Kontakt: Michael Gräfe
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware (für Windows)
    Kontakt: Michael Reukauff
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • JTrain - In Java geschriebener grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdecodern mit grafischem Stellpult (für Windows und Linux). Die ursprünglich von Werner Kunkel betreute Original-Internetseite (www.jtrain.de) dieses Programms existiert nicht mehr. Es bestehen noch eine von Guido Scholz weiterentwickelte Version dieses Programms sowie eine darauf aufbauende, von Ingo Bruell betreute Projektseite.
  • Java DCC Network Client (ab Version 2.1) - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN
    Kontakt: Helge Karoska
    Java-SRCP-Client für den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubehör einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden.
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • LD-X-Programmer - Programm zur Programmierung von Decodern der Firma Tams Elektronik (für Windows)
    Kontakt: Michael Geramb
    SRCP-Client (SRCP 0.7.3) für Windows zur Programmierung von Tams-Decodern.
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • TRAINer - SRCP-Client mit Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (für Windows)
    Kontakt: Peter Keintzel
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • SRCP-Pakete für verschiedene Linux-Distributionen - Guido Scholz hat einige der hier gelisteten Linux-Programme weiterentwickelt und diese in einfach zu installierende Pakete (SuSE, Fedora, Debian) verpackt.
    Kontakt: Guido Scholz
    Weitere Infos zu diesem Angebot und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors (hier Linux User Group Burghausen).
  • Traindrive - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version)
    Kontakt: Fritz Ganter
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • RocRail - Programm zum Steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)
    Kontakt: Rob Versluis
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • MOBA-Package - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)
    Kontakt: Roman Lauer
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • EnjoyTheTime - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)
    Kontakt: Michael Geramb
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den WWW-Seiten des Projektes.
  • Railroad Express - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)
    Kontakt: Fred Stevens
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • ELECTRIP - SRCP-Client zum Steuern von Modellbahnanlagen mit dem Gamepad, unterstützt die Simulation der Lokomotivgeräusche (Linux-Version)
    Kontakt: Moritz Renftle
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • dras/Kdigirail - SRCP-Client zum Steuern von Modellbahnanlagen (Linux-Version)
    Kontakt: Frank Schmischke
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • AdHoc-Railway - Java-SRCP-Client zum Steuern von Modellbahnanlagen
    Kontakt: Benjamin Mueller
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf der Projektseite des Programms.
  • jsrcpc - Java-SRCP-Bibliothek zur Entwicklung von SRCP-Clients
    Kontakt: Benjamin Mueller
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf der Projektseite der Bibliothek.
  • nsrcp - .NET basierte SRCP-Bibliothek zur Entwicklung von SRCP-Clients
    Kontakt: Michael Geramb
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf der Projektseite der Bibliothek.
  • JMRI - Java basierte Programmsammlung zur Steuerung von Modellbahnen
    Kontakt: Entwickler Mailingliste
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf der Projektseite der Programmsammlung.
  • PPC SRCP Client - .Net basierter PocketPC-Client zur Steuerung von Lokomotiven
    Kontakt: Reimar Barnstorf
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf den WWW-Seiten des Programms.
  • eWicht - Handheld auf Basis eines Ethernet-PICs
    Kontakt: Sven Schlender
    Weitere Infos zu dieser Hard- und Software und die Möglichkeit, diese zu beziehen, gibt es auf den WWW-Seiten des Projekts.
  • Locomotion - Java basierte Eisenbahnsteuerung für Geräte mit Touch-Display
    Kontakt: Th. Kusch
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf den WWW-Seiten des Projekts.
  • Lokdrive - Lokomotivsteuerung
    Kontakt: Philipp Kolb
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf den WWW-Seiten des Projekts.
  • SRCP Client f. Android - Lokomotivsteuerung mit einem Android Smartphone
    Kontakt: Michael Blank
    Die kostenlose Software kann mit einem Android Handy direkt aus dem Android Market installiert werden, siehe hierzu SRCP Client bei oscale.net .

Hardware

Mögliche Hardware-Schnittstellen zwischen SRCP-Server und Modellbahn

Ein SRCP-Server kann unterschiedliche Hardwareschnittstellen eines Computers ansprechen und über diese mit der Modellbahn kommunizieren. Die größte Verbreitung für diesen Zweck hat die serielle Schnittstelle (RS232/EIA-232), die in neueren Rechnern zunehmend durch die USB-Schnittstelle ersetzt wird. Weitere Verwendung findet die parallele Schnittstelle (IEEE 1284) oder auch weniger geläufige, wie der I2C-Bus oder diverse IO-Karten. Welche Art Hardware-Anbindung von den einzelnen SRCP-Servern unterstützt wird, ist der jeweiligen Programmdokumentation zu entnehmen.


DDL-Betrieb

Im Rahmens des DDL-Projektes wurde eine Technik entwickelt, mit der ein PC einfach und kostengünstig an die Hardware der Modellbahnanlage angeschlossen werden kann. Der Computer kann nach diesem System als Digitalzentrale genutzt werden. Prinzipiell benötigt man hierfür zwei Informationskanäle, die jedoch auch einzeln betrieben werden können:

  • Ein Kanal zum Senden von Steuerbefehlen an die Anlage
  • Ein Kanal zum Empfang von Rückmeldungen von der Anlage

Das Senden von Befehlen läuft über die serielle Schnittstelle (RS232/EIA-232), die im einfachsten Fall über zwei Kabel elektrisch mit einem Booster verbunden ist. Programmtechnisch wird die serielle Schnittstelle hierbei als Signalgenerator für das gewählte Digitalprotokoll genutzt. Beim praktischen Einsatz ist zu beachten, dass Notebooks in der Regel ein anderes Spannungsniveau an der RS232 liefern (ca. 5-8 V), als Desktop-Rechner (ca. 12 V). Manche Hardware-Kombinationen funktionieren daher an dem einen oder anderen Notebook nicht.

Zum Empfang von Rückmeldungen der Anlage benötigt man ein S88-Bus-System, das über Kabelverbindungen und eine 5 V-Spannungsversorgung an die parallele Schnittstelle (IEEE 1284) angeschlossen wird.

Ein übersichtliche Zusammenstellung der für diese Anbindungen notwendigen elektischen Verbindungen gibt es von Holger Seider: http://home.snafu.de/mgrafe/Anleitung_Server.htm