<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://www.der-moba.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Matthias+Trute</id>
		<title>DerMoba - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://www.der-moba.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Matthias+Trute"/>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php/Spezial:Beitr%C3%A4ge/Matthias_Trute"/>
		<updated>2026-04-30T02:02:35Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=12191</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=12191"/>
				<updated>2007-07-06T18:01:37Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: /* Vorschlag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Stammtisch==&lt;br /&gt;
Um die aktuellen Vorhaben besser diskutieren zu können, schlage ich ein Treffen in Form eines Stammtisches vor. Vielleicht kann man sich hier zunächst über einen Ort des Treffens verständigen, der von den meisten gut erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
!  SRCP-Interessierter&lt;br /&gt;
!  Wohnort&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Sven Schlender&lt;br /&gt;
|  Karlsruhe&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Stefan Bormann&lt;br /&gt;
|  Bremen&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Guido Scholz&lt;br /&gt;
|  Burgkirchen&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ...&lt;br /&gt;
|  ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Obgleich es für das SRCP-Protokoll mittlerweile eine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer (4303) und Protokollbezeichner (srcp) gibt, hat ein SRCP-Administrator prinzipiell die Freiheit, einen von dieser Vorgabe abweichenden Wert für die Portnummer zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;4303&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl [[CRCF_-_Common_Railroad_Configuration_Files_0.2.0|CRCF]] (Common Railroad Configuration Files) schon vor einigen Jahren zur Implementierung vorgeschlagen wurde, fand es keine Verbreitung bzw. Anwendung. Möglicherweise war damals das Interesse zu gering. Umso mehr Interessenten fanden sich nun in dieser Diskussion, bei der über die bisherigen Ideen von CRCF hinaus einige weitergehende Themen aufkamen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Stand der Technik===&lt;br /&gt;
Der bisherige CRCF-Spezifikationsentwurf mit der Versionsnummer 0.2.0 basiert allein auf SRCP. Physikalisch liegen die CRCF-Daten beim SRCP-Server; wie genau, ist nicht definiert. Wie und ob diese über ein Netzwerk zugänglich sein sollen, ist ebenfalls nicht klar. Für die Abfrage von CRCF-Daten ist der Befehl CONFGET vorgesehen, der nur Lesezugriffe und damit auch nur den Umgang mit statischen Daten erlaubt. Ein analoger Befehl CONFSET zum Schreiben von Daten ist nicht definiert. Der vorliegende Entwurf ist zur Zeit der SRCP-Spezifikation 0.7.1 entstanden und bildet die mit Version 0.8 eingeführten Erweiterungen, wie z.B. Busse, noch nicht ab. Das Ablageformat wird als textbasierte Datei beschrieben, wobei die Daten in Sinne von SRCP mit entsprechend benannten Datenfeldern vorliegen. Die Informationen beziehen sich je Datei auf genau _einen_ SRCP-Server, dessen Eigenschaften ebenfalls erfaßt sind.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Die umständliche Eingabe von Informationen über Loks (z.B. Belegung der Funktionen) und Zubehör soll zur einfacheren Konfiguration von SRCP-Clients entfallen.&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen (konkretes Beispiel?)&lt;br /&gt;
* Als Alternative zum Zeroconf-Systemdienst könnte CRCF die Hostnamen bzw. IP-Adressen der SRCP-Server einer Anlage verwalten.&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF soll für Benutzer in ausdruckbarer Form zugänglich sein.&lt;br /&gt;
* Die Daten sollen in CRCF strukturiert/gegliedert abgelegt sein.&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten (Warum?).&lt;br /&gt;
* Der CRCF-Befehlsvorrat könnte zur Kommunikation zwischen Clients genutzt werden.&lt;br /&gt;
* Der bisherige Geltungsbereich einer CRCF-Datei sollte sich nicht nur auf _einen_ SRCP-Server, sondern vielmehr auf _eine_ Modellbahnanlage beziehen. Damit wäre ein geeigneter Rahmen vorhanden, den charterisierenden Bestand an z.B. Zügen, Fahrstraßen, SRCP-Servern, dem Streckennetz etc. einer Anlage zusammenfassend abzulegen.&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll eine Datenabfrage aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von CRCF verwaltet werden?&lt;br /&gt;
* Soll die Kommunikation zwischen SRCP-Clients mit CRCF abgebildet werden und wenn ja, wie?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Zentrale Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
Über die Diskussion ergab sich der Vorschlag, den CRCF-Datenbestand über einen speziellen SRCP-Client netzwerkweit zugänglich zu machen, statt diesen nur als zentral verwaltete Datei abzulegen. Dieser SRCP-Client hätte damit eine Art Datenbankserverfunktion und könnte gezielt Detailinformationen ausliefern. Interessierte Clients müßten dann nicht jeweils selbst die komplette Datei nach den für sie notwendigen Informationen durchsuchen. Auch ein SRCP-Server könnte auf diese Daten zugreifen.&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf diesen als CRCF-Server arbeitenden SRCP-Client erfolgt über den SRCP-Server, der sowohl die eingehenden CRCF-Anfragen als auch die zurückgehenden Antworten weiterleitet. Das bisherige SRCP muß erweitert werden, um diese neue Abfragetechnik zu ermöglichen. Bei diesem Modell wird SRCP als Tunnel genutzt, da CRCF-Anfragen vom SRCP-Server nicht interpretiert sondern nur durchgereicht werden. Dabei entsteht gleichzeitig eine Möglichkeit zur Kommunikation zwischen SRCP-Clients.&lt;br /&gt;
&lt;br /&gt;
Bei Installationen mit mehreren SRCP-Servern muß sich der SRCP-Client bei allen verfügbaren SRCP-Servern anmelden, damit Daten anlagenweit verteilt werden können. Die Programmierung solcher Clients wird wegen der erforderlichen Netzwerkverbindungen aufwändig. Alternativ müßten SRCP-Server so gekoppelt werden, das die Anmeldung bei einem Server reicht.&lt;br /&gt;
&lt;br /&gt;
Der SRCP-Client mit dem CRCF-Datenbestand kann konsistent statische und dynamische Daten verwalten, wenn er diese konsequent einsammelt bzw. zugestellt bekommt. Zusätzlich wird die Verwaltung von Daten, die über die SRCP-Welt hinausgehen, wie die von Fahrstrassen und kompletten Layouts, ermöglicht.&lt;br /&gt;
&lt;br /&gt;
====Zentrale Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
Als weitere Idee wurde der Vorschlag diskutiert, die Verwaltung der CRCF-Daten einem neu zuschaffenden CRCF-Server zu überlassen. Dieser würde als eigener Systemdienst laufen und müßte über ein neu zudefinierendes Protokoll angesprochen werden. Die SRCP-Spezifikation muß in diesem Fall nicht geändert werden, da das CRCF-Protokoll parallel und von SRCP weitgehend unabhängig existiert.&lt;br /&gt;
&lt;br /&gt;
Der CRCF-Server bedient zunächst nur rein statische Daten, die von den CRCF-Clients abgefragt werden können. Damit sowohl SRCP-Clients als auch SRCP-Server diesen Dienst nutzen können, müssen diese zusätzlich das CRCF-Protokoll implementieren.&lt;br /&gt;
&lt;br /&gt;
Um auch dynamische Daten zu verwalten, müß ein Meldedienst implementiert werden, der auch Schreibzugriffe in den Datenbestand ermöglicht. Eine Kommunikation zwischen CRCF-Clients könnte mittels einer Mailboxfunktion realisiert werden.&lt;br /&gt;
&lt;br /&gt;
==== Verteilte Datenablage bei verschiedenen SRCP-Clients====&lt;br /&gt;
Jeder SRCP-Client, der Daten verwaltet, die im laufenden Anlagenbetrieb einer mehr oder weniger kontinuierlichen Änderung unterliegen und über das herkömmliche SRCP nicht erfaßt werden, könnte diese zur Abfrage für interessierte Clients zur Verfügung stellen. Er würden dann sozusagen auch als CRCF-Server arbeiten, allerdings beschränkt auf die von ihm verwalteten, dynamischen Daten. Alternativ ließe sich dieses Konzept auch auf die statischen Daten ausdehnen.&lt;br /&gt;
&lt;br /&gt;
CRCF-Clients, die eine Anfrage starten möchten, wüßten zu Beginn nicht, wo diese Daten abgelegt sind. Eine zentrale Verwaltungsinstanz wäre in diesem Fall ja nicht vorhanden. Der anfragende Client könnte also eine Rundrufnachricht senden und würde die Antwort von dem zuständigen SRCP-Client bekommen. Hier besteht prinzipiell die Gefahr, dass diese Daten nicht konsistent vorliegen, wenn die Zuständigkeit der abgefragten Daten nicht eindeutig z.B. auf genau _einen_ bestimmten Client festgelegt ist. Insbesondere kann das leicht bei mobilen SRCP-Clients passieren, wenn diese auf mehreren Anlagen genutzt werden und der Benutzer nicht sorgsam mit den lokal gespeicherten Daten umgeht.&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
Diese Idee wurde als eine prinzipielle Möglichkeit erwähnt, aber nicht weiter ausgeführt.&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Für das Schreiben von Daten in den CRCF-Datenbestand existiert bisher ebenfalls noch kein Befehl. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Daten schreiben (CONFSET)&lt;br /&gt;
:: Befehl zum Schreiben von CRCF-Daten in eine CRCF-Datenbank (Warum reicht hier nicht SET und GET analog zum SRCP-Namensraum?).&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Freimeldeabschnitt (BLOCK)&lt;br /&gt;
:: Streckenabschnitt, der mit einer Gleisfreimeldeanlage (Rückmeldung/Belegtmeldung) überwacht wird.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (SLIST, Switch List)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung; ist nicht mit &amp;amp;raquo;Fahrstraße&amp;amp;laquo; zu verwechseln.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
; Bahnhof (STATION)&lt;br /&gt;
:: Start- und Zielpunkt von Zugfahrten. &lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang der SRCP-Spezifikation definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt. Dazu gab es folgenden Lösungsvorschlag:&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation, bei der die Busse der Slave-Server auf Busse beim Master-Server abgebildet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden gemäß der SRCP-Spezifikation an alle im INFO-Modus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ (SRCP-Rundruf) mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Implementierungsvariante 1=====&lt;br /&gt;
Ein erster (anarchischer) Ansatz könte in SRCP 0.8-Terminologie so aussehen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 ECHO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 ECHO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Implementierungsvariante 2=====&lt;br /&gt;
Ein zweiter, mehr geordneter Ansatz, schreibt die Verwendung definierter Befehle (SRCP-Makros) vor, analog also beispielsweise so:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 MACRO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 MACRO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wobei &amp;lt;message&amp;gt; diesmal eine Folge von definierten (genormten) Befehlen inklusive deren Wert-Parametern sein muß. Diese Makros müssen natürlich den Kommunikationsbedarf der Clients (Frage/Antwort-Spiele) abdecken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Implementierungsvariante 3=====&lt;br /&gt;
Der dritte Ansatz wäre, statt der neu zu erfindenden Makros, CRCF zu benutzen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 CRCF &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt von &amp;lt;message&amp;gt; wäre dann eine CRCF-Befehlsfolge.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Anwendungsbeispiele=====&lt;br /&gt;
Angenommen eine Ablaufsteuerung (als eigener SRCP-Client) möchte eine Fahrstraße einstellen, dann sendet diese an das zuständige Stellwerk folgende (CRCF-)Befehlsfolge:&lt;br /&gt;
  &lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; SET STATE 1&lt;br /&gt;
&lt;br /&gt;
Den Erfolg bekommt er dann vom Stellwerk zurückgemeldet...&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; INFO STATE 1&lt;br /&gt;
&lt;br /&gt;
... oder kann ihn auch abfragen z.B. gemäß:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; GET STATE&lt;br /&gt;
&lt;br /&gt;
Sinngemäß ließe sich so auch die Belegung einer bestimmten Fahrstraße mit einem Zug (TRAIN) setzen, abfragen oder melden. Der übermittelte Zahlenwert würde dann der Zugnummer entsprechen. Der Bedarf, dass ein SRCP-Client einem Stellwerk Daten zur Konfiguration von Fahrstraßen sendet, wäre prinzipiell auch abdeckbar:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; ADD GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt; &amp;lt;port&amp;gt; &amp;lt;state&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder entfernen:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; REMOVE GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um eine Client-Client-Verbindung zu unterhalten, müßte der Sender eines CRCF-Befehls seine&lt;br /&gt;
SRCP-Session-ID immer mitsenden, dann könnte die Antwort zielgerichtet erfolgen:&lt;br /&gt;
&lt;br /&gt;
 CRCF 0 &amp;lt;sender-sessionid&amp;gt; &amp;lt;empfänger-sessionid&amp;gt; &amp;lt;CRCF-message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Inhalt von &amp;lt;sessionid&amp;gt; ließe sich ein CRCF-Broadcast einfach von einer Punkt-zu-Punkt-Verbindung unterscheiden:&lt;br /&gt;
&lt;br /&gt;
# Der Wert ist 0: Rundruf (Broadcast)&lt;br /&gt;
# Der Wert ist &amp;gt;0: Punkt-zu-Punkt-Verbindung&lt;br /&gt;
&lt;br /&gt;
Auch das Thema &amp;amp;raquo;Zugbeeinflussung&amp;amp;laquo; läßt sich hiermit darstellen. Ein Zug muß während seiner Fahrt Geschwindigkeitsregeln einhalten, die das Stellwerk überwacht. Bei Überschreitungen sendet das Stellwerk einen Abbremsbefehl:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;sender-session-id&amp;gt; 0 TRAIN &amp;lt;train-id&amp;gt; SET SPEED 0&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Die Implementierung wird nicht weiterverfolgt, da der Vorschlag zur neuen Gerätegruppe besser ins bisherige SRCP paßt. Die hier andiskutierten CRCF-Nachrichten können mit dem anderen Vorschlag ebenfalls transportiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
&lt;br /&gt;
Die Implementationen von CRCF bzw. Generic Messages und den bisher definierten SRCP-Sitzungen werden komplett getrennt.&lt;br /&gt;
&lt;br /&gt;
Motivation:&lt;br /&gt;
* Ermöglicht Kapselung von unterschiedlichen Client-Funktionalitäten: die bestehenden Sitzungen und Generic Messages sind für komplett unterschiedliche Zwecke gedacht. Die bisherigen Steuerungs-Sitzungen dienen der Kommunikation mit der Modellbahn-Hardware, Generic Messages dienen der Kommunikation der Clients untereinander.&lt;br /&gt;
* Dies senkt die Anforderungen an einen reinen Steuerungs-Server, er muss Generic Messages nicht unterstützen. ''Anmerkung von svesch: Der Server muss die GMs nur weiterleiten. CRCF macht nur Sinn, wenn es die SRCP-Server auch wirklich unterstützen. Sozusagen mandatory ab Version X.''&lt;br /&gt;
* Es erspart mobilen Eingabegeräten z.B. einem Handregler den extremen Traffic, den intelligentere stationäre Clients untereinander haben. ''Anmerkung von svesch: Das ist ein wichtiger Punkt, den habe ich im Punkt &amp;quot;Vorschläge zur Trafficminimierung&amp;quot; versucht Rechnung zu tragen.''&lt;br /&gt;
&lt;br /&gt;
Bei der Einschätzung des Programmieraufwands gehen die Meinungen auseinander. Die einen sehen Zusatzaufwand in der dritten TCP-Verbindung, andererseits erhöht die Kapselung der Funktionalitäten die Wartbarkeit des Systems.&lt;br /&gt;
&lt;br /&gt;
Eigene Sitzungen trennen sowohl den Namensraum für Steuerung und Generic Messages als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL GM 0.3&lt;br /&gt;
 SET CONNECTIONMODE GM INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur GM-Sitzungen, aber keine Steuerungs-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
Die Diskussion dauert noch an, daher ist keine abschliessende Bewertung möglich&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
&lt;br /&gt;
Für den generalisierten Nachrichtenaustausch wird eine neue Gerätegruppe (device group) &amp;amp;raquo;Generic Message&amp;amp;laquo; (GM) auf Bus 0 eingerichtet. Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
&lt;br /&gt;
Beispielhafte Anwendung im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist diejenige INFO-Session-ID, die die Nachricht erhalten soll. Ist diese 0, so wird die Nachricht als Rundruf an alle INFO-Sessions gesendet. Die AntwortID ist die INFO-Session-ID (oder 0), an die eine eventuelle Antwortnachricht gesendet werden soll. Anmerkung: Die Antwort-ID ist niemals die Session-ID, die den SET Befehl ausführt.&lt;br /&gt;
&lt;br /&gt;
Beispielhafte Anwendung im INFO-Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein entweder zentral (Wo und von wem?) oder dezentral (anwendungsspezifisch) definierter Identifier, der als eindeutige Kennung für die Interpretation von &amp;lt;messagetext&amp;gt; dient.&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen/Formatanforderungen, z.B. dass der Zeichensatz aus 7&amp;amp;nbsp;Bit ASCII besteht. Die Länge der gesamten Kommandozeile ist auf 1000 Zeichen begrenzt.&lt;br /&gt;
&lt;br /&gt;
=====Anwendungsbeispiel=====&lt;br /&gt;
Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf Bus 17. Antwort an Session-ID 45 erbeten (Schritt A).&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie die INFO-Nachricht aussieht, dürfte offensichtlich sein. Er geht an alle INFO-Sessions (Schritt B).&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF-Service diese Nachricht erhalten hat, sendet er eine passende Antwort an den SRCP-Server (Schritt C):&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Info-Session des CRCF-Services ist im Beispiel 25; die Antwort wird vom&lt;br /&gt;
SRCP-Server direkt an die SESSION 45 weitergeleitet (Schritt D):&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß über die Schritte A, B, C und D ist in der unten angefügten Grafik dargestellt. CA ist die COMMAND-Session von Client A, IA dessen INFO-Session. Für Client B (CRCF-Server) gilt die Benennung analog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Anfragen kann der Client direkt an Session 25 stellen. Er erhält&lt;br /&gt;
die INFO-Nachricht sofort. Wenn Session 25 terminieren sollte, kann er wieder&lt;br /&gt;
auf Empfänger 0 (= alle) umstellen.&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
Es entsteht eine allgemein nutzbare Kommunikationsstrecke mit vielfältigem Anwendungspotential. Es entsteht ein permanenter Pflegedienst für Vergabe der Nachrichtentypen (kann automatisiert werden).&lt;br /&gt;
Der Vorschlag wurde in die SRCP-Spezifikation 0.8.4 übernommen.&lt;br /&gt;
&lt;br /&gt;
====Anmerkungen====&lt;br /&gt;
Zu den Konsequenzen der Implementierung gab es einige spezielle Fragestellungen.&lt;br /&gt;
&lt;br /&gt;
;Müssen wir uns über Timeouts Gedanken machen?&lt;br /&gt;
: Das ist Sache der Clients und sollte natürlich benutzerfreundlich gestaltet sein.&lt;br /&gt;
&lt;br /&gt;
;Wie lange soll ein anfragender Client auf Antworten warten?&lt;br /&gt;
:Da der Client für das Timeoutverhalten verantwortlich ist, entscheidet auch er darüber. Wiederum gilt, so benutzerfreundlich, wie möglich.&lt;br /&gt;
&lt;br /&gt;
;Generiert der Server gegebenenfalls eine Timeout-Nachricht?&lt;br /&gt;
:Nein, denn er hat keine Ahnung vom Inhalt der ausgetauschten Nachrichten. Er transportiert nur eine Botschaft; dass zwei (oder auch mehr) Teilnehmer zu einem Dialog gehören, ist dem Server unbekannt.&lt;br /&gt;
&lt;br /&gt;
;Wenn der Server schon beim Empfang einer &amp;quot;SET 0 GM&amp;quot;-Anfrage sieht, dass er damit keinen Empfänger erreichen kann, sollte er eine entsprechende Meldung an den Anfrager generieren (beispielsweise wenn der Anfragende der einzige angemeldete Client ist)?&lt;br /&gt;
:Vorschlag: Der Server sendet in einem solchen Fall &amp;quot;416 ERROR no data&amp;quot;. Dies Meldung erfolgt nur dann, wenn keine INFO Session aktiv ist. Könnte damit auch entfallen, da der Timeout zuschlagen wird.&lt;br /&gt;
&lt;br /&gt;
;Warum muss der Client bei &amp;quot;SET 0 GM&amp;quot;-Anfragen seine Antwort-ID mitsenden? Der Server könnte diese ID in die INFO-Nachricht eintragen, denn er kennt sie ja.&lt;br /&gt;
:Der Server hat überhaupt keine Ahnung davon, welche beliebigen zwei Sessions zusammengehören.&lt;br /&gt;
&lt;br /&gt;
;Die Session-IDs übernehmen eine zentrale Rolle beim Gebrauch von GMs. In der aktuellen SRCP-Spezifikation fehlt eine Beschränkung der Session-ID auf einen definierten Wertebereich.&lt;br /&gt;
:Der im normalen Betrieb notwendige Wertebereich ist sehr gering; ein generischer (von der Hardwareplatform abhängiger) vorzeichenloser Ganzzahlwert sollte für alle Anwendungsfälle ausreichen.&lt;br /&gt;
&lt;br /&gt;
==== Vorschläge zur Minimierung des Netzwerkdatenverkehrs====&lt;br /&gt;
Die Diskussion zeigte, dass größeres Unverständnis darüber herrschte, welches zusätzliche  Datenaufkommen über den Nachrichtenaustausch der SRCP-Clients untereinander entstehen würde. Es bestand teilweise die Befürchtung, dass nicht an dieser Kommunikation interessierte SRCP-Clients unnötig und überfordernd belastet würden. Hier wurde insbesondere deutlich, dass das jetzt schon über den INFO-Kanal eingehende Nachrichtenvolumen SRCP-Anfängern unter Umständen nicht bewust ist und leicht unterschätzt wird.&lt;br /&gt;
&lt;br /&gt;
Bei sachgemäßem Umgang mit dem neuen Nachrichtenkanal ergibt sich gegenüber dem bisherigen INFO-Kanalvolumen jedoch nur ein geringes Mehr an Daten. Insbesondere die Möglichkeit zur direkten Kommunikation zweier Teilnehmer wirkt im Bedarfsfall stark volumenbeschränkend. Ein inflationärer Gebrauch von Rundrufnachrichten sollte naturgemäß vermieden werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Wenn an einen SRCP-Server eine CRCF-Broadcastanfrage gestellt wird, muss er dann eine INFO-Nachricht generieren? Es kann ja sein, dass er selber auf die Anfrage antworten kann. Gerade bei dynamischen Daten kann der Server möglicherweise am besten Auskunft geben.&amp;lt;/del&amp;gt;&lt;br /&gt;
Anmerkung: Es gibt bereits genügend SRCP-Kommandos, um Informationen direkt beim Server zu erfragen. Dieser Punkt ist daher irrelevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;CRCF-Broadcastanfragen werden vom Server per INFO-Meldung an alle angemeldeten Clients weitergeleitet. An den Anfrager selber sollte die INFO-Meldung jedoch nicht weitergeleitet werden.&amp;lt;/del&amp;gt;&lt;br /&gt;
Anmerkung: Durch das generelle Weiterleiten der INFO-Meldung weiß der Client, das (und wann) seine Botschaft rausgegangen ist. Deshalb wird auch dieser Punkt gestrichen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Ein Client sollte selber darüber entscheiden, ob er CRCF-Broadcasts empfängt. Per Voreinstellung ist diese Option nicht aktiv. Wie das Ein- oder Ausschalten funktioniert, wäre zu diskutieren.&lt;br /&gt;
&lt;br /&gt;
== Glossar ==&lt;br /&gt;
&lt;br /&gt;
;'''CRCF-Broadcast'''&lt;br /&gt;
::Eine von einem SRCP-Client in Form von &amp;quot;SET 0 GM &amp;lt;AntwortID&amp;gt; 0 CRCF CONFGET &amp;lt;messagetext&amp;gt;&amp;quot; initiierte Rundrufnachricht, die der SRCP-Server über den INFO-Kanal an alle angeschlossenen SRCP-Clients weiterleitet.&lt;br /&gt;
&lt;br /&gt;
;'''CRCF-Client'''&lt;br /&gt;
::Ein Client mit lokalen CRCF-Daten bzw. lokaler CRCF-Datenbank.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:SRCP]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=12150</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=12150"/>
				<updated>2007-07-02T18:47:45Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: /* Anmerkungen */ Server weiß nichts von zusammengehörenden Sessions.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Stammtisch==&lt;br /&gt;
Um die aktuellen Vorhaben besser diskutieren zu können, schlage ich ein Treffen in Form eines Stammtisches vor. Vielleicht kann man sich hier zunächst über einen Ort des Treffens verständigen, der von den meisten gut erreichbar ist.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;50%&amp;quot;&lt;br /&gt;
|+ &lt;br /&gt;
!  SRCP-Interessierter&lt;br /&gt;
!  Wohnort&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Sven Schlender&lt;br /&gt;
|  Karlsruhe&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Stefan Bormann&lt;br /&gt;
|  Bremen&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  Guido Scholz&lt;br /&gt;
|  Burgkirchen&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  ...&lt;br /&gt;
|  ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Obgleich es für das SRCP-Protokoll mittlerweile eine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer (4303) und Protokollbezeichner (srcp) gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert für die Portnummer zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;4303&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl [[CRCF_-_Common_Railroad_Configuration_Files_0.2.0|CRCF]] (Common Railroad Configuration Files) schon vor einigen Jahren zur Implementierung vorgeschlagen wurde, fand es keine Verbreitung bzw. Anwendung. Möglicherweise war damals das Interesse zu gering. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass der Bedarf für CRCF weiterhin vorhanden ist. Über die bisherigen Ideen von CRCF hinaus gab es einige weitergehende Themen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll eine Datenabfrage aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von CRCF verwaltet werden?&lt;br /&gt;
* Soll die Kommunikation zwischen SRCP-Clients mit CRCF abgebildet werden?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Datenablage gemäß CRCF Spezifikation 0.2.0====&lt;br /&gt;
* Spezifikationsentwurf basiert auf SRCP.&lt;br /&gt;
* Physikalisch liegen die CRCF-Daten beim SRCP-Server.&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP über den Befehl CONFGET.&lt;br /&gt;
* Derzeitiger Vorschlag ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.x-Welt, wie z.B. Busse.&lt;br /&gt;
* Beschreibt CRCF als textbasierte Dateien.&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP, d.h. die einzelnen Datenfelder kommen aus der SRCP-Welt.&lt;br /&gt;
* Es werden ausschliesslich statische Daten verwaltet.&lt;br /&gt;
* Enthält Daten über die Eigenschaften eines Servers.&lt;br /&gt;
* Pro SRCP-Server ist eine CRCF-Datei vorgesehen.&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
Über die Diskussion ergab sich der Vorschlag, den CRCF-Datenbestand über einen speziellen SRCP-Client netzwerkweit zugänglich zu machen, statt wie bisher nur als reine Datei abgelegt zu sein. Dieser SRCP-Client hätte damit eine Art Datenbankserverfunktion.&lt;br /&gt;
&lt;br /&gt;
* Die CRCF-Daten liegen bei einem SRCP-Client.&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet.&lt;br /&gt;
* SRCP wird als Tunnel genutzt, da CRCF-Anfragen nur weitergeleitet werden.&lt;br /&gt;
* Der Auskunftsbefehl ist als SRCP-Kommando auszuführen.&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht.&lt;br /&gt;
* Der Client muss sich bei allen verfügbaren SRCP-Servern anmelden, damit Daten anlagenweit verteilt werden können.&lt;br /&gt;
* Der SRCP-Client mit dem CRCF-Datenbestand kann konsistent statische und dynamische Daten verwalten.&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen.&lt;br /&gt;
* Die Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts wird ermöglicht.&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* Das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an den CRCF-Server senden, um dessen Datenbestand zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
Diese Idee wurde als eine prinzipielle Möglichkeit erwähnt, aber nicht weiter ausgeführt.&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Freimeldeabschnitt (BLOCK)&lt;br /&gt;
:: Streckenabschnitt, der mit einer Gleisfreimeldeanlage (Rückmeldung/Belegtmeldung) überwacht wird.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (SLIST, Switch List)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung; ist nicht mit &amp;amp;raquo;Fahrstraße&amp;amp;laquo; zu verwechseln.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang der SRCP-Spezifikation definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt. Dazu gab es folgenden Lösungsvorschlag:&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation, bei der die Busse der Slave-Server auf Busse beim Master-Server abgebildet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden gemäß der SRCP-Spezifikation an alle im INFO-Modus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ (SRCP-Rundruf) mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein erster (anarchischer) Ansatz könte in SRCP 0.8-Terminologie so aussehen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 ECHO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 ECHO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein zweiter, mehr geordneter Ansatz, schreibt die Verwendung definierter Befehle (SRCP-Makros) vor, analog also beispielsweise so:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 MACRO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 MACRO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wobei &amp;lt;message&amp;gt; diesmal eine Folge von definierten (genormten) Befehlen inklusive deren Wert-Parametern sein muß. Diese Makros müssen natürlich den Kommunikationsbedarf der Clients (Frage/Antwort-Spiele) abdecken.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der dritte Ansatz wäre, statt der neu zu erfindenden Makros, CRCF zu benutzen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 CRCF &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt von &amp;lt;message&amp;gt; wäre dann eine CRCF-Befehlsfolge.&lt;br /&gt;
&lt;br /&gt;
Angenommen eine Ablaufsteuerung (als eigener SRCP-Client) möchte eine Fahrstraße einstellen, dann sendet er an das zuständige Stellwerk folgende (CRCF-)Befehlsfolge:&lt;br /&gt;
  &lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; SET STATE 1&lt;br /&gt;
&lt;br /&gt;
Den Erfolg bekommt er dann vom Stellwerk zurückgemeldet oder kann ihn auch abfragen z.B. gemäß:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; GET STATE&lt;br /&gt;
&lt;br /&gt;
Den Bedarf, dass ein SRCP-Client einem Stellwerk Daten zur Konfiguration von Fahrstraßen sendet, wäre prinzipiell auch möglich:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; ADD GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt; &amp;lt;port&amp;gt; &amp;lt;state&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder entfernen:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; REMOVE GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um eine Client-Client-Verbindung zu unterhalten, müßte der Sender eines CRCF-Befehls seine&lt;br /&gt;
SRCP-Session-ID immer mitsenden, dann könnte die Antwort zielgerichtet erfolgen:&lt;br /&gt;
&lt;br /&gt;
 CRCF 0 &amp;lt;sender-sessionid&amp;gt; &amp;lt;empfänger-sessionid&amp;gt; &amp;lt;CRCF-message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Inhalt von &amp;lt;sessionid&amp;gt; ließe sich ein CRCF-Broadcast einfach von einer Punkt-zu-Punkt-Verbindung unterscheiden:&lt;br /&gt;
&lt;br /&gt;
# Der Wert ist 0: Broadcast&lt;br /&gt;
# Der Wert ist &amp;gt;0: Punkt-zu-Punkt-Verbindung&lt;br /&gt;
&lt;br /&gt;
Auch das Thema &amp;amp;raquo;Zugbeeinflussung&amp;amp;laquo; läßt sich hiermit darstellen. Ein Zug muß während seiner Fahrt Geschwindigkeitsregeln einhalten, die das Stellwerk überwacht. Bei Überschreitungen sendet das Stellwerk einen Abbremsbefehl:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;sender-session-id&amp;gt; 0 TRAIN &amp;lt;train-id&amp;gt; SPEED SET 0&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Die Implementierung wird nicht weiterverfolgt, da der Vorschlag zur neuen Gerätegruppe besser ins bisherige SRCP paßt. Die hier andiskutierten CRCF-Nachrichten können mit dem anderen Vorschlag ebenfalls transportiert werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
&lt;br /&gt;
Die Implementationen von CRCF bzw. Generic Messages und den bisher definierten SRCP-Sitzungen werden komplett getrennt.&lt;br /&gt;
&lt;br /&gt;
Motivation:&lt;br /&gt;
* Ermöglicht Kapselung von unterschiedlichen Client-Funktionalitäten: die bestehenden Sitzungen und Generic Messages sind für komplett unterschiedliche Zwecke gedacht. Die bisherigen Steuerungs-Sitzungen dienen der Kommunikation mit der Modellbahn-Hardware, Generic Messages dienen der Kommunikation der Clients untereinander.&lt;br /&gt;
* Dies senkt die Anforderungen an einen reinen Steuerungs-Server, er muss Generic Messages nicht unterstützen. ''Anmerkung von svesch: Der Server muss die GMs nur weiterleiten. CRCF macht nur Sinn, wenn es die SRCP-Server auch wirklich unterstützen. Sozusagen mandatory ab Version X.''&lt;br /&gt;
* Es erspart mobilen Eingabegeräten z.B. einem Handregler den extremen Traffic, den intelligentere stationäre Clients untereinander haben. ''Anmerkung von svesch: Das ist ein wichtiger Punkt, den habe ich im Punkt &amp;quot;Vorschläge zur Trafficminimierung&amp;quot; versucht Rechnung zu tragen.''&lt;br /&gt;
&lt;br /&gt;
Bei der Einschätzung des Programmieraufwands gehen die Meinungen auseinander. Die einen sehen Zusatzaufwand in der dritten TCP-Verbindung, andererseits erhöht die Kapselung der Funktionalitäten die Wartbarkeit des Systems.&lt;br /&gt;
&lt;br /&gt;
Eigene Sitzungen trennen sowohl den Namensraum für Steuerung und Generic Messages als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL GM 0.3&lt;br /&gt;
 SET CONNECTIONMODE GM INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur GM-Sitzungen, aber keine Steuerungs-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
Die Diskussion dauert noch an, daher ist keine abschliessende Bewertung möglich&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
&lt;br /&gt;
Für den generalisierten Nachrichtenaustausch wird eine neue Gerätegruppe (device group) &amp;amp;raquo;Generic Message&amp;amp;laquo; (GM) auf Bus 0 eingerichtet. Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
&lt;br /&gt;
Beispielhafte Anwendung im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist diejenige SessionID, die die Nachricht&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Nachricht als Rundruf an&lt;br /&gt;
alle INFO-Sessions gesendet. Die AntwortID ist diejenige SessionID (oder&lt;br /&gt;
0) der INFO-Session, an die eine eventuelle Antwortnachricht gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Beispielhafte Anwendung im INFO-Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen/Formatanforderungen,&lt;br /&gt;
dass die Zeilenlänge auf 1000 Zeichen begrenzt ist und der Zeichensatz aus 7&amp;amp;nbsp;Bit ASCII besteht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein entweder zentral (Wo und von wem?) oder dezentral (anwendungsspezifisch) definierter Identifier, der als eindeutige Kennung für die Interpretation von &amp;lt;messagetext&amp;gt; dient.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. Antwort an Session-ID 45 erbeten (Schritt A).&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie die INFO-Nachricht aussieht, dürfte offensichtlich sein. Er geht an alle INFO-Sessions (Schritt B).&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF-Service diese Nachricht erhalten hat, sendet er eine passende Antwort an den SRCP-Server (Schritt C):&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Info-Session des CRCF-Services ist im Beispiel 25; die Antwort wird vom&lt;br /&gt;
SRCP-Server direkt an die SESSION 45 weitergeleitet (Schritt D):&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß über die Schritte A, B, C und D ist in der unten angefügten Grafik dargestellt. CA ist die COMMAND-Session von Client A, IA dessen INFO-Session. Für Client B (CRCF-Server) gilt die Benennung analog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Anfragen kann der Client direkt an Session 25 stellen. Er erhält&lt;br /&gt;
die INFO-Nachricht sofort. Wenn Session 25 terminieren sollte, kann er wieder&lt;br /&gt;
auf Empfänger 0 (= alle) umstellen.&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
Es entsteht eine allgemein nutzbare Kommunikationsstrecke mit vielfältigem Anwendungspotential. Es entsteht ein permanenter Pflegedienst für Vergabe der Nachrichtentypen (kann automatisiert werden).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Anmerkungen====&lt;br /&gt;
Zu den Konsequenzen der Implementierung gab es einige spezielle Fragestellungen.&lt;br /&gt;
&lt;br /&gt;
;Müssen wir uns über Timeouts Gedanken machen?&lt;br /&gt;
: Das ist Sache der Clients und sollte natürlich benutzerfreundlich gestaltet sein.&lt;br /&gt;
&lt;br /&gt;
;Wie lange soll ein anfragender Client auf Antworten warten?&lt;br /&gt;
:Da der Client für das Timeoutverhalten verantwortlich ist, entscheidet auch er darüber. Wiederum gilt, so benutzerfreundlich, wie möglich.&lt;br /&gt;
&lt;br /&gt;
;Generiert der Server gegebenenfalls eine Timeout-Nachricht?&lt;br /&gt;
:Nein, denn er hat keine Ahnung vom Inhalt der ausgetauschten Nachrichten. Er transportiert nur eine Botschaft; dass zwei (oder auch mehr) Teilnehmer zu einem Dialog gehören, ist dem Server unbekannt.&lt;br /&gt;
&lt;br /&gt;
;Wenn der Server schon beim Empfang einer &amp;quot;SET 0 GM&amp;quot;-Anfrage sieht, dass er damit keinen Empfänger erreichen kann, sollte er eine entsprechende Meldung an den Anfrager generieren (beispielsweise wenn der Anfragende der einzige angemeldete Client ist)?&lt;br /&gt;
:Vorschlag: Der Server sendet in einem solchen Fall &amp;quot;416 ERROR no data&amp;quot;. Dies Meldung erfolgt nur dann, wenn keine INFO Session aktiv ist. Könnte damit auch entfallen, da der Timeout zuschlagen wird.&lt;br /&gt;
&lt;br /&gt;
;Warum muss der Client bei &amp;quot;SET 0 GM&amp;quot;-Anfragen seine Antwort-ID mitsenden? Der Server könnte diese ID in die INFO-Nachricht eintragen, denn er kennt sie ja.&lt;br /&gt;
:Der Server hat überhaupt keine Ahnung davon, welche beliebigen zwei Sessions zusammengehören.&lt;br /&gt;
&lt;br /&gt;
;Die Session-IDs übernehmen eine zentrale Rolle beim Gebrauch von GMs. In der aktuellen SRCP-Spezifikation fehlt eine Beschränkung der Session-ID auf einen definierten Wertebereich.&lt;br /&gt;
:Der im normalen Betrieb notwendige Wertebereich ist sehr gering; ein generischer (von der Hardwareplatform abhängiger) vorzeichenloser Ganzzahlwert sollte für alle Anwendungsfälle ausreichen.&lt;br /&gt;
&lt;br /&gt;
==== Vorschläge zur Minimierung des Netzwerkdatenverkehrs====&lt;br /&gt;
Die Diskussion zeigte, dass größeres Unverständnis darüber herrschte, welches zusätzliche  Datenaufkommen über den Nachrichtenaustausch der SRCP-Clients untereinander entstehen würde. Es bestand teilweise die Befürchtung, dass nicht an dieser Kommunikation interessierte SRCP-Clients unnötig und überfordernd belastet würden. Hier wurde insbesondere deutlich, dass das jetzt schon über den INFO-Kanal eingehende Nachrichtenvolumen SRCP-Anfängern unter Umständen nicht bewust ist und leicht unterschätzt wird.&lt;br /&gt;
&lt;br /&gt;
Bei sachgemäßem Umgang mit dem neuen Nachrichtenkanal ergibt sich gegenüber dem bisherigen INFO-Kanalvolumen jedoch nur ein geringes Mehr an Daten. Insbesondere die Möglichkeit zur direkten Kommunikation zweier Teilnehmer wirkt im Bedarfsfall stark volumenbeschränkend. Ein inflationärer Gebrauch von Rundrufnachrichten sollte naturgemäß vermieden werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;Wenn an einen SRCP-Server eine CRCF-Broadcastanfrage gestellt wird, muss er dann eine INFO-Nachricht generieren? Es kann ja sein, dass er selber auf die Anfrage antworten kann. Gerade bei dynamischen Daten kann der Server möglicherweise am besten Auskunft geben.&amp;lt;/del&amp;gt;&lt;br /&gt;
Anmerkung: Es gibt bereits genügend SRCP-Kommandos, um Informationen direkt beim Server zu erfragen. Dieser Punkt ist daher irrelevant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;del&amp;gt;CRCF-Broadcastanfragen werden vom Server per INFO-Meldung an alle angemeldeten Clients weitergeleitet. An den Anfrager selber sollte die INFO-Meldung jedoch nicht weitergeleitet werden.&amp;lt;/del&amp;gt;&lt;br /&gt;
Anmerkung: Durch das generelle Weiterleiten der INFO-Meldung weiß der Client, das (und wann) seine Botschaft rausgegangen ist. Deshalb wird auch dieser Punkt gestrichen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Ein Client sollte selber darüber entscheiden, ob er CRCF-Broadcasts empfängt. Per Voreinstellung ist diese Option nicht aktiv. Wie das Ein- oder Ausschalten funktioniert, wäre zu diskutieren.&lt;br /&gt;
&lt;br /&gt;
== Glossar ==&lt;br /&gt;
&lt;br /&gt;
;'''CRCF-Broadcast'''&lt;br /&gt;
::Eine von einem SRCP-Client in Form von &amp;quot;SET 0 GM &amp;lt;AntwortID&amp;gt; 0 CRCF CONFGET &amp;lt;messagetext&amp;gt;&amp;quot; initiierte Rundrufnachricht, die der SRCP-Server über den INFO-Kanal an alle angeschlossenen SRCP-Clients weiterleitet.&lt;br /&gt;
&lt;br /&gt;
;'''CRCF-Client'''&lt;br /&gt;
::Ein Client mit lokalen CRCF-Daten bzw. lokaler CRCF-Datenbank.&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11901</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11901"/>
				<updated>2007-02-02T20:18:36Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: GM Messagetexte können Whitespace enthalten und ein paar Fragen /* Neue Gerätegruppe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Obgleich es für das SRCP-Protokoll mittlerweile eine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer (4303) und Protokollbezeichner (srcp) gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert für die Portnummer zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Datenablage gemäß CRCF Spezifikation 0.2.0====&lt;br /&gt;
* basiert auf SRCP&lt;br /&gt;
* physikalisch liegen die CRCF-Daten beim SRCP-Server&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP (Befehl CONFGET)&lt;br /&gt;
* ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.X-Welt, wie z.B. Busse&lt;br /&gt;
* unterstützt die CRCF als textbasierte Dateien&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP -&amp;gt; d.h. Die einzelnen Datenfelder kommen aus der SRCP-Welt&lt;br /&gt;
* hält ausschliesslich statische Daten bereit&lt;br /&gt;
* enthält auch Daten über die Eigenschaften eines Servers&lt;br /&gt;
* pro SRCP-Server eine CRCF&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
* die CRCF-Daten liegen bei einem SRCP-Client&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet&lt;br /&gt;
* nutzt SRCP als Tunnel, da CRCF-Anfragen nur weitergeleitet werden&lt;br /&gt;
* Auskunftsbefehl ist jedoch als SRCP-Kommando auszuführen&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht   &lt;br /&gt;
* der Client muss sich bei allen verfügbaren SRCP-Server anmelden, damit Daten anlagenweit verteilt werden können&lt;br /&gt;
* Der Client kann dann konsistent statische und dynamische Daten verwalten&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an die CRCF senden, um deren Inhalt zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (?)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung &lt;br /&gt;
:: Anmerkung von svesch: Das ist meiner Meinung nach kein neues Objekt, das ist nur eine Liste von GAs.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation (FIXME: falsch einsortiert)&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt.&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Bewertung des Vorschlags====&lt;br /&gt;
&lt;br /&gt;
Die Implementierung wird nicht weiterverfolgt, da der Vorschlag zur neuen Gerätegruppe besser ins bisherige SRCP paßt. Die hier andiskutierten CRCF-Nachrichten können mit dem anderen Vorschlag ebenfalls transportiert werden.&lt;br /&gt;
&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden an alle im Infomodus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
Ein erster (anarchischer) Ansatz könte in SRCP 0.8-Terminologie so aussehen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 ECHO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 ECHO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einzweiter, mehr geordneter Ansatz, schreibt die Verwendung definierter Befehle (SRCP-Makros) vor, analog also beispielsweise so:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 MACRO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 MACRO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wobei &amp;lt;message&amp;gt; diesmal eine Folge von definierten (genormten) Befehlen inklusive deren Wert-Parametern sein muß. Diese Makros müssen natürlich den Kommunikationsbedarf der Clients (Frage/Antwort-Spiele) abdecken.&lt;br /&gt;
&lt;br /&gt;
Der dritte Ansatz wäre, statt der neu zu erfindenden Makros, CRCF zu benutzen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 CRCF &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt von &amp;lt;message&amp;gt; wäre dann eine CRCF-Befehlsfolge.&lt;br /&gt;
&lt;br /&gt;
Angenommen eine Ablaufsteuerung (als eigener SRCP-Client) möchte eine Fahrstraße einstellen, dann sendet er an das zuständige Stellwerk folgende (CRCF-)Befehlsfolge:&lt;br /&gt;
  &lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; SET STATE 1&lt;br /&gt;
&lt;br /&gt;
Den Erfolg bekommt er dann vom Stellwerk zurückgemeldet oder kann ihn auch abfragen z.B. gemäß:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; GET STATE&lt;br /&gt;
&lt;br /&gt;
Den Bedarf, dass ein SRCP-Client einem Stellwerk Daten zur Konfiguration von Fahrstraßen sendet,  wäre prinzipiell auch möglich:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; ADD GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt; &amp;lt;port&amp;gt; &amp;lt;state&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder entfernen:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; REMOVE GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um eine Client-Client-Verbindung zu unterhalten, müßte der Sender eines CRCF-Befehls seine&lt;br /&gt;
SRCP-Session-ID immer mitsenden, dann könnte die Antwort zielgerichtet erfolgen:&lt;br /&gt;
&lt;br /&gt;
 CRCF 0 &amp;lt;sender-sessionid&amp;gt; &amp;lt;empfänger-sessionid&amp;gt; &amp;lt;CRCF-message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Inhalt von &amp;lt;sessionid&amp;gt; ließe sich ein CRCF-Broadcast einfach von einer Punkt-zu-Punkt-Verbindung unterscheiden:&lt;br /&gt;
&lt;br /&gt;
# Der Wert ist 0: Broadcast&lt;br /&gt;
# Der Wert ist &amp;gt;0: Punkt-zu-Punkt-Verbindung&lt;br /&gt;
&lt;br /&gt;
Auch das Thema &amp;quot;Zugbeeinflussung&amp;quot; läßt sich hiermit darstellen. Ein Zug muß während seiner Fahrt Geschwindigkeitsregeln einhalten, die das Stellwerk überwacht. Bei Überschreitungen sendet das Stellwerk einen Abbremsbefehl:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;sender-session-id&amp;gt; 0 TRAIN &amp;lt;train-id&amp;gt; SPEED SET 0&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Die Diskussion dauert noch an, daher ist keine abschliessende Bewertung möglich&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Die Implementationen von CRCF bzw. Generic Messages und den bisher definierten SRCP-Sitzungen werden komplett getrennt.&lt;br /&gt;
&lt;br /&gt;
Motivation:&lt;br /&gt;
* Ermöglicht Kapselung von unterschiedlichen Client-Funktionalitäten: die bestehenden Sitzungen und Generic Messages sind für komplett unterschiedliche Zwecke gedacht. Die bisherigen Steuerungs-Sitzungen dienen der Kommunikation mit der Modellbahn-Hardware, Generic Messages dienen der Kommunikation der Clients untereinander.&lt;br /&gt;
* Dies senkt die Anforderungen an einen reinen Steuerungs-Server, er muss Generic Messages nicht unterstützen.&lt;br /&gt;
* Es erspart mobilen Eingabegeräten z.B. einem Handregler den extremen Traffic, den intelligentere stationäre Clients untereinander haben.&lt;br /&gt;
&lt;br /&gt;
Bei der Einschätzung des Programmieraufwands gehen die Meinungen auseinander. Die einen sehen Zusatzaufwand in der dritten TCP-Verbindung, andererseits erhöht die Kapselung der Funktionalitäten die Wartbarkeit des Systems.&lt;br /&gt;
&lt;br /&gt;
Eigene Sitzungen trennen sowohl den Namensraum für Steuerung und Generic Messages als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL GM 0.3&lt;br /&gt;
 SET CONNECTIONMODE GM INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur GM-Sitzungen, aber keine Steuerungs-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Allgemein nutzbare Kommunikationsstrecke. SRCP muß um einige&lt;br /&gt;
Details erweitert werden (siehe unten). Es entsteht ein permanenter&lt;br /&gt;
Pflegedienst für Vergabe der Messagetypen (kann automatisiert werden)&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Für den generalisierten Messageaustausch wird eine neue Devicegruppe &lt;br /&gt;
auf Bus 0 eingerichtet:&lt;br /&gt;
&lt;br /&gt;
GM Generic Message&lt;br /&gt;
&lt;br /&gt;
Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
&lt;br /&gt;
Im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist SessionID, die die Message&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Message als Broadcast an&lt;br /&gt;
alle INFO Sessions gesendet. Die AntwortID ist die SessionID (oder&lt;br /&gt;
0) der INFO Session, an die eine evt. Antwortmessage gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Im INFO Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gilt die im SRCP übliche Einschränkungen/Formatanforderungen&lt;br /&gt;
dass die Zeilenlänge auf 1000 Zeichen begrenzt ist und der Zeichensatz aus 7bit &lt;br /&gt;
ASCII besteht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein zentral (WO??) gepflegte (VON WEM?) Liste von Identifiern &lt;br /&gt;
um den Messagetyp erkennen zu können.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. (Schritt A) Antwort an SessionID 45 erbeten.&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie der INFO aussieht, dürfte offensichtlich sein. Er geht an alle INFO Sessions.&lt;br /&gt;
(Schritt B)&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF Service diese Message erhalten hat, sendet er eine&lt;br /&gt;
passende Antwort an den SRCP Server (Schritt C)&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Infosession des CRCF Services ist im Beispiel 25, die Antwort wird vom&lt;br /&gt;
SRCP Server direkt an die SESSION 45 weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß ist im Bild dargestellt. CA ist die Command Session von&lt;br /&gt;
Client A, IA die Infosession. Client B (CRCF Server analog).&lt;br /&gt;
&lt;br /&gt;
Weitere Anfragen kann der Client direkt an Session 25 stellen. Er erhält&lt;br /&gt;
die Info sofort, wenn Session 25 terminieren sollte. Dann kann er wieder&lt;br /&gt;
auf Empfänger 0 (= alle) umstellen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11900</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11900"/>
				<updated>2007-02-02T20:13:26Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Portnummer und Protokollname sind offiziell vergeben /* SRCP-Server-Suchdienst */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Obgleich es für das SRCP-Protokoll mittlerweile eine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer (4303) und Protokollbezeichner (srcp) gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert für die Portnummer zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Datenablage gemäß CRCF Spezifikation 0.2.0====&lt;br /&gt;
* basiert auf SRCP&lt;br /&gt;
* physikalisch liegen die CRCF-Daten beim SRCP-Server&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP (Befehl CONFGET)&lt;br /&gt;
* ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.X-Welt, wie z.B. Busse&lt;br /&gt;
* unterstützt die CRCF als textbasierte Dateien&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP -&amp;gt; d.h. Die einzelnen Datenfelder kommen aus der SRCP-Welt&lt;br /&gt;
* hält ausschliesslich statische Daten bereit&lt;br /&gt;
* enthält auch Daten über die Eigenschaften eines Servers&lt;br /&gt;
* pro SRCP-Server eine CRCF&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
* die CRCF-Daten liegen bei einem SRCP-Client&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet&lt;br /&gt;
* nutzt SRCP als Tunnel, da CRCF-Anfragen nur weitergeleitet werden&lt;br /&gt;
* Auskunftsbefehl ist jedoch als SRCP-Kommando auszuführen&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht   &lt;br /&gt;
* der Client muss sich bei allen verfügbaren SRCP-Server anmelden, damit Daten anlagenweit verteilt werden können&lt;br /&gt;
* Der Client kann dann konsistent statische und dynamische Daten verwalten&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an die CRCF senden, um deren Inhalt zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (?)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung &lt;br /&gt;
:: Anmerkung von svesch: Das ist meiner Meinung nach kein neues Objekt, das ist nur eine Liste von GAs.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation (FIXME: falsch einsortiert)&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt.&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Bewertung des Vorschlags====&lt;br /&gt;
&lt;br /&gt;
Die Implementierung wird nicht weiterverfolgt, da der Vorschlag zur neuen Gerätegruppe besser ins bisherige SRCP paßt. Die hier andiskutierten CRCF-Nachrichten können mit dem anderen Vorschlag ebenfalls transportiert werden.&lt;br /&gt;
&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden an alle im Infomodus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
Ein erster (anarchischer) Ansatz könte in SRCP 0.8-Terminologie so aussehen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 ECHO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 ECHO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einzweiter, mehr geordneter Ansatz, schreibt die Verwendung definierter Befehle (SRCP-Makros) vor, analog also beispielsweise so:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 MACRO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 MACRO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wobei &amp;lt;message&amp;gt; diesmal eine Folge von definierten (genormten) Befehlen inklusive deren Wert-Parametern sein muß. Diese Makros müssen natürlich den Kommunikationsbedarf der Clients (Frage/Antwort-Spiele) abdecken.&lt;br /&gt;
&lt;br /&gt;
Der dritte Ansatz wäre, statt der neu zu erfindenden Makros, CRCF zu benutzen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 CRCF &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt von &amp;lt;message&amp;gt; wäre dann eine CRCF-Befehlsfolge.&lt;br /&gt;
&lt;br /&gt;
Angenommen eine Ablaufsteuerung (als eigener SRCP-Client) möchte eine Fahrstraße einstellen, dann sendet er an das zuständige Stellwerk folgende (CRCF-)Befehlsfolge:&lt;br /&gt;
  &lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; SET STATE 1&lt;br /&gt;
&lt;br /&gt;
Den Erfolg bekommt er dann vom Stellwerk zurückgemeldet oder kann ihn auch abfragen z.B. gemäß:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; GET STATE&lt;br /&gt;
&lt;br /&gt;
Den Bedarf, dass ein SRCP-Client einem Stellwerk Daten zur Konfiguration von Fahrstraßen sendet,  wäre prinzipiell auch möglich:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; ADD GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt; &amp;lt;port&amp;gt; &amp;lt;state&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder entfernen:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; REMOVE GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um eine Client-Client-Verbindung zu unterhalten, müßte der Sender eines CRCF-Befehls seine&lt;br /&gt;
SRCP-Session-ID immer mitsenden, dann könnte die Antwort zielgerichtet erfolgen:&lt;br /&gt;
&lt;br /&gt;
 CRCF 0 &amp;lt;sender-sessionid&amp;gt; &amp;lt;empfänger-sessionid&amp;gt; &amp;lt;CRCF-message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Inhalt von &amp;lt;sessionid&amp;gt; ließe sich ein CRCF-Broadcast einfach von einer Punkt-zu-Punkt-Verbindung unterscheiden:&lt;br /&gt;
&lt;br /&gt;
# Der Wert ist 0: Broadcast&lt;br /&gt;
# Der Wert ist &amp;gt;0: Punkt-zu-Punkt-Verbindung&lt;br /&gt;
&lt;br /&gt;
Auch das Thema &amp;quot;Zugbeeinflussung&amp;quot; läßt sich hiermit darstellen. Ein Zug muß während seiner Fahrt Geschwindigkeitsregeln einhalten, die das Stellwerk überwacht. Bei Überschreitungen sendet das Stellwerk einen Abbremsbefehl:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;sender-session-id&amp;gt; 0 TRAIN &amp;lt;train-id&amp;gt; SPEED SET 0&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Die Diskussion dauert noch an, daher ist keine abschliessende Bewertung möglich&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Die Implementationen von CRCF bzw. Generic Messages und den bisher definierten SRCP-Sitzungen werden komplett getrennt.&lt;br /&gt;
&lt;br /&gt;
Motivation:&lt;br /&gt;
* Ermöglicht Kapselung von unterschiedlichen Client-Funktionalitäten: die bestehenden Sitzungen und Generic Messages sind für komplett unterschiedliche Zwecke gedacht. Die bisherigen Steuerungs-Sitzungen dienen der Kommunikation mit der Modellbahn-Hardware, Generic Messages dienen der Kommunikation der Clients untereinander.&lt;br /&gt;
* Dies senkt die Anforderungen an einen reinen Steuerungs-Server, er muss Generic Messages nicht unterstützen.&lt;br /&gt;
* Es erspart mobilen Eingabegeräten z.B. einem Handregler den extremen Traffic, den intelligentere stationäre Clients untereinander haben.&lt;br /&gt;
&lt;br /&gt;
Bei der Einschätzung des Programmieraufwands gehen die Meinungen auseinander. Die einen sehen Zusatzaufwand in der dritten TCP-Verbindung, andererseits erhöht die Kapselung der Funktionalitäten die Wartbarkeit des Systems.&lt;br /&gt;
&lt;br /&gt;
Eigene Sitzungen trennen sowohl den Namensraum für Steuerung und Generic Messages als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL GM 0.3&lt;br /&gt;
 SET CONNECTIONMODE GM INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur GM-Sitzungen, aber keine Steuerungs-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Allgemein nutzbare Kommunikationsstrecke. SRCP muß um einige&lt;br /&gt;
Details erweitert werden (siehe unten). Es entsteht ein permanenter&lt;br /&gt;
Pflegedienst für Vergabe der Messagetypen (kann automatisiert werden)&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Für den generalisierten Messageaustausch wird eine neue Devicegruppe &lt;br /&gt;
auf Bus 0 eingerichtet:&lt;br /&gt;
&lt;br /&gt;
GM Generic Message&lt;br /&gt;
&lt;br /&gt;
Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
&lt;br /&gt;
Im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist SessionID, die die Message&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Message als Broadcast an&lt;br /&gt;
alle INFO Sessions gesendet. Die AntwortID ist die SessionID (oder&lt;br /&gt;
0) der INFO Session, an die eine evt. Antwortmessage gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Im INFO Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen:&lt;br /&gt;
*keine Leerzeichen (kann man durch Konvention z.B. durch URL Codierung umgehen).&lt;br /&gt;
*maximale Zeilenlänge 1000 Zeichen (inkl. der Befehle &amp;amp; CRLF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein zentral gepflegte Liste von Clientidentifiern um den Messagetyp erkennen zu können.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. (Schritt A) Antwort an SessionID 45 erbeten.&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie der INFO aussieht, dürfte offensichtlich sein. Er geht an alle INFO Sessions.&lt;br /&gt;
(Schritt B)&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF Service diese Message erhalten hat, sendet er eine&lt;br /&gt;
passende Antwort an den SRCP Server (Schritt C)&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Infosession des CRCF Services ist im Beispiel 25, die Antwort wird vom&lt;br /&gt;
SRCP Server direkt an die SESSION 45 weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß ist im Bild dargestellt. CA ist die Command Session von&lt;br /&gt;
Client A, IA die Infosession. Client B (CRCF Server analog).&lt;br /&gt;
&lt;br /&gt;
Weitere Anfragen kann der Client direkt an Session 25 stellen. Er erhält&lt;br /&gt;
die Info sofort, wenn Session 25 terminieren sollte. Dann kann er wieder&lt;br /&gt;
auf Empfänger 0 (= alle) umstellen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11896</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11896"/>
				<updated>2007-01-27T20:40:30Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Kleineres Finetuning /* Vorschlagstext */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Da es für das SRCP-Protokoll noch keine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Datenablage gemäß CRCF Spezifikation 0.2.0====&lt;br /&gt;
* basiert auf SRCP&lt;br /&gt;
* physikalisch liegen die CRCF-Daten beim SRCP-Server&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP (Befehl CONFGET)&lt;br /&gt;
* ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.X-Welt, wie z.B. Busse&lt;br /&gt;
* unterstützt die CRCF als textbasierte Dateien&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP -&amp;gt; d.h. Die einzelnen Datenfelder kommen aus der SRCP-Welt&lt;br /&gt;
* hält ausschliesslich statische Daten bereit&lt;br /&gt;
* enthält auch Daten über die Eigenschaften eines Servers&lt;br /&gt;
* pro SRCP-Server eine CRCF&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
* die CRCF-Daten liegen bei einem SRCP-Client&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet&lt;br /&gt;
* nutzt SRCP als Tunnel, da CRCF-Anfragen nur weitergeleitet werden&lt;br /&gt;
* Auskunftsbefehl ist jedoch als SRCP-Kommando auszuführen&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht   &lt;br /&gt;
* der Client muss sich bei allen verfügbaren SRCP-Server anmelden, damit Daten anlagenweit verteilt werden können&lt;br /&gt;
* Der Client kann dann konsistent statische und dynamische Daten verwalten&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an die CRCF senden, um deren Inhalt zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (?)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung &lt;br /&gt;
:: Anmerkung von svesch: Das ist meiner Meinung nach kein neues Objekt, das ist nur eine Liste von GAs.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation (FIXME: falsch einsortiert)&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt.&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Bewertung des Vorschlags====&lt;br /&gt;
&lt;br /&gt;
Die Implementierung wird nicht weiterverfolgt, da der Vorschlag zur neuen Gerätegruppe besser ins bisherige SRCP paßt. Die hier andiskutierten CRCF-Nachrichten können mit dem anderen Vorschlag ebenfalls transportiert werden.&lt;br /&gt;
&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden an alle im Infomodus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
Ein erster (anarchischer) Ansatz könte in SRCP 0.8-Terminologie so aussehen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 ECHO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 ECHO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einzweiter, mehr geordneter Ansatz, schreibt die Verwendung definierter Befehle (SRCP-Makros) vor, analog also beispielsweise so:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
 MACRO 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 MACRO &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wobei &amp;lt;message&amp;gt; diesmal eine Folge von definierten (genormten) Befehlen inklusive deren Wert-Parametern sein muß. Diese Makros müssen natürlich den Kommunikationsbedarf der Clients (Frage/Antwort-Spiele) abdecken.&lt;br /&gt;
&lt;br /&gt;
Der dritte Ansatz wäre, statt der neu zu erfindenden Makros, CRCF zu benutzen:&lt;br /&gt;
&lt;br /&gt;
Im Kommando-Modus verbundender Client:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darauf der SRCP-Server an alle verbundenen Clients:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;timestamp&amp;gt; &amp;lt;codenr&amp;gt; INFO 0 CRCF &amp;lt;message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Inhalt von &amp;lt;message&amp;gt; wäre dann eine CRCF-Befehlsfolge.&lt;br /&gt;
&lt;br /&gt;
Angenommen eine Ablaufsteuerung (als eigener SRCP-Client) möchte eine Fahrstraße einstellen, dann sendet er an das zuständige Stellwerk folgende (CRCF-)Befehlsfolge:&lt;br /&gt;
  &lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; SET STATE 1&lt;br /&gt;
&lt;br /&gt;
Den Erfolg bekommt er dann vom Stellwerk zurückgemeldet oder kann ihn auch abfragen z.B. gemäß:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; GET STATE&lt;br /&gt;
&lt;br /&gt;
Den Bedarf, dass ein SRCP-Client einem Stellwerk Daten zur Konfiguration von Fahrstraßen sendet,  wäre prinzipiell auch möglich:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; ADD GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt; &amp;lt;port&amp;gt; &amp;lt;state&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oder entfernen:&lt;br /&gt;
&lt;br /&gt;
 ROUTE &amp;lt;routeid&amp;gt; REMOVE GA &amp;lt;busid&amp;gt; &amp;lt;address&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um eine Client-Client-Verbindung zu unterhalten, müßte der Sender eines CRCF-Befehls seine&lt;br /&gt;
SRCP-Session-ID immer mitsenden, dann könnte die Antwort zielgerichtet erfolgen:&lt;br /&gt;
&lt;br /&gt;
 CRCF 0 &amp;lt;sender-sessionid&amp;gt; &amp;lt;empfänger-sessionid&amp;gt; &amp;lt;CRCF-message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit dem Inhalt von &amp;lt;sessionid&amp;gt; ließe sich ein CRCF-Broadcast einfach von einer Punkt-zu-Punkt-Verbindung unterscheiden:&lt;br /&gt;
&lt;br /&gt;
# Der Wert ist 0: Broadcast&lt;br /&gt;
# Der Wert ist &amp;gt;0: Punkt-zu-Punkt-Verbindung&lt;br /&gt;
&lt;br /&gt;
Auch das Thema &amp;quot;Zugbeeinflussung&amp;quot; läßt sich hiermit darstellen. Ein Zug muß während seiner Fahrt Geschwindigkeitsregeln einhalten, die das Stellwerk überwacht. Bei Überschreitungen sendet das Stellwerk einen Abbremsbefehl:&lt;br /&gt;
&lt;br /&gt;
  CRCF 0 &amp;lt;sender-session-id&amp;gt; 0 TRAIN &amp;lt;train-id&amp;gt; SPEED SET 0&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Die Implementationen von CRCF und SRCP werden komplett getrennt.&lt;br /&gt;
&lt;br /&gt;
Vorteile/Gründe:&lt;br /&gt;
* Ermöglicht Kapselung von unterschiedlichern Client-Funktionalitäten: SRCP und CRCF sind für komplett unterschiedliche Zwecke gedacht, SRCP dient der Kommunikation mit der Modellbahn-Hardware, CRCF dient der Kommunikation der Clients untereinander.&lt;br /&gt;
* Dies senkt die Anforderungen an einen reinen SRCP-Server&lt;br /&gt;
* Es erspart mobilen Eingabegeräten z.B. einem Handregler den extremen Traffic, den intelligentere stationäre Clients untereinander haben.&lt;br /&gt;
&lt;br /&gt;
Der Programmieraufwand zur Unterhaltung der zusätzlichen Netzwerkverbindungen sollte sich nicht unterscheiden, da fuer SRCP alleine auch schon mehr als eine TCP-Verbindung nötig ist.&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Die Implementationen von CRCF bzw. Generic Messages und den bisher definierten SRCP-Sitzungen werden komplett getrennt.&lt;br /&gt;
&lt;br /&gt;
Motivation:&lt;br /&gt;
* Ermöglicht Kapselung von unterschiedlichen Client-Funktionalitäten: die bestehenden Sitzungen und Generic Messages sind für komplett unterschiedliche Zwecke gedacht. Die bisherigen Steuerungs-Sitzungen dienen der Kommunikation mit der Modellbahn-Hardware, Generic Messages dienen der Kommunikation der Clients untereinander.&lt;br /&gt;
* Dies senkt die Anforderungen an einen reinen Steuerungs-Server, er muss Generic Messages nicht unterstützen.&lt;br /&gt;
* Es erspart mobilen Eingabegeräten z.B. einem Handregler den extremen Traffic, den intelligentere stationäre Clients untereinander haben.&lt;br /&gt;
&lt;br /&gt;
Bei der Einschätzung des Programmieraufwands gehen die Meinungen auseinander. Die einen sehen Zusatzaufwand in der dritten TCP-Verbindung, andererseits erhöht die Kapselung der Funktionalitäten die Wartbarkeit des Systems.&lt;br /&gt;
&lt;br /&gt;
Eigene Sitzungen trennen sowohl den Namensraum für Steuerung und Generic Messages als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL GM 0.3&lt;br /&gt;
 SET CONNECTIONMODE GM INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur GM-Sitzungen, aber keine Steuerungs-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Allgemein nutzbare Kommunikationsstrecke. SRCP muß um einige&lt;br /&gt;
Details erweitert werden (siehe unten). Es entsteht ein permanenter&lt;br /&gt;
Pflegedienst für Vergabe der Messagetypen (kann automatisiert werden)&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Für den generalisierten Messageaustausch wird eine neue Devicegruppe &lt;br /&gt;
auf Bus 0 eingerichtet:&lt;br /&gt;
&lt;br /&gt;
GM Generic Message&lt;br /&gt;
&lt;br /&gt;
Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
&lt;br /&gt;
Im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist SessionID, die die Message&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Message als Broadcast an&lt;br /&gt;
alle INFO Sessions gesendet. Die AntwortID ist die SessionID (oder&lt;br /&gt;
0) der INFO Session, an die eine evt. Antwortmessage gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Im INFO Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM &amp;lt;AntwortID&amp;gt; &amp;lt;EmpfängerID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen:&lt;br /&gt;
*keine Leerzeichen (kann man durch Konvention z.B. durch URL Codierung umgehen).&lt;br /&gt;
*maximale Zeilenlänge 1000 Zeichen (inkl. der Befehle &amp;amp; CRLF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein zentral gepflegte Liste von Clientidentifiern um den Messagetyp erkennen zu können.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. (Schritt A) Antwort an SessionID 45 erbeten.&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie der INFO aussieht, dürfte offensichtlich sein. Er geht an alle INFO Sessions.&lt;br /&gt;
(Schritt B)&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 0 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF Service diese Message erhalten hat, sendet er eine&lt;br /&gt;
passende Antwort an den SRCP Server (Schritt C)&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Infosession des CRCF Services ist im Beispiel 25, die Antwort wird vom&lt;br /&gt;
SRCP Server direkt an die SESSION 45 weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 25 45 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß ist im Bild dargestellt. CA ist die Command Session von&lt;br /&gt;
Client A, IA die Infosession. Client B (CRCF Server analog).&lt;br /&gt;
&lt;br /&gt;
Weitere Anfragen kann der Client direkt an Session 25 stellen. Er erhält&lt;br /&gt;
die Info sofort, wenn Session 25 terminieren sollte. Dann kann er wieder&lt;br /&gt;
auf Empfänger 0 (= alle) umstellen.&lt;br /&gt;
&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=11890</id>
		<title>Digitalprojekt</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=11890"/>
				<updated>2007-01-21T19:03:22Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Grundzüge des SRCP erläutert. Erster Teil. /* Simple Railroad Command Protocol (SRCP) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich &amp;amp;uuml;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&amp;amp;ouml;nnen ausgetauscht werden, falls sich die Anforderungen &amp;amp;auml;ndern. Dies erfordert, da&amp;amp;szlig; 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&amp;amp;ouml;mmlicher ''Internet-Technik''.&lt;br /&gt;
&lt;br /&gt;
Ein funktionsf&amp;amp;auml;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.&lt;br /&gt;
&lt;br /&gt;
Obwohl sehr viele, der derzeit verf&amp;amp;uuml;gbaren SRCP-Programme, f&amp;amp;uuml;r das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grunds&amp;amp;auml;tzlich unabh&amp;amp;auml;ngig von einem bestimmten PC-Betriebssystem. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere k&amp;amp;ouml;nnen mit wenig Aufwand portiert werden.&lt;br /&gt;
&lt;br /&gt;
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgef&amp;amp;uuml;hrt. Informationen zu den einzelnen Programmen werden &amp;amp;uuml;berlichweise vom jeweiligen Autor &amp;amp;uuml;ber dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen &amp;amp;Uuml;berblick &amp;amp;uuml;ber die verf&amp;amp;uuml;gbare Soft- und Hardware bietet.&lt;br /&gt;
&lt;br /&gt;
= Simple Railroad Command Protocol (SRCP) =&lt;br /&gt;
&lt;br /&gt;
* Protokollspezifikation SRCP&amp;lt;br\&amp;gt;Die aktuelleste Protokollspezifikation von SRCP: [http://srcpd.sourceforge.net/srcp/srcp-083.html [HTML]][http://srcpd.sourceforge.net/srcp/srcp.pdf [PDF]]&amp;lt;br\&amp;gt;SRCP 0.8.x ist inkompatibel zu fr&amp;amp;uuml;heren SRCP-Versionen. Bereits vorhandene Software f&amp;amp;uuml;r SRCP 0.7.x wird im Laufe der Zeit auf SRCP 0.8.x umgestellt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Designprinzipien===&lt;br /&gt;
&lt;br /&gt;
SRCP benutzt zeilenorientierten Klartext. Der Text besteht aus Kommandos und Informationen.&lt;br /&gt;
Kommandos werden vom Client an den Server übermittelt, Informationen vom Server an den&lt;br /&gt;
Client. Jedes Kommando und jede Information besteht aus exakt einer Zeile. Es ist eine&lt;br /&gt;
maximale Zeilenlänge definiert, um auch Programmieranfängern einfache Fehler wie&lt;br /&gt;
Buffer Overflows vermeiden zu helfen.&lt;br /&gt;
&lt;br /&gt;
Der Server stellt seine Dienste im Netzwerk bereit. Zur Verbindungsaufnahme sind sein&lt;br /&gt;
Hostname (ersatzweise die IP Adresse) und der Netzwerkport (z.B. 12345) bei jedem&lt;br /&gt;
Client anzugeben. Der Client kann diese Angaben über andere Dienste anfordern (Bonjour,&lt;br /&gt;
Zeroconf, Active Directory). &lt;br /&gt;
&lt;br /&gt;
Nach Verbindungsaufnahme wird vom Server eine zunächst anonyme Session gestartet. Diese&lt;br /&gt;
wird Handshake genannt. In ihr kann der Client verschiedene Betriebsparameter einstellen.&lt;br /&gt;
Derzeit sind zwei verschiedene Betriebsmodus definiert: Command und Info. Weitere Parameter&lt;br /&gt;
betreffen z.B. die Version des SRCP, das benutzt werden soll. Da diese Idee erst ab Version&lt;br /&gt;
0.8 des SRCP enthalten ist, sind frühere, aber noch immer benutzte Versionen des SRCP (0.7),&lt;br /&gt;
nicht auswählbar.&lt;br /&gt;
&lt;br /&gt;
Mit dem Befehl GO wird die Handshakephase beendet und die noch anonyme Session erhält eine&lt;br /&gt;
Session-ID. Gleichzeitig wird die Verbindung auf den gewählten Betriebsmodus eingestellt.&lt;br /&gt;
&lt;br /&gt;
Die Session-ID ist ein numerischer Wert, der die Session identifiziert. &lt;br /&gt;
&lt;br /&gt;
Im Betriebsmodus INFO wird ausschließlich vom Server zum Client kommuniziert. Es werden&lt;br /&gt;
alle im Protokoll als INFO gekennzeichneten Angaben (Code 100 bis 199) übertragen. Alle&lt;br /&gt;
Angaben markieren Veränderungen. Der Client beendet die INFO Session, indem er die&lt;br /&gt;
Verbindung kappt (es besteht keine Möglichkeit zur Kommandoübermittlung an den Server).&lt;br /&gt;
&lt;br /&gt;
Im Betriebsmodus COMMAND wartet der Server auf Kommandos vom Client. Sobald ein Kommando&lt;br /&gt;
eintrifft, wird es bearbeitet und eine Antwort generiert und an den Client gesendet. Die&lt;br /&gt;
Antworten sind Bestätigungen, das das Kommando angenommen wurde, Fehlermeldungen oder&lt;br /&gt;
Abfrageergebnisse.&lt;br /&gt;
&lt;br /&gt;
Kommandos bestehen aus einem Kommandowort, einer Adressangabe und weiteren Parametern.&lt;br /&gt;
Kommandoworte bestehen aus Verben, die eine Tätigkeit beschreiben: SET, GET, INIT&lt;br /&gt;
TERM usw. Adressangaben sind i.allg. dreiteilig: Ein Bus, eine Gerätegruppe und eine &lt;br /&gt;
Adressangabe (Dekoderadresse).&lt;br /&gt;
&lt;br /&gt;
Eine Gerätegruppe markiert Geräte mit gleichen Parametern. Dies können reale Geräte&lt;br /&gt;
wie Decoder sein (Jeder hat eine Adresse, einen Motor mit unterschiedlichen Fahrstufen&lt;br /&gt;
und 0 oder mehr Funktionsausgängen) oder nur logische Geräte wie das TIME Device sein,&lt;br /&gt;
die nicht unbedingt ein Hardwarependant haben müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Bus kennzeichnet einen Adressraum, über den verschiedene Geräte erreichbar sind.&lt;br /&gt;
Im einfachsten Fall ist ein Bus eine Verbindung zwischen dem SRCP Server und dem&lt;br /&gt;
Computerinterface der Moba.&lt;br /&gt;
&lt;br /&gt;
====Gründe für das Design====&lt;br /&gt;
&lt;br /&gt;
=====Parameterlisten vs. benamte Parameter=====&lt;br /&gt;
Die Diskussion wurde per Mehrheitsbeschluß entschieden. Eine technische Über- oder&lt;br /&gt;
Unterlegenheit einer der beiden Varianten konnte nicht festgestellt werden. Allgemein&lt;br /&gt;
wurde vermutet, das benamte Parameter aufwendiger in der Umsetzung sind.&lt;br /&gt;
&lt;br /&gt;
=====Kommandoworte=====&lt;br /&gt;
Die Kommandoworte wurden zugunsten einer größeren Gerätegruppenzahl klein und&lt;br /&gt;
abstrakt gehalten. Jeden beeinflußbaren Parameter kann man via GET/SET bearbeiten.&lt;br /&gt;
&lt;br /&gt;
Es wurde allgemein für einfacher gehalten, neue Gerätegruppen mit den definierten&lt;br /&gt;
Kommandos zu kombinieren als für neue Geräte auch neue Kommandos einzuführen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** [[SRCP_0.5.0_(plain_text)|SRCP - Simple Railroad Command Protocol 0.5.0]]&lt;br /&gt;
** [[SRCP - Simple Railroad Command Protocol 0.6.0]]&lt;br /&gt;
** [[SRCP - Simple Railroad Command Protocol 0.6.1]]&lt;br /&gt;
** [[SRCP_0.7.0_(plain_text)|SRCP - Simple Railroad Command Protocol 0.7.0]]&lt;br /&gt;
** [[SRCP - Simple Railroad Command Protocol 0.7.2]]&lt;br /&gt;
** [[SRCP - Simple Railroad Command Protocol 0.7.3]]&lt;br /&gt;
** [[SRCP - Simple Railroad Command Protocol 0.8.0]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nat&amp;amp;uuml;rlich ist es w&amp;amp;uuml;nschenswert, da&amp;amp;szlig; sich SRCP auch &amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
# Sowohl in der Software, wie auch in der zugeh&amp;amp;ouml;rigen Dokumentation wird auf die SRCP-Entwicklergruppe und diese Internetseite verwiesen.&lt;br /&gt;
# Es findet keine eigenm&amp;amp;auml;chtige Erweiterung von SRCP statt. Stattdessen werden Erweiterungen mit der SRCP Entwicklergruppe diskutiert und offiziell in SRCP integriert bzw. verworfen.&lt;br /&gt;
# Bei kommerziellem Erfolg des jeweiligen Produktes w&amp;amp;uuml;rden wir es gerne sehen, wenn sich die Entwickler &amp;amp;uuml;ber eine Spende zur Unterst&amp;amp;uuml;tzung von '''DER_MOBA''' Gedanken machen ;-).&lt;br /&gt;
&lt;br /&gt;
== SRCP-Server ==&lt;br /&gt;
&lt;br /&gt;
=== Aktiv gepflegte Projekte ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP-Server werden aktiv weiterentwickelt. Wer sie einsetzt, hat einen&lt;br /&gt;
einsatzbereiten und leistungsf&amp;amp;auml;higen Server und kann bei Problemen und Herausforderungen auf Hilfe und Unterst&amp;amp;uuml;tzung setzen.&lt;br /&gt;
&lt;br /&gt;
* '''DDW Server''' - DigitalDirekt-Server f&amp;amp;uuml;r Windows.&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''erddcd''' - DigitalDirekt-Server f&amp;amp;uuml;r Linux (DDL)&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface (für Linux Kernel 2.4 und 2.6).&amp;lt;br /&amp;gt; Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes]. &lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Server''' - SRCP-Server f&amp;amp;uuml;r Windows und die Intellibox.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''srcpd''' - SRCP-Server f&amp;amp;uuml;r Linux/FreeBSD/Windows (Cygwin)/Mac&amp;amp;nbsp;OS&amp;amp;nbsp;X&amp;lt;br /&amp;gt;&amp;amp;raquo;srcpd&amp;amp;laquo; kann zur Steuerung von Anlagen sowohl über verschiedene [[Digitalzentralen]], wie z.B. Intellibox, M&amp;amp;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.&amp;lt;br /&amp;gt; Kontakt: [mailto:srcpd-devel@lists.sourceforge.net srcpd-devel@lists.sourceforge.net]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ Projekt-Seiten] bei SourceForge.&lt;br /&gt;
&lt;br /&gt;
* '''ejsrcpd''' - Extended Java SRCP-Daemon&amp;lt;br /&amp;gt;In Java implementierter SRCP-Server mit Plugin-Konzept zur Unterstützung unterschiedlicher Hardware-Schnittstellen.&amp;lt;br /&amp;gt; Kontakt: [mailto:kurtharders@users.sourceforge.net Kurt Harders]&amp;lt;br /&amp;gt; Weitere Informationen zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://sourceforge.net/projects/ejsrcpd WWW-Seiten] des Projektes.&lt;br /&gt;
&lt;br /&gt;
=== Technologiestudien ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP-Server sind entstanden, um Funktionen nicht nur am gr&amp;amp;uuml;nen Tisch testen zu k&amp;amp;ouml;nnen. Sie&lt;br /&gt;
k&amp;amp;ouml;nnen auch als Anregung f&amp;amp;uuml;r Weiterentwicklungen dienen. &lt;br /&gt;
&lt;br /&gt;
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x. Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&amp;amp;auml;t. Derzeit ist es nicht f&amp;amp;uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&amp;amp;auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&amp;amp;uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&amp;amp;auml;higen SRCP-Server sucht, sollte sich die weiter oben angeführten Produkte ansehen.&amp;lt;br /&amp;gt; Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd/ Autors].&lt;br /&gt;
&lt;br /&gt;
== SRCP-Clients ==&lt;br /&gt;
&lt;br /&gt;
* '''J-Man''' - manuelle Steuerung von Lokomotiven und Magnetartikel mit grafischer Oberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''loco-panel''' - Monitor zur &amp;amp;Uuml;berwachung aller aktiven Loks.&amp;lt;br /&amp;gt; &amp;lt;!-- &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;ddsh&amp;lt;/B&amp;gt; - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÃ€ufen.&amp;lt;BR&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Decodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Decodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''phpTrainCtrl f&amp;amp;uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer&amp;lt;br /&amp;gt;Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &amp;amp;uuml;bersichtlicher Bedienoberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt; Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;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].&lt;br /&gt;
&lt;br /&gt;
* '''SpDrS60''' - grafisches Gleisbildstellpult nach Bundesbahnvorlage mit vorbildgerechter Fahrstraßensicherungslogik.&amp;lt;br /&amp;gt; Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* '''M6051emu''' - Emulation des M&amp;amp;auml;rklin Interfaces 6051 f&amp;amp;uuml;r '''erddcd'''.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;amp;amp;Co) mit '''erddcd''' betrieben werden sollen.&amp;lt;br /&amp;gt; Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL/ DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&amp;amp;auml;che (rcman)&amp;lt;br /&amp;gt; Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* Programmbibliothken für '''TCL/Tk''' und '''Python''' - Sammlung n&amp;amp;uuml;tzlicher Routinen und Prozesse f&amp;amp;uuml;r den Selbstprogrammierer: [http://srcpd.sourceforge.net/clients/ Client-Seiten des srcpd]&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Recorder''' - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie sp&amp;amp;auml;ter wieder ab.&amp;lt;br /&amp;gt; Kontakt: [mailto:mtrute@web.de Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Tester''' - SRCP-Befehle mit einem Web-Server und PHP generieren.&amp;lt;br /&amp;gt; Kontakt: [mailto:martin@familiewolf.de Martin Wolf]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den &amp;lt;nowiki&amp;gt;[http://www.stud.mw.tu-muenchen.de/~mw7/familie/martin/hobby/modellbahn/srcptest.html WWW-Seiten (link defekt)]&amp;lt;/nowiki&amp;gt; des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Gplan''' - Gleispl&amp;amp;auml;ne erstellen und Magnetartikel steuern (f&amp;amp;uuml;r Windows und Linux).&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&amp;amp;uuml;r Windows) &amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JTrain''' - In Java geschriebener grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdecodern mit grafischem Stellpult (f&amp;amp;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].&lt;br /&gt;
&lt;br /&gt;
* '''Java DCC Network Client (ab Version 2.1)''' - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN&amp;lt;br /&amp;gt; Kontakt: [mailto:H.Karoska@t-online.de Helge Karoska]&amp;lt;br /&amp;gt; Java-SRCP-Client f&amp;amp;uuml;r den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubeh&amp;amp;ouml;r einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.karkoska.de/DCC/DCCSET.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''LD-X-Programmer''' - Programm zur Programmierung von Decodern der Firma Tams Elektronik (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:geramb@aon.de Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client (SRCP 0.7.3) f&amp;amp;uuml;r Windows zur Programmierung von Tams-Decodern. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/ld-x-programmer.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TRAINer''' - SRCP-Client mit Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.keintzel.at/html/at/hobby/TRAINer/trainer.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP-Pakete f&amp;amp;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.&amp;lt;br /&amp;gt; Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Angebot und die M&amp;amp;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).&lt;br /&gt;
&lt;br /&gt;
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:ganter@ganter.at Fritz Ganter]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''RocRail''' - Programm zum Steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@rocrail.net Rob Versluis]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.rocrail.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''MOBA-Package''' - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:selandro@users.sourceforge.net Roman Lauer]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://mobapackage.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''EnjoyTheTime''' - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:mgeramb@users.sourceforge.net  Michael Geramb]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/enjoythetime.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Railroad Express''' - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@miniware.nl  Fred Stevens]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://www.moba-digitaal.nl/de/main/index.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''dras/Kdigirail''' - SRCP-Client zum Steuern von Modellbahnanlagen (Linux-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:schmischi@users.sourceforge.net  Frank Schmischke]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit, die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/clients/dras/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''AdHoc-Railway''' - Java-SRCP-Client zum Steuern von Modellbahnanlagen&amp;lt;br /&amp;gt; Kontakt: [mailto:fork_ch@users.sourceforge.net Benjamin Mueller]&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit, die Software zu beziehen, gibt es auf der [http://sourceforge.net/projects/adhocrailway/ Projektseite] des Programms.&lt;br /&gt;
&lt;br /&gt;
* '''jsrcpc''' - Java-SRCP-Bibliothek zur Entwicklung von SRCP-Clients&amp;lt;br /&amp;gt; Kontakt: [mailto:fork_ch@users.sourceforge.net Benjamin Mueller]&amp;lt;br /&amp;gt;Weitere Infos zu dieser Software und die M&amp;amp;ouml;glichkeit, diese zu beziehen, gibt es auf der [http://sourceforge.net/projects/jsrcpc/ Projektseite] der Bibliothek.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
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:&lt;br /&gt;
* Ein Kanal zum Senden von Steuerbefehlen an die Anlage&lt;br /&gt;
* Ein Kanal zum Empfang von Rückmeldungen von der Anlage&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zum Empfang von Rückmeldungen der Anlage benötigt man ein S88-Bus-System, das über Kabelverbindungen und eine 5&amp;amp;nbsp;V-Spannungsversorgung an die parallele Schnittstelle angeschlossen wird.&lt;br /&gt;
&lt;br /&gt;
Ein übersichtliche Zusammenstellung der für diese Anbindungen notwendigen elektischen Verbindungen gibt es von Holger Seider: http://home.snafu.de/mgrafe/Anleitung_Server.htm&lt;br /&gt;
&lt;br /&gt;
= Common Railroad Configuration Files (CRCF) =&lt;br /&gt;
&lt;br /&gt;
Ein Entwurf f&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* Entwurf [[CRCF - Common Railroad Configuration Files 0.2.0 | CRCF 0.2.0 ]] / [[CRCF 0.2.0 (Muster) | CRCF Beispiel]]&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Entwurf [[CRCF - Common Railroad Configuration Files 0.1 | CRCF 0.1.0 ]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitalbetrieb]]&lt;br /&gt;
[[Kategorie:SRCP]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11887</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11887"/>
				<updated>2007-01-21T15:19:07Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Bewertung hinzugefügt /* Neue Gerätegruppe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Da es für das SRCP-Protokoll noch keine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Datenablage gemäß CRCF Spezifikation 0.2.0====&lt;br /&gt;
* basiert auf SRCP&lt;br /&gt;
* physikalisch liegen die CRCF-Daten beim SRCP-Server&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP (Befehl CONFGET)&lt;br /&gt;
* ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.X-Welt, wie z.B. Busse&lt;br /&gt;
* unterstützt die CRCF als textbasierte Dateien&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP -&amp;gt; d.h. Die einzelnen Datenfelder kommen aus der SRCP-Welt&lt;br /&gt;
* hält ausschliesslich statische Daten bereit&lt;br /&gt;
* enthält auch Daten über die Eigenschaften eines Servers&lt;br /&gt;
* pro SRCP-Server eine CRCF&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
* die CRCF-Daten liegen bei einem SRCP-Client&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet&lt;br /&gt;
* nutzt SRCP als Tunnel, da CRCF-Anfragen nur weitergeleitet werden&lt;br /&gt;
* Auskunftsbefehl ist jedoch als SRCP-Kommando auszuführen&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht   &lt;br /&gt;
* der Client muss sich bei allen verfügbaren SRCP-Server anmelden, damit Daten anlagenweit verteilt werden können&lt;br /&gt;
* Der Client kann dann konsistent statische und dynamische Daten verwalten&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an die CRCF senden, um deren Inhalt zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (?)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung &lt;br /&gt;
:: Anmerkung von svesch: Das ist meiner Meinung nach kein neues Objekt, das ist nur eine Liste von GAs.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation (FIXME: falsch einsortiert)&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt.&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Bewertung des Vorschlags====&lt;br /&gt;
&lt;br /&gt;
Wurde bislang gar nicht diskutiert, daher ist er wohl vom Tisch.&lt;br /&gt;
&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden an alle im Infomodus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
(TODO: Weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Funktionalität kann über Generic Messages abgebildet werden, Vorteil ist&lt;br /&gt;
eine mögliche Trennung in CRCF und SRCP Implementationen.&lt;br /&gt;
&lt;br /&gt;
Wird nicht weiter verfolgt, da der Programmieraufwand zur Unterhaltung der &lt;br /&gt;
zusätzlichen Netzwerkverbindungen erheblich ist.&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Eigene CRCF-Sitzungen trennen sowohl den Namensraum von SRCP und CRCF als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL CRCF 0.3&lt;br /&gt;
 SET CONNECTIONMODE CRCF INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur CRCF-Sitzungen, aber keine SRCP-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Allgemein nutzbare Kommunikationsstrecke. SRCP muß um einige&lt;br /&gt;
Details erweitert werden (siehe unten). Es entsteht ein permanenter&lt;br /&gt;
Pflegedienst für Vergabe der Messagetypen (kann automatisiert werden)&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Für den generalisierten Messageaustausch wird eine neue Devicegruppe eingerichtet:&lt;br /&gt;
&lt;br /&gt;
GM Generic Message&lt;br /&gt;
&lt;br /&gt;
Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
Im SRCP ist noch festzulegen, das eine Busnummer nicht als&lt;br /&gt;
SessionID vergeben werden darf.&lt;br /&gt;
&lt;br /&gt;
Im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist die Busnummer oder SessionID, die die Message&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Message als Broadcast an&lt;br /&gt;
alle INFO Sessions gesendet. Die AntwortID ist die SessionID (oder&lt;br /&gt;
0) der INFO Session, an die eine evt. Antwortmessage gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Im INFO Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen:&lt;br /&gt;
*keine Leerzeichen (kann man durch Konvention z.B. durch URL Codierung umgehen).&lt;br /&gt;
*maximale Zeilenlänge 1000 Zeichen (inkl. der Befehle &amp;amp; CRLF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein zentral gepflegte Liste von Clientidentifiern um den Messagetyp erkennen zu können.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. (Schritt A)&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie der INFO aussieht, dürfte offensichtlich sein. Er geht an alle INFO Sessions.&lt;br /&gt;
(Schritt B)&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF Service diese Message erhalten hat, sendet er eine&lt;br /&gt;
passende Antwort an den SRCP Server (Schritt C)&lt;br /&gt;
&lt;br /&gt;
 SET 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Infosession des CRCF Services ist im Beispiel 25, die Antwort wird vom&lt;br /&gt;
SRCP Server direkt an die SESSION 45 weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
 INFO 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß ist im Bild dargestellt. CA ist die Command Session von&lt;br /&gt;
Client A, IA die Infosession. Client B (CRCF Server analog)&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11886</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11886"/>
				<updated>2007-01-21T15:16:33Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Bewertung hinzugefügt /* Neuer Sitzungstyp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Da es für das SRCP-Protokoll noch keine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Datenablage gemäß CRCF Spezifikation 0.2.0====&lt;br /&gt;
* basiert auf SRCP&lt;br /&gt;
* physikalisch liegen die CRCF-Daten beim SRCP-Server&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP (Befehl CONFGET)&lt;br /&gt;
* ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.X-Welt, wie z.B. Busse&lt;br /&gt;
* unterstützt die CRCF als textbasierte Dateien&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP -&amp;gt; d.h. Die einzelnen Datenfelder kommen aus der SRCP-Welt&lt;br /&gt;
* hält ausschliesslich statische Daten bereit&lt;br /&gt;
* enthält auch Daten über die Eigenschaften eines Servers&lt;br /&gt;
* pro SRCP-Server eine CRCF&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
* die CRCF-Daten liegen bei einem SRCP-Client&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet&lt;br /&gt;
* nutzt SRCP als Tunnel, da CRCF-Anfragen nur weitergeleitet werden&lt;br /&gt;
* Auskunftsbefehl ist jedoch als SRCP-Kommando auszuführen&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht   &lt;br /&gt;
* der Client muss sich bei allen verfügbaren SRCP-Server anmelden, damit Daten anlagenweit verteilt werden können&lt;br /&gt;
* Der Client kann dann konsistent statische und dynamische Daten verwalten&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an die CRCF senden, um deren Inhalt zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (?)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung &lt;br /&gt;
:: Anmerkung von svesch: Das ist meiner Meinung nach kein neues Objekt, das ist nur eine Liste von GAs.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation (FIXME: falsch einsortiert)&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt.&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Bewertung des Vorschlags====&lt;br /&gt;
&lt;br /&gt;
Wurde bislang gar nicht diskutiert, daher ist er wohl vom Tisch.&lt;br /&gt;
&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden an alle im Infomodus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
(TODO: Weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
&lt;br /&gt;
====Bewertung====&lt;br /&gt;
&lt;br /&gt;
Funktionalität kann über Generic Messages abgebildet werden, Vorteil ist&lt;br /&gt;
eine mögliche Trennung in CRCF und SRCP Implementationen.&lt;br /&gt;
&lt;br /&gt;
Wird nicht weiter verfolgt, da der Programmieraufwand zur Unterhaltung der &lt;br /&gt;
zusätzlichen Netzwerkverbindungen erheblich ist.&lt;br /&gt;
&lt;br /&gt;
====Vorschlagstext====&lt;br /&gt;
&lt;br /&gt;
Eigene CRCF-Sitzungen trennen sowohl den Namensraum von SRCP und CRCF als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL CRCF 0.3&lt;br /&gt;
 SET CONNECTIONMODE CRCF INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur CRCF-Sitzungen, aber keine SRCP-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
Für den generalisierten Messageaustausch wird eine neue Devicegruppe eingerichtet:&lt;br /&gt;
&lt;br /&gt;
GM Generic Message&lt;br /&gt;
&lt;br /&gt;
Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
Im SRCP ist noch festzulegen, das eine Busnummer nicht als&lt;br /&gt;
SessionID vergeben werden darf.&lt;br /&gt;
&lt;br /&gt;
Im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist die Busnummer oder SessionID, die die Message&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Message als Broadcast an&lt;br /&gt;
alle INFO Sessions gesendet. Die AntwortID ist die SessionID (oder&lt;br /&gt;
0) der INFO Session, an die eine evt. Antwortmessage gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Im INFO Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen:&lt;br /&gt;
*keine Leerzeichen (kann man durch Konvention z.B. durch URL Codierung umgehen).&lt;br /&gt;
*maximale Zeilenlänge 1000 Zeichen (inkl. der Befehle &amp;amp; CRLF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein zentral gepflegte Liste von Clientidentifiern um den Messagetyp erkennen zu können.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. (Schritt A)&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie der INFO aussieht, dürfte offensichtlich sein. Er geht an alle INFO Sessions.&lt;br /&gt;
(Schritt B)&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF Service diese Message erhalten hat, sendet er eine&lt;br /&gt;
passende Antwort an den SRCP Server (Schritt C)&lt;br /&gt;
&lt;br /&gt;
 SET 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Infosession des CRCF Services ist im Beispiel 25, die Antwort wird vom&lt;br /&gt;
SRCP Server direkt an die SESSION 45 weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
 INFO 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß ist im Bild dargestellt. CA ist die Command Session von&lt;br /&gt;
Client A, IA die Infosession. Client B (CRCF Server analog)&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11885</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11885"/>
				<updated>2007-01-21T15:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Bewertung /* Neuer Befehl im Kommandomodus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Da es für das SRCP-Protokoll noch keine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Alternativ kann ein SRCP-Server sich auch automatisiert beim Zeroconf-Dienst anmelden. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Datenablage gemäß CRCF Spezifikation 0.2.0====&lt;br /&gt;
* basiert auf SRCP&lt;br /&gt;
* physikalisch liegen die CRCF-Daten beim SRCP-Server&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP (Befehl CONFGET)&lt;br /&gt;
* ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.X-Welt, wie z.B. Busse&lt;br /&gt;
* unterstützt die CRCF als textbasierte Dateien&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP -&amp;gt; d.h. Die einzelnen Datenfelder kommen aus der SRCP-Welt&lt;br /&gt;
* hält ausschliesslich statische Daten bereit&lt;br /&gt;
* enthält auch Daten über die Eigenschaften eines Servers&lt;br /&gt;
* pro SRCP-Server eine CRCF&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem spezialisierten SRCP-Client====&lt;br /&gt;
* die CRCF-Daten liegen bei einem SRCP-Client&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet&lt;br /&gt;
* nutzt SRCP als Tunnel, da CRCF-Anfragen nur weitergeleitet werden&lt;br /&gt;
* Auskunftsbefehl ist jedoch als SRCP-Kommando auszuführen&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht   &lt;br /&gt;
* der Client muss sich bei allen verfügbaren SRCP-Server anmelden, damit Daten anlagenweit verteilt werden können&lt;br /&gt;
* Der Client kann dann konsistent statische und dynamische Daten verwalten&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts&lt;br /&gt;
&lt;br /&gt;
====Datenablage bei einem separaten CRCF-Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an die CRCF senden, um deren Inhalt zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
===Erweiterung des bisherigen Befehlsvorrats===&lt;br /&gt;
Der bisherige Namensraum von CRCF umfaßt keine Befehle, die Objekte einer höheren Abstraktionsebene beschreiben. Für die Attribute dieser makroskopischen Objekte gibt es ebenfalls noch keine Festlegung. Zum Teil sind die Werte dieser Attribute statisch zum Teil ändern sich sich während des Betriebs. Der Bedarf für folgende Begriffe ist vorhanden:&lt;br /&gt;
&lt;br /&gt;
; Stellwerk (RWCC, Railway Control Center)&lt;br /&gt;
:: Steuerungsinstanz, die Fahrstraßen verwaltet, für ein oder mehrere Bahnhöfe zuständig ist, Zugmeldungen abwickelt, ihr zuständiges Streckennetz kennt, einzuhaltende Geschwindigkeiten überwacht und bei Überschreitungen eingreift etc.&lt;br /&gt;
; Gleisbild (LAYOUT)&lt;br /&gt;
:: Streckennetzbeschreibung eines Stellwerkbezirks, enthält Angaben zur Dimension, Position einzelner Gleisbildelemente, etc.&lt;br /&gt;
; Fahrstraße (ROUTE)&lt;br /&gt;
:: Sicherheitstechnisch überwachter Streckenabschnitt innerhalb eines Stellwerks, der über Informationen zur Start- und Zielsignal, Soll-Weichenstellungen, Freimeldeabschnitte, Typinformation (für anzuwendenden Regelsatz), den aktuellen Zustand (eingestellt, aufgelöst, reserviert, teilaufgelöst) etc. verfügt.&lt;br /&gt;
; Weichenstraße (?)&lt;br /&gt;
:: Sammlung schaltbarer Magnetartikel und ihrer Sollstellungen ohne sicherheitstechnische Überwachung &lt;br /&gt;
:: Anmerkung von svesch: Das ist meiner Meinung nach kein neues Objekt, das ist nur eine Liste von GAs.&lt;br /&gt;
; Zugsteuerung (TNCC, Train Control Center)&lt;br /&gt;
:: Instanz, die die Logistik eines gegebenen Vorrats an Zügen übernimmt z.B. fahrplangesteuerte Fahrten von Zügen zwischen Bahnhöfen&lt;br /&gt;
; Zug (TRAIN)&lt;br /&gt;
:: Instanz, die über ihre Zugnummer identifizierbar ist, eine oder mehrere Lokomotiven ansteuert, Informationen zu Typ und Länge verfügt etc.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere ergänzen)&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation (FIXME: falsch einsortiert)&lt;br /&gt;
&lt;br /&gt;
Weiterhin ist es mit SRCP prinzipiell möglich, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, es gibt aber bisher kein Konzept, das einen Informationsübergang zwischen den Server-Bereichen erlaubt.&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
====Bewertung des Vorschlags====&lt;br /&gt;
&lt;br /&gt;
Wurde bislang gar nicht diskutiert, daher ist er wohl vom Tisch.&lt;br /&gt;
&lt;br /&gt;
====Vorschlag====&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden an alle im Infomodus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
(TODO: Weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp===&lt;br /&gt;
&lt;br /&gt;
Eigene CRCF-Sitzungen trennen sowohl den Namensraum von SRCP und CRCF als auch den durch beide Kommunikationsformen entstehenden Netzwerkverkehr:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL CRCF 0.3&lt;br /&gt;
 SET CONNECTIONMODE CRCF INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig. Alternativ ist ein Systemdienst möglich, der nur CRCF-Sitzungen, aber keine SRCP-Sitzungen unterstütz.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
; Bewertung&lt;br /&gt;
:: Wird nicht weiter verfolgt, da der Programmieraufwand zur Unterhaltung der zusätzlichen Netzwerkverbindungen erheblich ist.&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
Für den generalisierten Messageaustausch wird eine neue Devicegruppe eingerichtet:&lt;br /&gt;
&lt;br /&gt;
GM Generic Message&lt;br /&gt;
&lt;br /&gt;
Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
Im SRCP ist noch festzulegen, das eine Busnummer nicht als&lt;br /&gt;
SessionID vergeben werden darf.&lt;br /&gt;
&lt;br /&gt;
Im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist die Busnummer oder SessionID, die die Message&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Message als Broadcast an&lt;br /&gt;
alle INFO Sessions gesendet. Die AntwortID ist die SessionID (oder&lt;br /&gt;
0) der INFO Session, an die eine evt. Antwortmessage gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Im INFO Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen:&lt;br /&gt;
*keine Leerzeichen (kann man durch Konvention z.B. durch URL Codierung umgehen).&lt;br /&gt;
*maximale Zeilenlänge 1000 Zeichen (inkl. der Befehle &amp;amp; CRLF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein zentral gepflegte Liste von Clientidentifiern um den Messagetyp erkennen zu können.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. (Schritt A)&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie der INFO aussieht, dürfte offensichtlich sein. Er geht an alle INFO Sessions.&lt;br /&gt;
(Schritt B)&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF Service diese Message erhalten hat, sendet er eine&lt;br /&gt;
passende Antwort an den SRCP Server (Schritt C)&lt;br /&gt;
&lt;br /&gt;
 SET 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Infosession des CRCF Services ist im Beispiel 25, die Antwort wird vom&lt;br /&gt;
SRCP Server direkt an die SESSION 45 weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
 INFO 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß ist im Bild dargestellt. CA ist die Command Session von&lt;br /&gt;
Client A, IA die Infosession. Client B (CRCF Server analog)&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11870</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11870"/>
				<updated>2007-01-19T08:57:48Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Nachrichtenfluß mit GM /* Neue Gerätegruppe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Da es für das SRCP-Protokoll noch keine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anforderungen an CRCF===&lt;br /&gt;
&lt;br /&gt;
* Umständlich Eingabe von Informationen über Loks und Zubehör soll entfallen&lt;br /&gt;
* Anlagenweite Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fragestellungen===&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Implementierungsvorschläge===&lt;br /&gt;
&lt;br /&gt;
====Implementierung nach CRCF Spezifikation 0.2.0====&lt;br /&gt;
* basiert auf SRCP&lt;br /&gt;
* physikalisch liegen die CRCF-Daten beim SRCP-Server&lt;br /&gt;
* Auskunftdienst ist Bestandteil von SRCP (Befehl CONFGET)&lt;br /&gt;
* ist praktisch auf SRCP 0.7.1 ausgerichtet, deswegen fehlen wichtige Details der 0.8.X-Welt, wie z.B. Busse&lt;br /&gt;
* unterstützt die CRCF als textbasierte Dateien&lt;br /&gt;
* Verwaltung der Daten in Sinne von SRCP -&amp;gt; d.h. Die einzelnen Datenfelder kommen aus der SRCP-Welt&lt;br /&gt;
* hält ausschliesslich statische Daten bereit&lt;br /&gt;
* enthält auch Daten über die Eigenschaften eines Servers&lt;br /&gt;
* pro SRCP-Server eine CRCF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Implementierung als spezialisierter SRCP-Client====&lt;br /&gt;
* die CRCF-Daten liegen bei einem SRCP-Client&lt;br /&gt;
* Anfragen an die CRCF erfolgen zunächst an den SRCP-Server, der die Daten an den spezialisierten Client weiterleitet&lt;br /&gt;
* nutzt SRCP als Tunnel, da CRCF-Anfragen nur weitergeleitet werden&lt;br /&gt;
* Auskunftsbefehl ist jedoch als SRCP-Kommando auszuführen&lt;br /&gt;
* Durch das ungesehene Weiterleiten von Nachrichten durch den SRCP-Server wird eine Kommunikation zwischen Clients ermöglicht   &lt;br /&gt;
* der Client muss sich bei allen verfügbaren SRCP-Server anmelden, damit Daten anlagenweit verteilt werden können&lt;br /&gt;
* Der Client kann dann konsistent statische und dynamische Daten verwalten&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* Verwaltung von Daten, die über die SRCP-Welt hinausgehen, beispielsweise die Verwaltung von Fahrstrassen und kompletten Layouts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Implementierung als separater Server====&lt;br /&gt;
* Auskunftsdienst muss als neues Protokoll implementiert werden&lt;br /&gt;
* SRCP-Clients sowie SRCP-Server können anfragen&lt;br /&gt;
* Verwaltung von rein statischen Daten&lt;br /&gt;
* Falls zusätzlich zum Auskunftsdienst ein Meldedienst implementiert wird, können auch dynamische Daten verwaltet werden&lt;br /&gt;
* Kommunikation zwischen Clients könnte mittels einer Mailboxfunktion möglich werden&lt;br /&gt;
* das SRCP-Protokoll wird nicht geändert, CRCF existiert parallel&lt;br /&gt;
* SRCP-Server haben die Möglichkeit an Informationen von CRCF zu gelangen&lt;br /&gt;
* SRCP-Server können Meldungen an die CRCF senden, um deren Inhalt zu aktualisieren&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Bereitstellung der CRCF-Daten via Zeroconf-Dienst====&lt;br /&gt;
&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Zugbeeinflussung mit geschwindigkeitsüberwachender Instanz (Stellwerk) und  Zugsteuerung&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation (FIXME: falsch einsortiert)&lt;br /&gt;
&lt;br /&gt;
Obwohl SRCP es prinzipiell ermöglicht, eine Modellbahnanlage über mehrere SRCP-Server zu bedienen, gibt es bisher kein Konzept dafür, wie ein Informationsübergang zwischen den Server-Bereichen erfolgen kann.&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieser neu zu implementierenden Informationswege wurden die im folgenden näher erläuterten Konzepte vorgeschlagen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Neuer Befehl im Kommandomodus===&lt;br /&gt;
Die aktuell SRCP-Spezifikation umfaßt für den Kommandomodus einen definierten Satz an Befehlen, die in der folgenden allgemeinen Syntax an den Server gesendet werden:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;kommandoparameter&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Da die Befehle auf definierte Gerätegruppen wirken, die wieder bestimmten Bussen zugeordnet sind, resultiert zur weiteren Spezifizierung folgende allgemeine Befehlssyntax:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;kommando&amp;gt; &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Bus mit Nummer 0 ist dem Server selbst vorbehalten und dient zur Adressierung von Servereinstellungen. Die Anzahl der übergebenen Parameter ist variabel.&lt;br /&gt;
&lt;br /&gt;
Vom Server abgearbeitete Befehle werden an alle im Infomodus verbundene SRCP-Clients als eine Art „SRCP-Broadcast“ mit der folgenden allgemeinen Syntax weitergeleitet:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;codenr&amp;gt; INFO &amp;lt;bus&amp;gt; &amp;lt;gerätegruppe&amp;gt; &amp;lt;parameter&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die angeschlossenen SRCP-Clients selbst sind anhand ihrer Session-Id identifizier- und eindeutig unterscheidbar.&lt;br /&gt;
&lt;br /&gt;
Von dieser Situation ausgehend, kann ein neues Kommando ergänzt werden, dass von SRCP-Server selbst nur zum Weiterleiten einer Nachricht an die angeschlossenen SRCP-Clients genutzt wird. Den Inhalt der Nachricht muß der SRCP-Server nicht interpretieren. Die Form der Nachricht kann/soll/muß den gängigen SRCP-Konventionen bezüglich Zeichensatz, Länge etc. genügen.&lt;br /&gt;
&lt;br /&gt;
(TODO: Weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
===Neuer Sitzungstyp (Modus)===&lt;br /&gt;
&lt;br /&gt;
Eigene CRCF Sessions:&lt;br /&gt;
&lt;br /&gt;
 SET PROTOCOL CRCF 0.3&lt;br /&gt;
 SET CONNECTIONMODE CRCF INFO|COMMAND&lt;br /&gt;
&lt;br /&gt;
Programmiertechnisch wird sowohl für den SRCP-Server als auch den SRCP-Client die Unterhaltung einer bzw. zweier weiterer Netzwerkverbindungen notwendig.&lt;br /&gt;
&lt;br /&gt;
(TODO: weitere Ausführung)&lt;br /&gt;
&lt;br /&gt;
===Neue Gerätegruppe===&lt;br /&gt;
Für den generalisierten Messageaustausch wird eine neue Devicegruppe eingerichtet:&lt;br /&gt;
&lt;br /&gt;
GM Generic Message&lt;br /&gt;
&lt;br /&gt;
Die einzige (sinnvoll) anzuwendende Methode ist SET.&lt;br /&gt;
Im SRCP ist noch festzulegen, das eine Busnummer nicht als&lt;br /&gt;
SessionID vergeben werden darf.&lt;br /&gt;
&lt;br /&gt;
Im Kommandomodus:&lt;br /&gt;
&lt;br /&gt;
 SET &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
EmpfängerID ist die Busnummer oder SessionID, die die Message&lt;br /&gt;
erhalten soll. Ist diese 0, so wird die Message als Broadcast an&lt;br /&gt;
alle INFO Sessions gesendet. Die AntwortID ist die SessionID (oder&lt;br /&gt;
0) der INFO Session, an die eine evt. Antwortmessage gesendet&lt;br /&gt;
werden soll.&lt;br /&gt;
&lt;br /&gt;
Im INFO Modus:&lt;br /&gt;
&lt;br /&gt;
 INFO &amp;lt;EmpfängerID&amp;gt; GM &amp;lt;AntwortID&amp;gt; &amp;lt;messagetype&amp;gt; &amp;lt;messagetext&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Für &amp;lt;messagetext&amp;gt; gelten die im SRCP üblichen Einschränkungen:&lt;br /&gt;
*keine Leerzeichen (kann man durch Konvention z.B. durch URL Codierung umgehen).&lt;br /&gt;
*maximale Zeilenlänge 1000 Zeichen (inkl. der Befehle &amp;amp; CRLF).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messagetype&amp;gt; ist ein zentral gepflegte Liste von Clientidentifiern um den Messagetyp erkennen zu können.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Ein Client fragt nach den Einzelheiten des Gerätes GA 1 auf&lt;br /&gt;
Bus 17. (Schritt A)&lt;br /&gt;
&lt;br /&gt;
 SET 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
Wie der INFO aussieht, dürfte offensichtlich sein. Er geht an alle INFO Sessions.&lt;br /&gt;
(Schritt B)&lt;br /&gt;
&lt;br /&gt;
 INFO 0 GM 45 CRCF CONFGET 17 GA 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ein CRCF Service diese Message erhalten hat, sendet er eine&lt;br /&gt;
passende Antwort an den SRCP Server (Schritt C)&lt;br /&gt;
&lt;br /&gt;
 SET 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Die Infosession des CRCF Services ist im Beispiel 25, die Antwort wird vom&lt;br /&gt;
SRCP Server direkt an die SESSION 45 weitergeleitet.&lt;br /&gt;
&lt;br /&gt;
 INFO 45 GM 25 CRCF CONFINFO 17 GA 1 ....&lt;br /&gt;
&lt;br /&gt;
Der Nachrichtenfluß ist im Bild dargestellt. CA ist die Command Session von&lt;br /&gt;
Client A, IA die Infosession. Client B (CRCF Server analog)&lt;br /&gt;
[[Bild:SRCP_GM.png]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Datei:SRCP_GM.png&amp;diff=11869</id>
		<title>Datei:SRCP GM.png</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Datei:SRCP_GM.png&amp;diff=11869"/>
				<updated>2007-01-19T08:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Nachrichtenfluß mit Generic Messages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nachrichtenfluß mit Generic Messages&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11856</id>
		<title>SRCP-Erweiterungen</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=SRCP-Erweiterungen&amp;diff=11856"/>
				<updated>2007-01-17T13:05:24Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: /* SRCP-Server-Suchdienst */ Beispiel für avahi Konfigurationsdatei&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Das initiale Posting==&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument soll eine Zusammenfassung der Diskussion „SRCP-Erweiterungen“ (erster Eintrag war am 27.12.2006) darlegen.&lt;br /&gt;
&lt;br /&gt;
Hier der initiale Eintrag:&lt;br /&gt;
&lt;br /&gt;
Hallo SRCP-Fans!&lt;br /&gt;
&lt;br /&gt;
ich entwickle bereits seit einiger Zeit Software für SRCP, habe mich&lt;br /&gt;
aber nie aktiv hier an Diskussionen beteiligt (ehrlich gesagt ist das&lt;br /&gt;
mein erster Eintrag in der Gruppe ;).&lt;br /&gt;
Während der Entwicklung kamen einige Ideen, die ich nun hier zur&lt;br /&gt;
Diskussion stellen möchte:&lt;br /&gt;
&lt;br /&gt;
# Ich hätte gern einen Dienst für Clients, mit dem sie den Server (bzw. dessen IP-Adresse) finden können. Da gibt es sicher mehrere Möglichkeiten, ich dachte an Broadcast oder an eine DHCP-Option.&lt;br /&gt;
# Stichwort CRCF: Was ist mit der Entwicklung? Ich hätte gern dieses Feature für SRCP und würde mich ggf. an der Mitentwicklung beteiligen.&lt;br /&gt;
&lt;br /&gt;
Treffen sich die SRCP-Entwickler eigentlich regelmäßig zu einer Art&lt;br /&gt;
Stammtisch?&lt;br /&gt;
&lt;br /&gt;
Gruß, Sven.&lt;br /&gt;
&lt;br /&gt;
Es gab eine rege Beteiligung an der Diskussion, beide Ideen wurden darin ausführlich diskutiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Server-Suchdienst==&lt;br /&gt;
Sehr schnell kam der Vorschlag, für diesen Bedarf einen [http://www.zeroconf.org/ Zeroconf]-Systemdienst (DNS-SD/mDNS) einzusetzen. Dieser ermöglicht die Suche bzw. das Veröffentlichen beliebiger Systemdiente durch das Versenden eines ServiceDiscovery-Multicasts. Es existieren hierfür derzeit zwei zueinander kompatible Implementierungen, die beide als OpenSource freigegeben sind:&lt;br /&gt;
&lt;br /&gt;
* [http://www.apple.com/macosx/features/bonjour/ Bonjour], von Apple für Mac, UNIXoide-Systeme und Windows.&lt;br /&gt;
* [http://avahi.org/ Avahi], als praktisch schon etablierter Standard für Linux.&lt;br /&gt;
&lt;br /&gt;
Unter anderem ist es hiermit möglich, Angaben über die Portnummer zu veröffentlichen, auf der der Server seinen Dienst anbietet. Da es für das SRCP-Protokoll noch keine offiziell über [http://www.iana.org/ IANA/IETF] reservierte Portnummer gibt, hat ein SRCP-Administrator problemlos die Freiheit, einen von der aktuellen SRCP-Spezifikation abweichenden Wert zu wählen. Auch die Anzahl der in einem Netz betriebenen SRCP-Server ist damit nicht eingeschränkt.&lt;br /&gt;
&lt;br /&gt;
Dem Administrator eines SRCP-Servers bleibt es überlassen, auf dem gleichen Rechner auch einen „Zeroconf“-Systemdienst einzurichten. Er muß, wenn er auf seiner Modellbahn entsprechende SRCP-Clients benutzen möchte, das Programm installieren und so konfigurieren, dass der SRCP-Dienst veröffentlicht wird. Die eigentliche Arbeit für die Nutzung des SD-Dienstes liegt beim Entwickler des „Einsteck-und-Spiel“-SRCP-Clients, denn dieser SRCP-Client muß nicht nur SRCP sprechen, sondern auch noch ein DNS-SD/mDNS-Client sein.&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine avahi Konfigurationsdatei. Abgelegt unter /etc/avahi/services/scrpd.service&lt;br /&gt;
(Kubuntu Linux). Die Einträge sind natürlich nur beispielhaft.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;service-group&amp;gt;&lt;br /&gt;
    &amp;lt;name replace-wildcards=&amp;quot;yes&amp;quot;&amp;gt;srcpd on %h&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;service protocol=&amp;quot;any&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;_srcp._tcp&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;host-name&amp;gt;srcp.example.com&amp;lt;/host-name&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;12345&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;txt-record&amp;gt;SRCP auf Mobaserver&amp;lt;/txt-record&amp;gt;&lt;br /&gt;
    &amp;lt;/service&amp;gt;&lt;br /&gt;
 &amp;lt;/service-group&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CRCF-Erweiterungen==&lt;br /&gt;
&lt;br /&gt;
Obwohl CRCF (Common Railroad Configuration Files) vor einigen Jahren einmal vorgeschlagen wurde, wurde es nicht angenommen, da es möglicherweise zu wenig Interessenten fand. Umso mehr Interessenten fanden sich nun in dieser Diskussion. Das deutet darauf hin, dass CRCF weiterhin ein Thema ist. Über die Idee von CRCF hinaus gab es einige weitgehendere Ideen dazu.&lt;br /&gt;
&lt;br /&gt;
Meine Anforderungen an CRCF für einen als SRCP-Client operierenden Handregler:&lt;br /&gt;
* Umständlich, in jedem Regler Informationen über Loks und Zubehör einzugeben&lt;br /&gt;
&lt;br /&gt;
* Anzeige von Klartextnamen anstatt von Adressen&lt;br /&gt;
&lt;br /&gt;
* Im Bezug auf den Server-Suchdienst könnte CRCF auch die Hostnamen (IP-Adressen) der SRCP-Server verwalten&lt;br /&gt;
&lt;br /&gt;
Weitere Anforderungen aus der Diskussion:&lt;br /&gt;
&lt;br /&gt;
* Verwaltung statischer Informationen&lt;br /&gt;
* Verwaltung dynamischer Informationen&lt;br /&gt;
* CRCF in ausdruckbarer Form&lt;br /&gt;
* Gliederung der CRCF&lt;br /&gt;
* SRCP-Server sollten Zugriff auf die CRCF erhalten&lt;br /&gt;
* Kommunikation zwischen Clients&lt;br /&gt;
&lt;br /&gt;
Aus diesen Anforderungen ergeben sich wichtige Fragestellungen:&lt;br /&gt;
&lt;br /&gt;
* Wo soll die CRCF liegen?&lt;br /&gt;
* Wie soll der Auskunftsdienst aussehen?&lt;br /&gt;
* Wie sollen dynamische Informationen von der CRCF verwaltet werden?&lt;br /&gt;
* Betrifft die Kommunikation zwischen Clients die CRCF?&lt;br /&gt;
&lt;br /&gt;
Folgendes Schema sollte als Grundlage für weitere Diskussionen dienen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Abbildung)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mein Vorschlag (auch wenn er etwas mehr Implementierungsaufwand erfordert):&lt;br /&gt;
&lt;br /&gt;
* Es wird ein CRCF-Server eingerichtet, der einen Auskunftsservice zur Verfügung stellt&lt;br /&gt;
* Dieser kann Bestandteil eines SRCP-Clients oder -Servers sein, greift aber nicht in das SRCP-Protokoll ein&lt;br /&gt;
* Er stellt statische Daten der Modellbahn als XML-Baum dar&lt;br /&gt;
* Alle Netzteilnehmer können über ein Kommunikationsprotokoll die Daten beim CRCF-Server abrufen&lt;br /&gt;
* Diese Kommunikationsprotokoll sollte einfach zu implementieren sein (Auf Grundlage von UDP beispielsweise)&lt;br /&gt;
&lt;br /&gt;
Für die Verwaltung von dynamischen Werten müßte man noch eine Erweiterung vorsehen.&lt;br /&gt;
Diese Erweiterung könnte so aussehen:&lt;br /&gt;
* Alle Netzteilnehmer können Daten an CRCF übermitteln&lt;br /&gt;
* Die CRCF sorgt dafür, dass die Daten konsistent sind&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==SRCP-Erweiterungen==&lt;br /&gt;
Der bisherige Umfang des SRCP-Protokolls definiert keine Möglichkeit, mit der SRCP-Clients untereinander direkt Informationen austauschen können. Ein Bedarf dafür ist jedoch durchaus gegeben, wie folgende Auflistung zeigt:&lt;br /&gt;
&lt;br /&gt;
* Zugmeldungen zwischen Stellwerken&lt;br /&gt;
* Zuglenkung über Zuglaufverfolgung (ZLV) und Zugnummernmeldeanlage (ZNA)&lt;br /&gt;
* Scripting-Schnittstelle für Stellwerk- und Zugsteuersoftware&lt;br /&gt;
* Austausch von statischen und dynamischen CRCF-Daten mit einer CRCF-Datenverwaltungsinstanz&lt;br /&gt;
* Koppelung mehrerer SRCP-Server zu einer Master/Slave-Konstellation&lt;br /&gt;
&lt;br /&gt;
Zur Realisierung dieses neu zu implementierenden Informationsweges wurden folgende Konzepte vorgeschlagen:&lt;br /&gt;
&lt;br /&gt;
(TODO: Auflistung mit Erläuterung)&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=10540</id>
		<title>Digitalprojekt</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=10540"/>
				<updated>2006-01-21T21:08:57Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Verweise auf alte Versionen entfernt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich &amp;amp;uuml;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&amp;amp;ouml;nnen ausgetauscht werden, falls sich die Anforderungen &amp;amp;auml;ndern. Dies erfordert, da&amp;amp;szlig; zwischen den Komponenten eine lose Koppelung besteht. Diese Koppelung wird durch das Kommunikationsprotokoll SRCP erreicht. Die Kommunikation zwischen den einzelnen Komponenten erfolgt mit herk&amp;amp;ouml;mmlicher ''Internet-Technik''.&lt;br /&gt;
&lt;br /&gt;
Ein funktionsf&amp;amp;auml;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 Boostern. Der Client kommuniziert mit Hilfe von SRCP nur mit dem Server und stellt i.d.R. ein Steuerungs- oder Bedienprogramm dar.&lt;br /&gt;
&lt;br /&gt;
Obwohl sehr viele, der derzeit verf&amp;amp;uuml;gbaren Programme, die man dem '''DER_MOBA''' Digitalprojekt zuordnen kann, f&amp;amp;uuml;r das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grunds&amp;amp;auml;tzlich unabh&amp;amp;auml;ngig von einem PC-Betriebssystem. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere k&amp;amp;ouml;nnen mit wenig Aufwand portiert werden.&lt;br /&gt;
&lt;br /&gt;
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgef&amp;amp;uuml;hrt. Informationen zu den einzelnen Programmen werden &amp;amp;uuml;berlichweise vom jeweiligen Author &amp;amp;uuml;ber dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen &amp;amp;Uuml;berblick &amp;amp;uuml;ber die verf&amp;amp;uuml;gbare Soft- und Hardware bietet.&lt;br /&gt;
&lt;br /&gt;
= Simple Railroad Command Protocol (SRCP) =&lt;br /&gt;
&lt;br /&gt;
* Protokollspezifikation SRCP&amp;lt;br\&amp;gt;Die aktuelleste Protokollspezifikation von SRCP: [http://srcpd.sourceforge.net/srcp/srcp.html [HTML]][http://srcpd.sourceforge.net/srcp/srcp.pdf [PDF]]&amp;lt;br\&amp;gt;SRCP 0.8.x ist inkompatibel zu fr&amp;amp;uuml;heren SRCP-Versionen. Bereits vorhandene Software f&amp;amp;uuml;r SRCP 0.7.x wird im Laufe der Zeit auf SRCP 0.8.x umgestellt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.3 [[SRCP - Simple Railroad Command Protocol 0.7.3 | [Artikel]]] [http://www.der-moba.de/Digital/srcp-0.7.3/srcp.pdf [pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nat&amp;amp;uuml;rlich ist es w&amp;amp;uuml;nschenswert, da&amp;amp;szlig; sich SRCP auch &amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
# Sowohl in der Software, wie auch in der zugeh&amp;amp;ouml;rigen Dokumentation wird auf die SRCP-Entwicklergruppe und diese Internetseite verwiesen.&lt;br /&gt;
# Es findet keine eigenm&amp;amp;auml;chtige Erweiterung von SRCP statt. Stattdessen werden Erweiterungen mit der SRCP Entwicklergruppe diskutiert und offiziell in SRCP integriert bzw. verworfen.&lt;br /&gt;
# Bei kommerziellem Erfolg des jeweiligen Produktes w&amp;amp;uuml;rden wir es gerne sehen, wenn sich die Entwickler &amp;amp;uuml;ber eine Spende zur Unterst&amp;amp;uuml;tzung von '''DER_MOBA''' Gedanken machen ;-).&lt;br /&gt;
&lt;br /&gt;
== SRCP-Server ==&lt;br /&gt;
&lt;br /&gt;
=== Aktiv gepflegte ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server werden aktiv weiterentwickelt. Wer sie einsetzt, hat einen&lt;br /&gt;
einsatzbereiten und leistungsf&amp;amp;auml;higen Server und kann bei jeglichen&lt;br /&gt;
Problemen und Herausforderungen auf Hilfe und Unterst&amp;amp;uuml;tzung &lt;br /&gt;
setzen.&lt;br /&gt;
&lt;br /&gt;
* '''DDW Server''' - DigitalDirekt-Server f&amp;amp;uuml;r Windows.&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''erddcd''' - DigitalDirekt-Server f&amp;amp;uuml;r Linux&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt;'''Neu: Version xmas-2005 mit Unterstützung für Linux Kernel 2.6 released!'''&amp;lt;br /&amp;gt;Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes]. &lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Server''' - SRCP-Server f&amp;amp;uuml;r Windows und die Intellibox.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''srcpd''' - SRCP-Server f&amp;amp;uuml;r Linux/FreeBSD&amp;lt;br /&amp;gt;Kann eingesetzt werden, um mit SRCP-Clients Anlagen mit Intellibox, M&amp;amp;auml;rklin Interface 6051, Lenz LI100,  Booster direkt am seriellen Port (RS232), Littfinski HSI-S88, S88-Module am Parallelport und/oder Zimo MX1 zu steuern. Weitere Module für seltener vorkommende Schnittstellen (CAN-Bus, I2C) sind schon realisiert. Es können auch mehrere Geräte gleichzeitig (z.B. zwei Intelliboxen) eingesetzt werden.&amp;lt;br /&amp;gt; Kontakt: [mailto:srcpd-devel@lists.sourceforge.net srcpd-devel@lists.sourceforge.net]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net Projekt-Seiten] bei SourceForge.&lt;br /&gt;
&lt;br /&gt;
=== Einsetzbar aber nicht mehr weiterentwickelt ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server funktionieren, der oder die Autoren halten sie f&amp;amp;uuml;r &amp;quot;gut genug&amp;quot; und wollen zumindest&lt;br /&gt;
derzeit nichts weiter ver&amp;amp;auml;ndern.&lt;br /&gt;
&lt;br /&gt;
* zur Zeit sind keine Projekte mit diesem Status vorhanden!&lt;br /&gt;
&lt;br /&gt;
=== Technologiestudien ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server sind entstanden um Funktionen nicht nur am gr&amp;amp;uuml;nen Tisch testen zu k&amp;amp;ouml;nnen. Sie&lt;br /&gt;
k&amp;amp;ouml;nnen auch als Anregung f&amp;amp;uuml;r Weiterentwicklungen dienen. &lt;br /&gt;
&lt;br /&gt;
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&amp;amp;auml;t. Derzeit ist es nicht f&amp;amp;uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&amp;amp;auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&amp;amp;uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&amp;amp;auml;higen SRCP-Server sucht, sollte sich die folgenden Produkte ansehen &amp;lt;br /&amp;gt; Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd Autors].&lt;br /&gt;
&lt;br /&gt;
== SRCP-Clients ==&lt;br /&gt;
&lt;br /&gt;
* '''J-Man''' - manuelle Steuerung von Lokomotiven und Magnetartikel mit grafischer Oberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''loco-panel''' - Monitor zur &amp;amp;Uuml;berwachung aller aktiven Loks.&amp;lt;br /&amp;gt; &amp;lt;!-- &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;ddsh&amp;lt;/B&amp;gt; - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÃ¤ufen.&amp;lt;BR&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''phpTrainCtrl f&amp;amp;uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer&amp;lt;br /&amp;gt;Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &amp;amp;uuml;bersichtlicher Bedienoberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt; Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den 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.&lt;br /&gt;
&lt;br /&gt;
* '''SpDrS60''' - grafisches Gleisbildstellpult nach Bundesbahnvorbild mit vorbildgerechter Fahrstraßensicherungslogik.&amp;lt;br /&amp;gt; Kontakt: [mailto:stefan.preis@wdr.de Stefan Preis] oder [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* '''M6051emu''' - Emulation des M&amp;amp;auml;rklin Interfaces 6051 f&amp;amp;uuml;r '''erddcd'''.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;amp;amp;Co) mit '''erddcd''' betrieben werden sollen.&amp;lt;br /&amp;gt; Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&amp;amp;auml;che (rcman)&amp;lt;br /&amp;gt; Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* Programmbibliothken für '''TCL/Tk''' und '''Python''' - Sammlung n&amp;amp;uuml;tzlicher Routinen und Prozesse f&amp;amp;uuml;r den Selbstprogrammierer: [http://srcpd.sourceforge.net/clients Client-Seiten des srcpd]&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Recorder''' - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie sp&amp;amp;auml;ter wieder ab.&amp;lt;br /&amp;gt; Kontakt: [mailto:mtrute@web.de Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Tester''' - SRCP-Befehle mit einem Web-Server und PHP generieren.&amp;lt;br /&amp;gt; Kontakt: [mailto:martin@familiewolf.de Martin Wolf]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;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] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Gplan''' - Gleispl&amp;amp;auml;ne erstellen und Magnetartikel steuern (f&amp;amp;uuml;r Windows und Linux).&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&amp;amp;uuml;r Windows) &amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JTrain''' - grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdekoder mit grafischem Stellpult (f&amp;amp;uuml;r Windows und Linux) &amp;lt;br /&amp;gt; Kontakt: [mailto:mail@jtrain.de Werner Kunkel]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.jtrain.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, von [mailto:ibruell@users.berlios.de Ingo Bruell] betreute [http://developer.berlios.de/projects/jtrain/ Projektseite].&lt;br /&gt;
&lt;br /&gt;
* '''Java DCC Network Client (ab Version 2.1)''' - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN&amp;lt;br /&amp;gt; Kontakt: [mailto:H.Karoska@t-online.de Helge Karoska]&amp;lt;br /&amp;gt; Java-SRCP-Client f&amp;amp;uuml;r den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubeh&amp;amp;ouml;r einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.t-online.de/home/h.karkoska/DCC/DCCSET.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''LD-X-Programmer''' - Programm zur Programmierung von Dekodern der Firma Tams Elektronik (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:geramb@aon.de Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client (SRCP 0.7.3) f&amp;amp;uuml;r Windows zur Programmierung von Tams-Dekodern. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/ld-x-programmer.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TRAINer''' - Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows zur Anlagensteuerung. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.trainer.at.tc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP-Pakete f&amp;amp;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.&amp;lt;br /&amp;gt; Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Angebot und die M&amp;amp;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).&lt;br /&gt;
&lt;br /&gt;
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:ganter@ganter.at Fritz Ganter]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''RocRail''' - Programm zum steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@rocrail.net Rob Versluis]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.rocrail.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''MOBA-Package''' - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:selandro@users.sourceforge.net Roman Lauer]&amp;lt;br /&amp;gt; SRCP-Tools f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://mobapackage.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''EnjoyTheTime''' - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:mgeramb@users.sourceforge.net  Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/enjoythetime.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Railroad Express''' - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@miniware.nl  Fred Stevens]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.miniware.nl/de/rre/index.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''dras/Kdigirail''' - SRCP-Client zum Steuern von Modellbahnanlagen (Linux-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:schmischi@users.sourceforge.net  Frank Schmischke]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Linux &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/clients/dras/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
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:&lt;br /&gt;
* Ein Kanal zum Senden von Steuerbefehlen an die Anlage&lt;br /&gt;
* Ein Kanal zum Empfang von Rückmeldungen von der Anlage&lt;br /&gt;
&lt;br /&gt;
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 genutzt.&lt;br /&gt;
&lt;br /&gt;
Zum Empfang von Rückmeldungen der Anlage benötigt man ein S88-Bus-System, das über Kabelverbindungen und eine 5&amp;amp;nbsp;V-Spannungsversorgung an die parallele Schnittstelle angeschlossen wird.&lt;br /&gt;
&lt;br /&gt;
Ein übersichtliche Zusammenstellung der für diese Anbindungen notwendigen elektischen Verbindungen gibt es von Holger Seider: http://home.snafu.de/mgrafe/Anleitung_Server.htm&lt;br /&gt;
&lt;br /&gt;
= Common Railroad Configuration Files (CRCF) =&lt;br /&gt;
&lt;br /&gt;
Ein Entwurf f&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* Entwurf [[CRCF - Common Railroad Configuration Files 0.2.0 | CRCF 0.2.0 ]] / [[CRCF 0.2.0 (Muster) | CRCF Beispiel]]&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Entwurf [[CRCF - Common Railroad Configuration Files 0.1 | CRCF 0.1.0 ]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitalbetrieb]]&lt;br /&gt;
[[Kategorie:SRCP]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Newsgroup&amp;diff=9879</id>
		<title>Newsgroup</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Newsgroup&amp;diff=9879"/>
				<updated>2006-01-07T16:07:00Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: web.de hat kein Newservice mehr&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Newsgroup - was ist das?= &lt;br /&gt;
Wer heute vom &amp;amp;raquo;Internet&amp;amp;laquo; spricht, meint meistens das Lesen von Seiten des World-Wide Web (WWW), die über eine Adresse (z.B. www.der-moba.de) ausgewählt werden und mit einem Webbrowser dargestellt werden. So wie auch diese hier.&lt;br /&gt;
&lt;br /&gt;
Inzwischen gibt es auf vielen dieser Seiten auch sogenannte Foren. Das sind Diskussionsrunden, in denen man Fragen zu bestimmten Themen stellen kann oder auf solche Fragen antwortet.&lt;br /&gt;
 &lt;br /&gt;
Die Fragen oder Antworten werden in eine Maske eingetragen; nach dem Absenden werden sie auf dem Server des Seitenanbieters passend einsortiert und das Ganze im Zusammenhang als Webseite wieder angezeigt.&lt;br /&gt;
Obwohl man zum Lesen oder Schreiben online sein muß, findet die &amp;amp;raquo;Diskussion&amp;amp;laquo; zeitversetzt statt. Es gibt keinen festen zeitlichen Zusammenhang zwischen Frage und Antwort, und man spricht auch immer alle Leser an. Die Beiträge bleiben oft nur über einen begrenzten Zeitraum gespeichert, welcher vom Betreiber des Forums festgelegt wird.&lt;br /&gt;
&lt;br /&gt;
Eine andere bekannte Form der Diskussion im Internet ist der &amp;amp;raquo;Chat&amp;amp;laquo;, hier sind die Diskussionsteilnehmer gleichzeitig online und können direkt miteinander kommunizieren. Auch Chats sind meist in Webseiten eingebunden, so daß Teilnehmer nicht zwingend einen Chat-Client benötigen, sondern sich auch mit einem Webbrowser beteiligen können.&lt;br /&gt;
&lt;br /&gt;
Aber das Internet bietet ausser diesem Bereitstellen und Verteilen von Webseiten noch andere Dienste; praktisch jeder nutzt einen davon: E-Mail. Um an diesem Dienst teilzunehmen, braucht man ein anderes Programm als den Webbrowser, nämlich ein Mailprogramm (MUA, Mail User Argent).&lt;br /&gt;
&lt;br /&gt;
Analog dazu - und schon viel älter als die Web-Foren - gibt es das [http://de.wikipedia.org/wiki/Usenet Usenet], über das die Teilnehmer in den sogenannten Newsgroups miteinander kommunizieren.&lt;br /&gt;
Hierzu werden mit einem speziellen Programm, dem Newsreader, Nachrichten in der gleichen Art gesendet wie E-Mails. Wie bei Mail-Servern üblich, werden auch News-Server von Internet-Providern (z.B. t-online, arcor, AOL o.ä) betrieben; alle News-Server weltweit tauschen permanent ihre Nachrichten aus, so daß sie (mit einer kleinen zeitlichen Verzögerung) immer denselben Stand anzeigen.&lt;br /&gt;
&lt;br /&gt;
Das ganze hat also wesentlich mehr Ähnlichkeit mit E-Mails als mit Webseiten.&lt;br /&gt;
Deshalb sind die Newsreader auch oft Bestandteil der Mail-Programme (so bei Netscape oder Outlook-Express), und wie bei diesen muß man einen Server-Account anlegen, zu dessen Nutzung man Namen, E-Mail-Adresse (Passwort) und die Internet-Adresse des News-Servers angeben muß.&lt;br /&gt;
&lt;br /&gt;
=Zugang zu den Newsgroups=&lt;br /&gt;
Um an einer oder mehrere Newsgroups teilzunehmen, braucht man Zugriff auf einen News-Server.&lt;br /&gt;
Den Namen des Servers bekommt man von seinem Internet-Provider.&lt;br /&gt;
Es gibt aber auch frei zugängliche News-Server, die providerunabhängig sind; manche sind kostenfrei, bei anderen muß man für den Zugang zahlen.&lt;br /&gt;
&lt;br /&gt;
=Abonnieren einer Newsgroup=&lt;br /&gt;
Es gibt allein in Deutschland tausende von Newsgroups zu den unterschiedlichsten Themen. Sie werden auf Antrag von einem neutralen Gremium eröffnet und in eine Namenshierarchie einsortiert.&lt;br /&gt;
&lt;br /&gt;
Die Internet-Seite www.der-moba.de wird gestaltet von den Teilnehmern der Newsgroup de.rec.modelle.bahn, d.h. deutschland/recreation/modelle/bahn. Es gibt z.B. auch de.comp.software oder de.rec.fotografie.   &lt;br /&gt;
&lt;br /&gt;
Wenn man sich auf einem Newsserver angemeldet hat kann man aus einer Liste aller Newsgroups&lt;br /&gt;
eine oder mehrere &amp;quot;abonnieren&amp;quot;, für diese bekommt man dann alle Beiträge angezeigt und kann auch antworten. Eine Anmeldung für eine spezielle Newsgroup gibt es nicht, jeder kann teilnehmen.&lt;br /&gt;
&lt;br /&gt;
Das klingt alles zunächst etwas ungewohnt, aber wer Mails schreiben kann wird mit einem Newsreader gut zurechtkommen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Besonderheiten von Newsgroups=&lt;br /&gt;
Die Beiträge enthalten nur Text (ASCII, kein HTML!) keine Zeichnungen, keine verschiedenen Schriftarten und keine Anhänge (Bilder o.ä). Wer etwas &amp;amp;raquo;zeigen&amp;amp;laquo; will, muß eine Adresse im WWW angeben (URL), bei der die anderen nachschauen können.&lt;br /&gt;
&lt;br /&gt;
Es lesen und schreiben sehr viele Teilnehmer weltweit zu diesem Thema (keine&lt;br /&gt;
Angst, auf &amp;amp;raquo;de.rec.modelle.bahn&amp;amp;laquo; wird deutsch geschrieben, obwohl&lt;br /&gt;
Teilnehmer z.B. aus USA oder Dänemark mitmachen). Die Chance, irgendjemanden zu finden, der zu einer sehr speziellen Frage Stellung nehmen kann, ist daher sehr groß.&lt;br /&gt;
&lt;br /&gt;
Die Beiträge der Newsgroup werden in sogenannten &amp;amp;raquo;Threads&amp;amp;laquo; (Themenbäumen, Diskussionsfäden)&lt;br /&gt;
verwaltet. So kann man - ein geeignetes Programm/Web-Portal vorausgesetzt -&lt;br /&gt;
genau sehen, wer wem geantwortet hat; denn die Beiträge beziehen sich ja&lt;br /&gt;
aufeinander. Und weil an bestimmten Punkten die Meinungen&lt;br /&gt;
auseinander gehen können oder Nebenthemen in die&lt;br /&gt;
Diskussion wandern, ist in Baumform dargestellt wer wem&lt;br /&gt;
geantwortet hat.&lt;br /&gt;
&lt;br /&gt;
Man kann am Betreff des Beitrages abschätzen ob, man ihn lesen&lt;br /&gt;
will oder nicht. Wer als &amp;amp;raquo;N-Bahner anlog&amp;amp;laquo; nichts von &amp;amp;raquo;Digital&amp;amp;laquo; wissen&lt;br /&gt;
will, ignoriert einfach alle Beiträge über digitale Themen oder&lt;br /&gt;
andere Baugrößen. Wenn in einem Thread das Thema wechselt, so wird&lt;br /&gt;
normalerweise der Betreff korrigiert.&lt;br /&gt;
&lt;br /&gt;
Man kann Newsgroups Off-Line lesen und die Beiträge&lt;br /&gt;
herunterladen. E-Mail-Programme und Webbrowser sowie spezielle Programme zum&lt;br /&gt;
Abonnieren von Newsgroups bieten die Möglichkeit, die jeweils neuen Beiträge&lt;br /&gt;
seit dem letzen &amp;amp;raquo;Nach-Schauen&amp;amp;laquo; in einem Rutsch von den&lt;br /&gt;
Servern zu laden, so wie man es mit seinen E-Mails ja auch&lt;br /&gt;
machen kann. Die Vorteile liegen auf der Hand:&lt;br /&gt;
Es geht es viel schneller, als bei Webforen, die allein&lt;br /&gt;
für die Werbung viel Zeit verschwenden. Zudem ist es übersichtlicher und die&lt;br /&gt;
Online-Kosten sinken. Man kann in Ruhe lesen und schreiben.&lt;br /&gt;
&lt;br /&gt;
Die einzelnen Beiträge (Postings) sind vergleichbar zu einer E-Mail; man kann die für einen persönlich interessanten Beiträge zusammen mit sonstiger E-Mail&lt;br /&gt;
gemeinsam auf dem eigenen Rechner (in E-Mail-Ordnern) abspeichern und dort aufbewahren.&lt;br /&gt;
&lt;br /&gt;
=Newsgroups und Google=&lt;br /&gt;
&lt;br /&gt;
Die Beiträge in der Newsgroup werden auf den News-Servern nur eine gewisse Zeit lang vorgehalten.&lt;br /&gt;
Aber es gibt Server im Internet, die alle News-Beiträge sammeln und dann in einem recherchierbaren Archiv ablegen.&lt;br /&gt;
Der bekannteste ist sicher Google.&lt;br /&gt;
&lt;br /&gt;
Mit der Suchmaschine http://groups.google.de/ kann&lt;br /&gt;
man Beiträge suchen, die Jahre alt sind.&lt;br /&gt;
Und zwar nach Stichworten im Titel oder im Text, nach Absender,&lt;br /&gt;
nach Datum oder Zeitraum. Es handelt sich also um ein ständig&lt;br /&gt;
wachsendes Archiv mit Weisheiten zum Thema der Newsgroup.&lt;br /&gt;
&lt;br /&gt;
Die dortige Newsgroup-Suche in dem Navigationsrahmen links&lt;br /&gt;
sucht beispielsweise im Google-Archiv der Newsgroup &lt;br /&gt;
&amp;amp;raquo;de.rec.modelle.bahn&amp;amp;laquo; nach den eingegebenen Stichworten.&lt;br /&gt;
Die Chancen sind groß, Antwort auf alle möglichen &lt;br /&gt;
Fragen zum Thema Modellbahn zu finden.&lt;br /&gt;
&lt;br /&gt;
=Tips für Einsteiger=&lt;br /&gt;
&lt;br /&gt;
Um die Newsgroup nun nicht immer mit den selben&lt;br /&gt;
(Einsteiger-) Fragen zu belasten, gibt es zwei Tricks &lt;br /&gt;
a) www.der-moba.de lesen &lt;br /&gt;
b) Die Suchmaschiene  http://groups.google.de/&lt;br /&gt;
Vielleicht wurde das Thema ja erst kürzlich erörtert?&lt;br /&gt;
&lt;br /&gt;
=Server und Newsreader=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=In einer Newsgroup schreiben=&lt;br /&gt;
&lt;br /&gt;
Die Newsgroup lebt übrigens vom Beiträge '''schreiben'''.&lt;br /&gt;
Auch wenn es eine Art &amp;quot;harten Kern&amp;quot; an gibt, die &amp;amp;raquo;Regulars&amp;amp;laquo;.&lt;br /&gt;
Das sind die Leute, welche recht häufig Beiträge schreiben&lt;br /&gt;
(posten). Sie haben meist ein oder mehrere Spezialthemen&lt;br /&gt;
und helfen gerne mit ihrem Wissen. Dennoch sollte jeder sein&lt;br /&gt;
(neuestes) Wissen und seine Erfahrung einbringen. Auch die&lt;br /&gt;
&amp;amp;raquo;alten Hasen&amp;amp;laquo; lernen gerne etwas dazu.&lt;br /&gt;
&lt;br /&gt;
In einer Newsgroup werden die Beiträge (und ihre Betreffs) in einer&lt;br /&gt;
bestimmten Form geschrieben. Diese erhöht die Lesbarkeit der&lt;br /&gt;
Beiträge (und die Lust der Leser zu antworten).&lt;br /&gt;
Tips zu dieser Form findet man im FAQ der Newsgroup auf&lt;br /&gt;
http://www.der-moba.de/Inhalt/Artikelverzeichnis/DER_MOBA_FAQ.html&lt;br /&gt;
und auf http://got.to/quote.&lt;br /&gt;
Um ein &amp;amp;raquo;Gefühl&amp;amp;laquo; für das &amp;amp;raquo;Funktionieren&amp;amp;laquo; der Newsgroup&lt;br /&gt;
zu bekommen, sollte man erst einmal einige Zeit mitlesen, bevor man einen Beitrag schreibt.&lt;br /&gt;
&lt;br /&gt;
In jedem Fall sollte man auch die Gruppe &amp;amp;raquo;de.newusers.infos&amp;amp;laquo; lesen;&lt;br /&gt;
diese enthält nur ganz wenige Beiträge, die aber für ein&lt;br /&gt;
problemloses Miteinander unbedingt wichtig sind.&lt;br /&gt;
&lt;br /&gt;
Übrigens:&lt;br /&gt;
Dein Beitrag wird weltweit von vielen gelesen. Und das nicht nur&lt;br /&gt;
für ein paar Tage.&lt;br /&gt;
Über das groups.google.de-Archiv, ist dein Beitrag auch nach Jahren&lt;br /&gt;
noch allgemein zugänglich - man kann also auch mit alten eigenen&lt;br /&gt;
Äußerungen konfrontiert werden!&lt;br /&gt;
&lt;br /&gt;
Und noch ein Tipp:&lt;br /&gt;
Es gibt Firmen, welche die in Newsgroups verwendeten E-Mail-Adressen&lt;br /&gt;
sammeln. Diesen Adressen wird dann Werbung zugesandt (Spam).&lt;br /&gt;
Um die Werbung gleich filtern zu können, ist es durchaus sinnvoll&lt;br /&gt;
sich bei einem E-Mail-Provider (z.B. freenet.de, gmx.de, web.de)&lt;br /&gt;
eine E-Mail-Adresse einzurichten, die man nur zu Posten in der&lt;br /&gt;
Newsgroup verwendet. Aber bitte dennoch den &amp;amp;raquo;Realnamen&amp;amp;laquo; für die&lt;br /&gt;
Anzeige eintragen.&lt;br /&gt;
&lt;br /&gt;
Wer nur ab und zu mitlesen will (reinschnuppern), kann die Beiträge &lt;br /&gt;
der Newsgroup auf dem Server mit einem WWW-basierten Portal wie &lt;br /&gt;
http://usenet.freenet.de/ oder http://groups.google.de/ ansehen.&lt;br /&gt;
&lt;br /&gt;
Wer die Gruppe regelmäßig lesen will, sollte aber einen eigenen&lt;br /&gt;
Newsreader installieren. Für den Einstieg eignet sich Netscape ab&lt;br /&gt;
Version 4.7.&lt;br /&gt;
http://home.netscape.com/de/download/download_comm.html.&lt;br /&gt;
&lt;br /&gt;
Outlook Express trübt die Freude an Newsgroups leider durch eine&lt;br /&gt;
Reihe von Fehlern recht schnell und wird deshalb auch für den Einstieg&lt;br /&gt;
nicht empfohlen. Sehr gute Anleitungen zum Einrichten gibt es unter&lt;br /&gt;
http://news.cis.dfn.de/de/config.html.&lt;br /&gt;
Unter http://news.cid.dfn.de/ kann man sich auch anmelden,&lt;br /&gt;
falls der eigene Provider keinen brauchbaren Newsserver anbietet.&lt;br /&gt;
Das kostet ca. 10,- EUR pro Jahr.&lt;br /&gt;
&lt;br /&gt;
=Beitäge suchen=&lt;br /&gt;
&lt;br /&gt;
Solltest du Beiträge finden, die Fragen offen lassen, oder&lt;br /&gt;
dich noch wissensdurstiger machen:&lt;br /&gt;
Wir laden dich herzlich ein, dir die Mühe zu machen, und in der&lt;br /&gt;
newsgroup deine Frage zu stellen &lt;br /&gt;
&lt;br /&gt;
Dann erhältst du auch immer die &amp;quot;neueste Information&amp;quot; und&lt;br /&gt;
Wissen welches der Autor allein gar nicht haben kann.&lt;br /&gt;
Eine direkte email an den Autor richtet man normalerweise nur,&lt;br /&gt;
wenn daß, was Du zu dem Beitrag fragen oder sagen willst,&lt;br /&gt;
wirklich niemanden anderen als den Autor interessiert.&lt;br /&gt;
&lt;br /&gt;
Tip:&lt;br /&gt;
Wenn du den Autor nun doch unbedingt direkt anmailen willst:&lt;br /&gt;
hilf ihm bitte mit folgenden Worten auf die Sprünge:&lt;br /&gt;
&amp;quot; Ich habe deinen Beitrag mit der Google Suchmaschine&lt;br /&gt;
auf &amp;quot;Der-Moba.de&amp;quot; gefunden. Kannst du bitte.....&amp;quot;&lt;br /&gt;
(zitiere zusammen mit deiner Frage auch die gefundene Stelle)&lt;br /&gt;
&lt;br /&gt;
= Links zum Thema Usenet =&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
&lt;br /&gt;
*[http://www.forteinc.com Free Agent] Ein kostenloser Newsreader&lt;br /&gt;
&lt;br /&gt;
Informationen:&lt;br /&gt;
&lt;br /&gt;
*[http://www.boku.ac.at/news/newsd.html Zentraler Informatikdienst Wien]&lt;br /&gt;
&lt;br /&gt;
*[http://www.wschmidhuber.de/usenet/index.html W.Schmidhuber] u.a. warum man mit seinem echten Namen ins Usenet soll..&lt;br /&gt;
&lt;br /&gt;
=DER_MOBA-Chat=&lt;br /&gt;
&lt;br /&gt;
Chatten oder talken, was ist das?&lt;br /&gt;
&lt;br /&gt;
Ganz einfach: Es treffen sich mehrere Personen und reden miteinander. Nun ist das im Internet nicht ganz so einfach wie im wirklichen Leben. Die Personen treffen sich, in dem sie sich auf einem bestimmten Rechner - dem Chat- oder Talkserver - anmelden.&lt;br /&gt;
&lt;br /&gt;
Der DER_MOBA-chat findet sich als IRC-Chat unter&lt;br /&gt;
* Server: irc.freenode.net&lt;br /&gt;
* Channel: #mobatalk&lt;br /&gt;
&lt;br /&gt;
Geeignete Programme sind zum Beispiel XChat,Mirc, Sirc usw...&lt;br /&gt;
Regelmäßige Benutzer möchten bitte ihren Namen registrieren; das geht im Chat ganz einfach mit&lt;br /&gt;
/msg nickserv register&lt;br /&gt;
Beim Verbinden muß dann, bevorzugt automatisch durch den IRC-Client, in dem man das einstellen können sollte, ein /msg nickserv identify gesendet werden, damit man sich als Inhaber des Namens ausweisen kann.&lt;br /&gt;
&lt;br /&gt;
Mehr zum Thema Namen findet sich auf http://freenode.net/faq.shtml&lt;br /&gt;
&lt;br /&gt;
IRC-Kurzanleitung unter http://www.uni-hildesheim.de/RZ/DOC/irc/irc_go.html&lt;br /&gt;
&lt;br /&gt;
Wie bisher, ist Chatzeit jeden Donnerstag ab 21:00 Uhr, was aber keinen davon abhalten soll, auch zu anderen Zeiten mal hinzusehen!&lt;br /&gt;
[[Kategorie:Hauptkategorie]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9663</id>
		<title>Digitalprojekt</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9663"/>
				<updated>2005-10-06T17:59:23Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: /* SRCP-Clients */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich &amp;amp;uuml;ber die Newsgroup '''de.rec.modelle.bahn''' koordinieren. Ziel ist die Schaffung eines skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems. Einzelne Komponenten dieses Systems k&amp;amp;ouml;nnen ausgetauscht werden, falls sich die Anforderungen &amp;amp;auml;ndern. Dies erfordert, da&amp;amp;szlig; zwischen den Komponenten eine lose Koppelung besteht. Diese Koppelung wird durch das Kommunikationsprotokoll SRCP erreicht. Die Kommunikation zwischen den einzelnen Komponenten erfolgt mit herk&amp;amp;ouml;mmlicher ''Internet-Technik''.&lt;br /&gt;
&lt;br /&gt;
Ein funktionsf&amp;amp;auml;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 Boostern. Der Client kommuniziert mit Hilfe von SRCP nur mit dem Server und stellt i.d.R. ein Steuerungs- oder Bedienprogramm dar.&lt;br /&gt;
&lt;br /&gt;
Obwohl sehr viele, der derzeit verf&amp;amp;uuml;gbaren Programme, die man dem '''DER_MOBA''' Digitalprojekt zuordnen kann, f&amp;amp;uuml;r das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grunds&amp;amp;auml;tzlich unabh&amp;amp;auml;ngig von einem PC-Betriebssystem. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere k&amp;amp;ouml;nnen mit wenig Aufwand portiert werden.&lt;br /&gt;
&lt;br /&gt;
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgef&amp;amp;uuml;hrt. Informationen zu den einzelnen Programmen werden &amp;amp;uuml;berlichweise vom jeweiligen Author &amp;amp;uuml;ber dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen &amp;amp;Uuml;berblick &amp;amp;uuml;ber die verf&amp;amp;uuml;gbare Soft- und Hardware bietet.&lt;br /&gt;
&lt;br /&gt;
= Simple Railroad Command Protocol (SRCP) =&lt;br /&gt;
&lt;br /&gt;
* Protokollspezifikation SRCP&amp;lt;br\&amp;gt;Die aktuelleste Protokollspezifikation von SRCP: [http://srcpd.sourceforge.net/srcp/srcp.html [HTML]][http://srcpd.sourceforge.net/srcp/srcp.pdf [PDF]]&amp;lt;br\&amp;gt;SRCP 0.8.x ist inkompatibel zu fr&amp;amp;uuml;heren SRCP-Versionen. Bereits vorhandene Software f&amp;amp;uuml;r SRCP 0.7.x wird im Laufe der Zeit auf SRCP 0.8.x umgestellt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Protokollspezifikation SRCP 0.8.0 [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.3 [http://www.der-moba.de/Digital/srcp-0.7.3/srcp.html [HTML]][http://www.der-moba.de/Digital/srcp-0.7.3/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.2 [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.1 [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.0 [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.1 [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.0 [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp-0.6.0.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.5.0 [http://www.der-moba.de/Digital/srcp-0.5.0/srcp-0.5.0.txt [plain text]]&lt;br /&gt;
&lt;br /&gt;
Nat&amp;amp;uuml;rlich ist es w&amp;amp;uuml;nschenswert, da&amp;amp;szlig; sich SRCP auch &amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
# Sowohl in der Software, wie auch in der zugeh&amp;amp;ouml;rigen Dokumentation wird auf die SRCP-Entwicklergruppe und diese Internetseite verwiesen.&lt;br /&gt;
# Es findet keine eigenm&amp;amp;auml;chtige Erweiterung von SRCP statt. Stattdessen werden Erweiterungen mit der SRCP Entwicklergruppe diskutiert und offiziell in SRCP integriert bzw. verworfen.&lt;br /&gt;
# Bei kommerziellem Erfolg des jeweiligen Produktes w&amp;amp;uuml;rden wir es gerne sehen, wenn sich die Entwickler &amp;amp;uuml;ber eine Spende zur Unterst&amp;amp;uuml;tzung von '''DER_MOBA''' Gedanken machen ;-).&lt;br /&gt;
&lt;br /&gt;
== SRCP-Server ==&lt;br /&gt;
&lt;br /&gt;
=== Aktiv gepflegte ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server werden aktiv weiterentwickelt. Wer sie einsetzt, hat einen&lt;br /&gt;
einsatzbereiten und leistungsf&amp;amp;auml;higen Server und kann bei jeglichen&lt;br /&gt;
Problemen und Herausforderungen auf Hilfe und Unterst&amp;amp;uuml;tzung &lt;br /&gt;
setzen.&lt;br /&gt;
&lt;br /&gt;
* '''DDW Server''' - DigitalDirekt-Server f&amp;amp;uuml;r Windows.&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Server''' - SRCP-Server f&amp;amp;uuml;r Windows und die Intellibox.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''srcpd''' - SRCP-Server f&amp;amp;uuml;r Linux/FreeBSD&amp;lt;br /&amp;gt;Kann eingesetzt werden, um mit SRCP-Clients Anlagen mit Intellibox, M&amp;amp;auml;rklin Interface 6051, Lenz LI100,  Booster direkt am seriellen Port (RS232), Littfinski HSI-S88, S88-Module am Parallelport und/oder Zimo MX1 zu steuern. Weitere Module für seltener vorkommende Schnittstellen (CAN-Bus, I2C) sind schon realisiert. Es können auch mehrere Geräte gleichzeitig (z.B. zwei Intelliboxen) eingesetzt werden.&amp;lt;br /&amp;gt; Kontakt: [mailto:srcpd-devel@lists.sourceforge.net srcpd-devel@lists.sourceforge.net]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net Projekt-Seiten] bei SourceForge.&lt;br /&gt;
&lt;br /&gt;
=== Einsetzbar aber nicht mehr weiterentwickelt ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server funktionieren, der oder die Autoren halten sie f&amp;amp;uuml;r &amp;quot;gut genug&amp;quot; und wollen zumindest&lt;br /&gt;
derzeit nichts weiter ver&amp;amp;auml;ndern.&lt;br /&gt;
&lt;br /&gt;
* '''erddcd''' - DigitalDirekt-Server f&amp;amp;uuml;r Linux&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
=== Technologiestudien ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server sind entstanden um Funktionen nicht nur am gr&amp;amp;uuml;nen Tisch testen zu k&amp;amp;ouml;nnen. Sie&lt;br /&gt;
k&amp;amp;ouml;nnen auch als Anregung f&amp;amp;uuml;r Weiterentwicklungen dienen. &lt;br /&gt;
&lt;br /&gt;
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&amp;amp;auml;t. Derzeit ist es nicht f&amp;amp;uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&amp;amp;auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&amp;amp;uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&amp;amp;auml;higen SRCP-Server sucht, sollte sich die folgenden Produkte ansehen &amp;lt;br /&amp;gt; Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd Autors].&lt;br /&gt;
&lt;br /&gt;
== SRCP-Clients ==&lt;br /&gt;
&lt;br /&gt;
* '''J-Man''' - manuelle Steuerung von Lokomotiven und Magnetartikel mit grafischer Oberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''loco-panel''' - Monitor zur &amp;amp;Uuml;berwachung aller aktiven Loks.&amp;lt;br /&amp;gt; &amp;lt;!-- &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;ddsh&amp;lt;/B&amp;gt; - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÃ¤ufen.&amp;lt;BR&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''phpTrainCtrl f&amp;amp;uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer&amp;lt;br /&amp;gt;Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &amp;amp;uuml;bersichtlicher Bedienoberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt; Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den 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.&lt;br /&gt;
&lt;br /&gt;
* '''SpDrS60''' - grafisches Gleisbildstellpult nach Bundesbahnvorbild.&amp;lt;br /&amp;gt; Kontakt: [mailto:stefan.preis@wdr.de Stefan Preis] oder [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* '''M6051emu''' - Emulation des M&amp;amp;auml;rklin Interfaces 6051 f&amp;amp;uuml;r '''erddcd'''.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;amp;amp;Co) mit '''erddcd''' betrieben werden sollen.&amp;lt;br /&amp;gt; Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&amp;amp;auml;che (rcman)&amp;lt;br /&amp;gt; Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* Programmbibliothken für '''TCL/Tk''' und '''Python''' - Sammlung n&amp;amp;uuml;tzlicher Routinen und und Prozesse f&amp;amp;uuml;r den Selbstprogrammierer: [http://srcpd.sourceforge.net/clients Client-Seiten des srcpd]&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Recorder''' - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie sp&amp;amp;auml;ter wieder ab.&amp;lt;br /&amp;gt; Kontakt: [mailto:mtrute@web.de Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Tester''' - SRCP-Befehle mit einem Web-Server und PHP generieren.&amp;lt;br /&amp;gt; Kontakt: [mailto:martin@familiewolf.de Martin Wolf]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;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] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Gplan''' - Gleispl&amp;amp;auml;ne erstellen und Magnetartikel steuern (f&amp;amp;uuml;r Windows und Linux).&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&amp;amp;uuml;r Windows) &amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JTrain''' - grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdekoder mit grafischem Stellpult (f&amp;amp;uuml;r Windows und Linux) &amp;lt;br /&amp;gt; Kontakt: [mailto:mail@jtrain.de Werner Kunkel]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.jtrain.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, von [mailto:ibruell@users.berlios.de Ingo Bruell] betreute [http://developer.berlios.de/projects/jtrain/ Projektseite].&lt;br /&gt;
&lt;br /&gt;
* '''Java DCC Network Client (ab Version 2.1)''' - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN&amp;lt;br /&amp;gt; Kontakt: [mailto:H.Karoska@t-online.de Helge Karoska]&amp;lt;br /&amp;gt; Java-SRCP-Client f&amp;amp;uuml;r den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubeh&amp;amp;ouml;r einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.t-online.de/home/h.karkoska/DCC/DCCSET.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''LD-X-Programmer''' - Programm zur Programmierung von Dekodern der Firma Tams Elektronik (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:geramb@aon.de Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client (SRCP 0.7.3) f&amp;amp;uuml;r Windows zur Programmierung von Tams-Dekodern. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/ld-x-programmer.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TRAINer''' - Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows zur Anlagensteuerung. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.trainer.at.tc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP-Pakete f&amp;amp;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.&amp;lt;br /&amp;gt; Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Angebot und die M&amp;amp;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).&lt;br /&gt;
&lt;br /&gt;
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:ganter@ganter.at Fritz Ganter]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''RocRail''' - Programm zum steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@rocrail.net Rob Versluis]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.rocrail.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''MOBA-Package''' - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:selandro@users.sourceforge.net Roman Lauer]&amp;lt;br /&amp;gt; SRCP-Tools f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://mobapackage.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''EnjoyTheTime''' - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:mgeramb@users.sourceforge.net  Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/enjoythetime.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Railroad Express''' - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@miniware.nl  Fred Stevens]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.miniware.nl/de/rre/index.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Hardware ist derzeit noch nicht verf&amp;amp;uuml;gbar&lt;br /&gt;
&lt;br /&gt;
= Common Railroad Configuration Files (CRCF) =&lt;br /&gt;
&lt;br /&gt;
Ein Entwurf f&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* Entwurf CRCF 0.2.0 [http://www.der-moba.de/Digital/crcf-0.2.0/crcf.html [HTML]] [http://www.der-moba.de/Digital/crcf-0.2.0/Muster_0.2.0.txt [CRCF Beispiel]]&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Entwurf CRCF 0.1.0 [http://www.der-moba.de/Digital/crcf-0.1.0/crcf.html [HTML]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitalbetrieb]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9646</id>
		<title>Digitalprojekt</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9646"/>
				<updated>2005-10-02T11:36:44Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: srcpd Interfaces und Kontaktdaten aktualisiert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich &amp;amp;uuml;ber die Newsgroup '''de.rec.modelle.bahn''' koordinieren. Ziel ist die Schaffung eines skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems. Einzelne Komponenten dieses Systems k&amp;amp;ouml;nnen ausgetauscht werden, falls sich die Anforderungen &amp;amp;auml;ndern. Dies erfordert, da&amp;amp;szlig; zwischen den Komponenten eine lose Koppelung besteht. Diese Koppelung wird durch das Kommunikationsprotokoll SRCP erreicht. Die Kommunikation zwischen den einzelnen Komponenten erfolgt mit herk&amp;amp;ouml;mmlicher ''Internet-Technik''.&lt;br /&gt;
&lt;br /&gt;
Ein funktionsf&amp;amp;auml;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 Boostern. Der Client kommuniziert mit Hilfe von SRCP nur mit dem Server und stellt i.d.R. ein Steuerungs- oder Bedienprogramm dar.&lt;br /&gt;
&lt;br /&gt;
Obwohl sehr viele, der derzeit verf&amp;amp;uuml;gbaren Programme, die man dem '''DER_MOBA''' Digitalprojekt zuordnen kann, f&amp;amp;uuml;r das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grunds&amp;amp;auml;tzlich unabh&amp;amp;auml;ngig von einem PC-Betriebssystem. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere k&amp;amp;ouml;nnen mit wenig Aufwand portiert werden.&lt;br /&gt;
&lt;br /&gt;
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgef&amp;amp;uuml;hrt. Informationen zu den einzelnen Programmen werden &amp;amp;uuml;berlichweise vom jeweiligen Author &amp;amp;uuml;ber dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen &amp;amp;Uuml;berblick &amp;amp;uuml;ber die verf&amp;amp;uuml;gbare Soft- und Hardware bietet.&lt;br /&gt;
&lt;br /&gt;
= Simple Railroad Command Protocol (SRCP) =&lt;br /&gt;
&lt;br /&gt;
* Protokollspezifikation SRCP&amp;lt;br\&amp;gt;Die aktuelleste Protokollspezifikation von SRCP: [http://srcpd.sourceforge.net/srcp/srcp.html [HTML]][http://srcpd.sourceforge.net/srcp/srcp.pdf [PDF]]&amp;lt;br\&amp;gt;SRCP 0.8.x ist inkompatibel zu fr&amp;amp;uuml;heren SRCP-Versionen. Bereits vorhandene Software f&amp;amp;uuml;r SRCP 0.7.x wird im Laufe der Zeit auf SRCP 0.8.x umgestellt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Protokollspezifikation SRCP 0.8.0 [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.3 [http://www.der-moba.de/Digital/srcp-0.7.3/srcp.html [HTML]][http://www.der-moba.de/Digital/srcp-0.7.3/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.2 [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.1 [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.0 [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.1 [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.0 [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp-0.6.0.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.5.0 [http://www.der-moba.de/Digital/srcp-0.5.0/srcp-0.5.0.txt [plain text]]&lt;br /&gt;
&lt;br /&gt;
Nat&amp;amp;uuml;rlich ist es w&amp;amp;uuml;nschenswert, da&amp;amp;szlig; sich SRCP auch &amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
# Sowohl in der Software, wie auch in der zugeh&amp;amp;ouml;rigen Dokumentation wird auf die SRCP-Entwicklergruppe und diese Internetseite verwiesen.&lt;br /&gt;
# Es findet keine eigenm&amp;amp;auml;chtige Erweiterung von SRCP statt. Stattdessen werden Erweiterungen mit der SRCP Entwicklergruppe diskutiert und offiziell in SRCP integriert bzw. verworfen.&lt;br /&gt;
# Bei kommerziellem Erfolg des jeweiligen Produktes w&amp;amp;uuml;rden wir es gerne sehen, wenn sich die Entwickler &amp;amp;uuml;ber eine Spende zur Unterst&amp;amp;uuml;tzung von '''DER_MOBA''' Gedanken machen ;-).&lt;br /&gt;
&lt;br /&gt;
== SRCP-Server ==&lt;br /&gt;
&lt;br /&gt;
=== Aktiv gepflegte ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server werden aktiv weiterentwickelt. Wer sie einsetzt, hat einen&lt;br /&gt;
einsatzbereiten und leistungsf&amp;amp;auml;higen Server und kann bei jeglichen&lt;br /&gt;
Problemen und Herausforderungen auf Hilfe und Unterst&amp;amp;uuml;tzung &lt;br /&gt;
setzen.&lt;br /&gt;
&lt;br /&gt;
* '''DDW Server''' - DigitalDirekt-Server f&amp;amp;uuml;r Windows.&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Server''' - SRCP-Server f&amp;amp;uuml;r Windows und die Intellibox.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''srcpd''' - SRCP-Server f&amp;amp;uuml;r Linux/FreeBSD&amp;lt;br /&amp;gt;Kann eingesetzt werden, um mit SRCP-Clients Anlagen mit Intellibox, M&amp;amp;auml;rklin Interface 6051, Lenz LI100,  Booster direkt am seriellen Port (RS232), Littfinski HSI-S88, S88-Module am Parallelport und/oder Zimo MX1 zu steuern. Weitere Module für seltener vorkommende Schnittstellen (CAN-Bus, I2C) sind schon realisiert. Es können auch mehrere Geräte gleichzeitig&lt;br /&gt;
(z.B. zwei Intelliboxen) eingesetzt werden. &amp;lt;br /&amp;gt; Kontakt: [mailto:srcpd-devel@lists.sf.net srcpd-devel@lists.sf.net]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net Projekt-Seiten] bei SourceForge.&lt;br /&gt;
&lt;br /&gt;
=== Einsetzbar aber nicht mehr weiterentwickelt ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server funktionieren, der oder die Autoren halten sie f&amp;amp;uuml;r &amp;quot;gut genug&amp;quot; und wollen zumindest&lt;br /&gt;
derzeit nichts weiter ver&amp;amp;auml;ndern.&lt;br /&gt;
&lt;br /&gt;
* '''erddcd''' - DigitalDirekt-Server f&amp;amp;uuml;r Linux&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
=== Technologiestudien ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server sind entstanden um Funktionen nicht nur am gr&amp;amp;uuml;nen Tisch testen zu k&amp;amp;ouml;nnen. Sie&lt;br /&gt;
k&amp;amp;ouml;nnen auch als Anregung f&amp;amp;uuml;r Weiterentwicklungen dienen. &lt;br /&gt;
&lt;br /&gt;
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&amp;amp;auml;t. Derzeit ist es nicht f&amp;amp;uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&amp;amp;auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&amp;amp;uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&amp;amp;auml;higen SRCP-Server sucht, sollte sich die folgenden Produkte ansehen &amp;lt;br /&amp;gt; Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd Autors].&lt;br /&gt;
&lt;br /&gt;
== SRCP-Clients ==&lt;br /&gt;
&lt;br /&gt;
* '''J-Man''' - manuelle Steuerung von Lokomotiven und Magnetartikel mit grafischer Oberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''loco-panel''' - Monitor zur &amp;amp;Uuml;berwachung aller aktiven Loks.&amp;lt;br /&amp;gt; &amp;lt;!-- &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;ddsh&amp;lt;/B&amp;gt; - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÃ¤ufen.&amp;lt;BR&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''phpTrainCtrl f&amp;amp;uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer&amp;lt;br /&amp;gt;Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &amp;amp;uuml;bersichtlicher Bedienoberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt; Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den 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.&lt;br /&gt;
&lt;br /&gt;
* '''SpDrS60''' - grafisches Gleisbildstellpult nach Bundesbahnvorbild.&amp;lt;br /&amp;gt; Kontakt: [mailto:stefan.preis@wdr.de Stefan Preis] oder [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* '''M6051emu''' - Emulation des M&amp;amp;auml;rklin Interfaces 6051 f&amp;amp;uuml;r '''erddcd'''.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;amp;amp;Co) mit '''erddcd''' betrieben werden sollen.&amp;lt;br /&amp;gt; Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&amp;amp;auml;che (rcman)&amp;lt;br /&amp;gt; Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JoyCtrl''', '''TCL-Scripte''' und '''Loksteuerung via WWW''' - Programmsammlung f&amp;amp;uuml;r den Selbstprogrammierer&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Recorder''' - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie sp&amp;amp;auml;ter wieder ab.&amp;lt;br /&amp;gt; Kontakt: [mailto:mtrute@web.de Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Tester''' - SRCP-Befehle mit einem Web-Server und PHP generieren.&amp;lt;br /&amp;gt; Kontakt: [mailto:martin@familiewolf.de Martin Wolf]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;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] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Gplan''' - Gleispl&amp;amp;auml;ne erstellen und Magnetartikel steuern (f&amp;amp;uuml;r Windows, NEU: nun auch f&amp;amp;uuml;r '''Linux''').&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&amp;amp;uuml;r Windows) &amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JTrain''' - grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdekoder mit grafischem Stellpult (f&amp;amp;uuml;r Windows und Linux) &amp;lt;br /&amp;gt; Kontakt: [mailto:mail@jtrain.de Werner Kunkel]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.jtrain.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 von [mailto:ibruell@users.berlios.de Ingo Bruell] betreute [http://developer.berlios.de/projects/jtrain/ Projektseite].&lt;br /&gt;
&lt;br /&gt;
* '''Java DCC Network Client (ab Version 2.1)''' - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN&amp;lt;br /&amp;gt; Kontakt: [mailto:H.Karoska@t-online.de Helge Karoska]&amp;lt;br /&amp;gt; Java-SRCP-Client f&amp;amp;uuml;r den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubeh&amp;amp;ouml;r einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.t-online.de/home/h.karkoska/DCC/DCCSET.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''LD-X-Programmer''' - Programm zur Programmierung von Dekodern der Firma Tams Elektronik (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:geramb@aon.de Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client (SRCP 0.7.3) f&amp;amp;uuml;r Windows zur Programmierung von Tams-Dekodern. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/ld-x-programmer.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TRAINer''' - Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows zur Anlagensteuerung. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.trainer.at.tc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP-Pakete f&amp;amp;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.&amp;lt;br /&amp;gt; Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Angebot und die M&amp;amp;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).&lt;br /&gt;
&lt;br /&gt;
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:ganter@ganter.at Fritz Ganter]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''RocRail''' - Programm zum steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@rocrail.net Rob Versluis]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.rocrail.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''MOBA-Package''' - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:selandro@users.sourceforge.net Roman Lauer]&amp;lt;br /&amp;gt; SRCP-Tools f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://mobapackage.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''EnjoyTheTime''' - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:mgeramb@users.sourceforge.net  Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/enjoythetime.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Railroad Express''' - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@miniware.nl  Fred Stevens]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.miniware.nl/de/rre/index.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Hardware ist derzeit noch nicht verf&amp;amp;uuml;gbar&lt;br /&gt;
&lt;br /&gt;
= Common Railroad Configuration Files (CRCF) =&lt;br /&gt;
&lt;br /&gt;
Ein Entwurf f&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* Entwurf CRCF 0.2.0 [http://www.der-moba.de/Digital/crcf-0.2.0/crcf.html [HTML]] [http://www.der-moba.de/Digital/crcf-0.2.0/Muster_0.2.0.txt [CRCF Beispiel]]&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Entwurf CRCF 0.1.0 [http://www.der-moba.de/Digital/crcf-0.1.0/crcf.html [HTML]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitalbetrieb]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Benutzer:Matthias_Trute&amp;diff=9645</id>
		<title>Benutzer:Matthias Trute</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Benutzer:Matthias_Trute&amp;diff=9645"/>
				<updated>2005-10-02T11:27:34Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hier steht eigentlich nur etwas, damit der Link nicht mehr&lt;br /&gt;
so rot aussieht.&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9644</id>
		<title>Digitalprojekt</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9644"/>
				<updated>2005-10-02T11:25:51Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: Umlautcodierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich &amp;amp;uuml;ber die Newsgroup '''de.rec.modelle.bahn''' koordinieren. Ziel ist die Schaffung eines skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems. Einzelne Komponenten dieses Systems k&amp;amp;ouml;nnen ausgetauscht werden, falls sich die Anforderungen &amp;amp;auml;ndern. Dies erfordert, da&amp;amp;szlig; zwischen den Komponenten eine lose Koppelung besteht. Diese Koppelung wird durch das Kommunikationsprotokoll SRCP erreicht. Die Kommunikation zwischen den einzelnen Komponenten erfolgt mit herk&amp;amp;ouml;mmlicher ''Internet-Technik''.&lt;br /&gt;
&lt;br /&gt;
Ein funktionsf&amp;amp;auml;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 Boostern. Der Client kommuniziert mit Hilfe von SRCP nur mit dem Server und stellt i.d.R. ein Steuerungs- oder Bedienprogramm dar.&lt;br /&gt;
&lt;br /&gt;
Obwohl sehr viele, der derzeit verf&amp;amp;uuml;gbaren Programme, die man dem '''DER_MOBA''' Digitalprojekt zuordnen kann, f&amp;amp;uuml;r das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grunds&amp;amp;auml;tzlich unabh&amp;amp;auml;ngig von einem PC-Betriebssystem. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere k&amp;amp;ouml;nnen mit wenig Aufwand portiert werden.&lt;br /&gt;
&lt;br /&gt;
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgef&amp;amp;uuml;hrt. Informationen zu den einzelnen Programmen werden &amp;amp;uuml;berlichweise vom jeweiligen Author &amp;amp;uuml;ber dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen &amp;amp;Uuml;berblick &amp;amp;uuml;ber die verf&amp;amp;uuml;gbare Soft- und Hardware bietet.&lt;br /&gt;
&lt;br /&gt;
= Simple Railroad Command Protocol (SRCP) =&lt;br /&gt;
&lt;br /&gt;
* Protokollspezifikation SRCP&amp;lt;br\&amp;gt;Die aktuelleste Protokollspezifikation von SRCP: [http://srcpd.sourceforge.net/srcp/srcp.html [HTML]][http://srcpd.sourceforge.net/srcp/srcp.pdf [PDF]]&amp;lt;br\&amp;gt;SRCP 0.8.x ist inkompatibel zu fr&amp;amp;uuml;heren SRCP-Versionen. Bereits vorhandene Software f&amp;amp;uuml;r SRCP 0.7.x wird im Laufe der Zeit auf SRCP 0.8.x umgestellt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Protokollspezifikation SRCP 0.8.0 [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.3 [http://www.der-moba.de/Digital/srcp-0.7.3/srcp.html [HTML]][http://www.der-moba.de/Digital/srcp-0.7.3/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.2 [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.1 [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.0 [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.1 [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.0 [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp-0.6.0.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.5.0 [http://www.der-moba.de/Digital/srcp-0.5.0/srcp-0.5.0.txt [plain text]]&lt;br /&gt;
&lt;br /&gt;
Nat&amp;amp;uuml;rlich ist es w&amp;amp;uuml;nschenswert, da&amp;amp;szlig; sich SRCP auch &amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
# Sowohl in der Software, wie auch in der zugeh&amp;amp;ouml;rigen Dokumentation wird auf die SRCP-Entwicklergruppe und diese Internetseite verwiesen.&lt;br /&gt;
# Es findet keine eigenm&amp;amp;auml;chtige Erweiterung von SRCP statt. Stattdessen werden Erweiterungen mit der SRCP Entwicklergruppe diskutiert und offiziell in SRCP integriert bzw. verworfen.&lt;br /&gt;
# Bei kommerziellem Erfolg des jeweiligen Produktes w&amp;amp;uuml;rden wir es gerne sehen, wenn sich die Entwickler &amp;amp;uuml;ber eine Spende zur Unterst&amp;amp;uuml;tzung von '''DER_MOBA''' Gedanken machen ;-).&lt;br /&gt;
&lt;br /&gt;
== SRCP-Server ==&lt;br /&gt;
&lt;br /&gt;
=== Aktiv gepflegte ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server werden aktiv weiterentwickelt. Wer sie einsetzt, hat einen&lt;br /&gt;
einsatzbereiten und leistungsf&amp;amp;auml;higen Server und kann bei jeglichen&lt;br /&gt;
Problemen und Herausforderungen auf Hilfe und Unterst&amp;amp;uuml;tzung &lt;br /&gt;
setzen.&lt;br /&gt;
&lt;br /&gt;
* '''DDW Server''' - DigitalDirekt-Server f&amp;amp;uuml;r Windows.&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Server''' - SRCP-Server f&amp;amp;uuml;r Windows und die Intellibox.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''srcpd''' - SRCP-Server f&amp;amp;uuml;r Linux/FreeBSD&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox, dem M&amp;amp;auml;rklin Interface 6051, dem Littfinski HSI-S88, S88-Module am Parallelport und/oder ein Zimo MX1 zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:srcpd-devel@lists.sf.net Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net Projekt-Seiten] der Autoren bei SourceForge.&lt;br /&gt;
&lt;br /&gt;
=== Einsetzbar aber nicht mehr weiterentwickelt ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server funktionieren, der oder die Autoren halten sie f&amp;amp;uuml;r &amp;quot;gut genug&amp;quot; und wollen zumindest&lt;br /&gt;
derzeit nichts weiter ver&amp;amp;auml;ndern.&lt;br /&gt;
&lt;br /&gt;
* '''erddcd''' - DigitalDirekt-Server f&amp;amp;uuml;r Linux&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
=== Technologiestudien ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server sind entstanden um Funktionen nicht nur am gr&amp;amp;uuml;nen Tisch testen zu k&amp;amp;ouml;nnen. Sie&lt;br /&gt;
k&amp;amp;ouml;nnen auch als Anregung f&amp;amp;uuml;r Weiterentwicklungen dienen. &lt;br /&gt;
&lt;br /&gt;
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&amp;amp;auml;t. Derzeit ist es nicht f&amp;amp;uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&amp;amp;auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&amp;amp;uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&amp;amp;auml;higen SRCP-Server sucht, sollte sich die folgenden Produkte ansehen &amp;lt;br /&amp;gt; Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd Autors].&lt;br /&gt;
&lt;br /&gt;
== SRCP-Clients ==&lt;br /&gt;
&lt;br /&gt;
* '''J-Man''' - manuelle Steuerung von Lokomotiven und Magnetartikel mit grafischer Oberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''loco-panel''' - Monitor zur &amp;amp;Uuml;berwachung aller aktiven Loks.&amp;lt;br /&amp;gt; &amp;lt;!-- &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;ddsh&amp;lt;/B&amp;gt; - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÃ¤ufen.&amp;lt;BR&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''phpTrainCtrl f&amp;amp;uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer&amp;lt;br /&amp;gt;Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &amp;amp;uuml;bersichtlicher Bedienoberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt; Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den 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.&lt;br /&gt;
&lt;br /&gt;
* '''SpDrS60''' - grafisches Gleisbildstellpult nach Bundesbahnvorbild.&amp;lt;br /&amp;gt; Kontakt: [mailto:stefan.preis@wdr.de Stefan Preis] oder [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* '''M6051emu''' - Emulation des M&amp;amp;auml;rklin Interfaces 6051 f&amp;amp;uuml;r '''erddcd'''.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;amp;amp;Co) mit '''erddcd''' betrieben werden sollen.&amp;lt;br /&amp;gt; Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&amp;amp;auml;che (rcman)&amp;lt;br /&amp;gt; Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JoyCtrl''', '''TCL-Scripte''' und '''Loksteuerung via WWW''' - Programmsammlung f&amp;amp;uuml;r den Selbstprogrammierer&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Recorder''' - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie sp&amp;amp;auml;ter wieder ab.&amp;lt;br /&amp;gt; Kontakt: [mailto:mtrute@web.de Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Tester''' - SRCP-Befehle mit einem Web-Server und PHP generieren.&amp;lt;br /&amp;gt; Kontakt: [mailto:martin@familiewolf.de Martin Wolf]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;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] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Gplan''' - Gleispl&amp;amp;auml;ne erstellen und Magnetartikel steuern (f&amp;amp;uuml;r Windows, NEU: nun auch f&amp;amp;uuml;r '''Linux''').&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&amp;amp;uuml;r Windows) &amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JTrain''' - grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdekoder mit grafischem Stellpult (f&amp;amp;uuml;r Windows und Linux) &amp;lt;br /&amp;gt; Kontakt: [mailto:mail@jtrain.de Werner Kunkel]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.jtrain.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 von [mailto:ibruell@users.berlios.de Ingo Bruell] betreute [http://developer.berlios.de/projects/jtrain/ Projektseite].&lt;br /&gt;
&lt;br /&gt;
* '''Java DCC Network Client (ab Version 2.1)''' - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN&amp;lt;br /&amp;gt; Kontakt: [mailto:H.Karoska@t-online.de Helge Karoska]&amp;lt;br /&amp;gt; Java-SRCP-Client f&amp;amp;uuml;r den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubeh&amp;amp;ouml;r einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.t-online.de/home/h.karkoska/DCC/DCCSET.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''LD-X-Programmer''' - Programm zur Programmierung von Dekodern der Firma Tams Elektronik (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:geramb@aon.de Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client (SRCP 0.7.3) f&amp;amp;uuml;r Windows zur Programmierung von Tams-Dekodern. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/ld-x-programmer.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TRAINer''' - Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows zur Anlagensteuerung. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.trainer.at.tc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP-Pakete f&amp;amp;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.&amp;lt;br /&amp;gt; Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Angebot und die M&amp;amp;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).&lt;br /&gt;
&lt;br /&gt;
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:ganter@ganter.at Fritz Ganter]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''RocRail''' - Programm zum steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@rocrail.net Rob Versluis]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.rocrail.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''MOBA-Package''' - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:selandro@users.sourceforge.net Roman Lauer]&amp;lt;br /&amp;gt; SRCP-Tools f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://mobapackage.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''EnjoyTheTime''' - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:mgeramb@users.sourceforge.net  Michael Geramb]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/enjoythetime.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Railroad Express''' - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@miniware.nl  Fred Stevens]&amp;lt;br /&amp;gt; SRCP-Client f&amp;amp;uuml;r Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.miniware.nl/de/rre/index.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Hardware ist derzeit noch nicht verf&amp;amp;uuml;gbar&lt;br /&gt;
&lt;br /&gt;
= Common Railroad Configuration Files (CRCF) =&lt;br /&gt;
&lt;br /&gt;
Ein Entwurf f&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* Entwurf CRCF 0.2.0 [http://www.der-moba.de/Digital/crcf-0.2.0/crcf.html [HTML]] [http://www.der-moba.de/Digital/crcf-0.2.0/Muster_0.2.0.txt [CRCF Beispiel]]&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Entwurf CRCF 0.1.0 [http://www.der-moba.de/Digital/crcf-0.1.0/crcf.html [HTML]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitalbetrieb]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	<entry>
		<id>https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9184</id>
		<title>Digitalprojekt</title>
		<link rel="alternate" type="text/html" href="https://www.der-moba.de/index.php?title=Digitalprojekt&amp;diff=9184"/>
				<updated>2005-07-22T15:58:48Z</updated>
		
		<summary type="html">&lt;p&gt;Matthias Trute: SRCP Server kategorisiert: Aktiv, benutzbar, Studienobjekte&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Am '''DER_MOBA''' Digitalprojekt arbeiten derzeit viele Entwickler, die sich &amp;amp;uuml;ber die Newsgroup '''de.rec.modelle.bahn''' koordinieren. Ziel ist die Schaffung eines skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems. Einzelne Komponenten dieses Systems k&amp;amp;ouml;nnen ausgetauscht werden, falls sich die Anforderungen &amp;amp;auml;ndern. Dies erfordert, da&amp;amp;szlig; zwischen den Komponenten eine lose Koppelung besteht. Diese Koppelung wird durch das Kommunikationsprotokoll SRCP erreicht. Die Kommunikation zwischen den einzelnen Komponenten erfolgt mit herk&amp;amp;ouml;mmlicher ''Internet-Technik''.&lt;br /&gt;
&lt;br /&gt;
Ein funktionsf&amp;amp;auml;higes Digitalsystem des '''DER_MOBA''' Digitalprojekts besteht aus mindestens zwei Programmen: Einem Server-Proze&amp;amp;szlig; und einem Client-Prozess. Der Server stellt die eigentliche Schnittstelle zur Anlage dar und kommuniziert direkt mit einem Interface oder - im Falle eines DigitalDirekt-Systems - mit den Boostern. Der Client kommuniziert mit Hilfe von SRCP nur mit dem Server und stellt i.d.R. ein Steuerungs- oder Bedienprogramm dar.&lt;br /&gt;
&lt;br /&gt;
Obwohl sehr viele, der derzeit verf&amp;amp;uuml;gbaren Programme, die man dem '''DER_MOBA''' Digitalprojekt zuordnen kann, f&amp;amp;uuml;r das Betriebssystem Linux entwickelt wurden, ist das '''DER_MOBA''' Digitalprojekt grunds&amp;amp;auml;tzlich unabh&amp;amp;auml;ngig von einem PC Betriebssystem. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere k&amp;amp;ouml;nnen mit wenig Aufwand portiert werden.&lt;br /&gt;
&lt;br /&gt;
Das '''DER_MOBA''' Digitalprojekt wird dezentral durchgef&amp;amp;uuml;hrt. Informationen zu den einzelnen Programmen werden &amp;amp;uuml;berlichweise vom jeweiligen Author &amp;amp;uuml;ber dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen &amp;amp;Uuml;berblick &amp;amp;uuml;ber die verf&amp;amp;uuml;gbare Soft- und Hardware bietet.&lt;br /&gt;
&lt;br /&gt;
= Simple Railroad Command Protocol (SRCP) =&lt;br /&gt;
&lt;br /&gt;
* Protokollspezifikation SRCP&amp;lt;br\&amp;gt;Die aktuelleste Protokollspezifikation von SRCP (SRCP): [http://srcpd.sourceforge.net/srcp/srcp.html [HTML]][http://srcpd.sourceforge.net/srcp/srcp.pdf [PDF]]&amp;lt;br\&amp;gt;SRCP 0.8.x ist inkompatibel zu fr&amp;amp;uuml;heren SRCP-Versionen. Bereits vorhandene Software f&amp;amp;uuml;r SRCP 0.7.x wird im Laufe der Zeit auf SRCP 0.8.x umgestellt.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Protokollspezifikation SRCP 0.8.0 [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.8.0/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.3 [http://www.der-moba.de/Digital/srcp-0.7.3/srcp.html [HTML]][http://www.der-moba.de/Digital/srcp-0.7.3/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.2 [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.2/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.1 [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.1/srcp.pdf [pdf]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.7.0 [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.7.0/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.1 [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.1/srcp.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.6.0 [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.html [HTML]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp.ps [postscript]] [http://www.der-moba.de/Digital/srcp-0.6.0/srcp-0.6.0.txt [plain text]]&lt;br /&gt;
** Protokollspezifikation SRCP 0.5.0 [http://www.der-moba.de/Digital/srcp-0.5.0/srcp-0.5.0.txt [plain text]]&lt;br /&gt;
&lt;br /&gt;
Nat&amp;amp;uuml;rlich ist es w&amp;amp;uuml;nschenswert, da&amp;amp;szlig; sich SRCP auch &amp;amp;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:&lt;br /&gt;
&lt;br /&gt;
# Sowohl in der Software, wie auch in der zugeh&amp;amp;ouml;rigen Dokumentation wird auf die SRCP Entwicklergruppe und diese Website verwiesen.&lt;br /&gt;
# Es findet keine eigenm&amp;amp;auml;chtige Erweiterung von SRCP statt. Stattdessen werden Erweiterungen mit der SRCP Entwicklergruppe diskutiert und offiziell in SRCP integriert bzw. verworfen.&lt;br /&gt;
# Bei kommerziellem Erfolg des jeweiligen Produktes w&amp;amp;uuml;rden wir es gerne sehen, wenn sich die Entwickler &amp;amp;uuml;ber eine Spende zur Unterst&amp;amp;uuml;tzung von '''DER_MOBA''' Gedanken machen ;-).&lt;br /&gt;
&lt;br /&gt;
== SRCP-Server ==&lt;br /&gt;
&lt;br /&gt;
=== aktiv gepflegte ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server werden aktiv weiterentwickelt. Wer sie einsetzt, hat einen&lt;br /&gt;
einsatzbereiten und leistungsf&amp;amp;auml;higen Server und kann bei jeglichen&lt;br /&gt;
Problemen und Herausforderungen auf Hilfe und Unterst&amp;amp;uuml;tzung &lt;br /&gt;
setzen.&lt;br /&gt;
&lt;br /&gt;
* '''DDW Server''' - DigitalDirekt-Server f&amp;amp;uuml;r Windows.&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Server''' - SRCP-Server f&amp;amp;uuml;r Windows und die Intellibox.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''srcpd''' - SRCP-Server f&amp;amp;uuml;r Linux/FreeBSD&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, um SRCP-Clients mit der Intellibox, dem M&amp;amp;auml;rklin Interface 6051, dem Littfinski HSI-S88, S88-Module am Parallelport und/oder ein Zimo MX1 zu betreiben.&amp;lt;br /&amp;gt; Kontakt: [mailto:srcpd-devel@lists.sf.net Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net Projekt-Seiten] der Autoren bei SourceForge.&lt;br /&gt;
&lt;br /&gt;
=== einsetzbar aber nicht mehr weiterentwickelt ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server funktionieren, der oder die Autoren halten sie f&amp;amp;uuml;r &amp;quot;gut genug&amp;quot; und wollen zumindest&lt;br /&gt;
derzeit nichts weiter ver&amp;amp;auml;ndern.&lt;br /&gt;
&lt;br /&gt;
* '''erddcd''' - DigitalDirekt-Server f&amp;amp;uuml;r Linux&amp;lt;br /&amp;gt;Digitalbetrieb ohne Zentraleinheit und Computerinterface.&amp;lt;br /&amp;gt; Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
=== Technologiestudien ===&lt;br /&gt;
&lt;br /&gt;
Diese SRCP Server sind entstanden um Funktionen nicht nur am gr&amp;amp;uml;nen Tisch testen zu k&amp;amp;ouml;nnen. Sie&lt;br /&gt;
k&amp;amp;ouml;nnen auch als Anregung f&amp;amp;uuml;r Weiterentwicklungen dienen. &lt;br /&gt;
&lt;br /&gt;
* '''jsrcpd''' - Referenzimplementierung von SRCP 0.8.x Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalit&amp;amp;auml;t. Derzeit ist es nicht f&amp;amp;uuml;r den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schw&amp;amp;auml;chen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe f&amp;amp;uuml;r die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzf&amp;amp;auml;higen SRCP-Server sucht, sollte sich die folgenden Produkte ansehen &amp;lt;br /&amp;gt; Kontakt: [mailto:olaf.schlachter@web.de Olaf Schlachter]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://srcpd.sourceforge.net/jsrcpd Autors].&lt;br /&gt;
&lt;br /&gt;
== SRCP-Clients ==&lt;br /&gt;
&lt;br /&gt;
* '''J-Man''' - manuelle Steuerung von Lokomotiven und Magnetartikel mit grafischer Oberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''loco-panel''' - Monitor zur &amp;amp;Uuml;berwachung aller aktiven Loks.&amp;lt;br /&amp;gt; &amp;lt;!-- &amp;lt;LI&amp;gt;&amp;lt;B&amp;gt;ddsh&amp;lt;/B&amp;gt; - Programmiersprache zur Steuerung von einfachen automatischen BetriebsablÃ¤ufen.&amp;lt;BR&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''uhl-programmer''' - Programmieren von Uhlenbrock-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''nmra-programmer''' - Programmieren von NMRA-DCC-Dekodern&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''phpTrainCtrl f&amp;amp;uuml;r SRCP 0.8 (alpha)''' - u.a. phpTamsProgrammer&amp;lt;br /&amp;gt;Kontakt: [http://vogt-it.com/MailForm/index.php Torsten Vogt]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''dtcltiny''' - manuelle Steuerung von Lokomotiven mit besonders kompakter und &amp;amp;uuml;bersichtlicher Bedienoberfl&amp;amp;auml;che.&amp;lt;br /&amp;gt; Kontakt: [mailto:dtcltiny@markus-pfeiffer.de Markus Pfeiffer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten den [http://www.markus-pfeiffer.de WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SpDrS60''' - grafisches Gleisbildstellpult nach Bundesbahnvorbild.&amp;lt;br /&amp;gt; Kontakt: [mailto:stefan.preis@wdr.de Stefan Preis]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.linux-modellbahn.de/ WWW-Seiten] des Authors.&lt;br /&gt;
&lt;br /&gt;
* '''M6051emu''' - Emulation des M&amp;amp;auml;rklin Interfaces 6051 f&amp;amp;uuml;r '''erddcd'''.&amp;lt;br /&amp;gt;Wird ben&amp;amp;ouml;tigt, wenn Nicht-SRCP-Clients (z.B. Railroad&amp;amp;amp;Co) mit '''erddcd''' betrieben werden sollen.&amp;lt;br /&amp;gt; Kontakt: [mailto:dschaef@neon.rif.fuedo.de Dieter Schaefer]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den Seiten des [http://www.vogt-it.com/OpenSource/DDL DDL-Projektes].&lt;br /&gt;
&lt;br /&gt;
* '''rcsh''' und '''rcman''' - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfl&amp;amp;auml;che (rcman)&amp;lt;br /&amp;gt; Kontakt: [mailto:peer.griebel@gmx.de Dr. Peer Griebel]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.griebel-net.de/peer/rcsh/rcsh.html WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JoyCtrl''', '''TCL-Scripte''' und '''Loksteuerung via WWW''' - Programmsammlung f&amp;amp;uuml;r den Selbstprogrammierer&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Recorder''' - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie sp&amp;amp;auml;ter wieder ab.&amp;lt;br /&amp;gt; Kontakt: [mailto:mtrute@web.de Matthias Trute]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://srcpd.sourceforge.net/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP Tester''' - SRCP-Befehle mit einem Web-Server und PHP generieren.&amp;lt;br /&amp;gt; Kontakt: [mailto:martin@familiewolf.de Martin Wolf]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;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] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Gplan''' - Gleispl&amp;amp;auml;ne erstellen und Magnetartikel steuern (f&amp;amp;uuml;r Windows, NEU: nun auch f&amp;amp;uuml;r '''Linux''').&amp;lt;br /&amp;gt; Kontakt: [mailto:mgrafe@snafu.de Michael Gr&amp;amp;auml;fe]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.snafu.de/mgrafe/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware''' (f&amp;amp;uuml;r Windows) &amp;lt;br /&amp;gt; Kontakt: [mailto:Michael.Reukauff@t-online.de Michael Reukauff]&amp;lt;br /&amp;gt; Weitere Infos zu diesen Programmen und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.reukauff.de/TrackONE/ WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''JTrain''' - grafischer SRCP-Client zur Steuerung von Lokomotiven&amp;lt;br /&amp;gt; und Schaltdekoder mit grafischem Stellpult&amp;lt;br /&amp;gt; (f&amp;amp;uuml;r Windows und Linux) &amp;lt;br /&amp;gt; Kontakt: [mailto:mail@jtrain.de Werner Kunkel]&amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.jtrain.de WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''Java DCC Network Client (ab Version 2.1)''' - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN&amp;lt;br /&amp;gt; Kontakt: [mailto:H.Karoska@t-online.de Helge Karoska]&amp;lt;br /&amp;gt; Java SRCP Client f&amp;amp;uuml;r den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubeh&amp;amp;ouml;r einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://home.t-online.de/home/h.karkoska/DCC/DCCSET.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''LD-X-Programmer''' - Programm zur Programmierung des Dekoders LD-W-2 von Tams Elektronik (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:geramb@aon.de M. Geramb]&amp;lt;br /&amp;gt; SRCP Client (SRCP 0.7.3) f&amp;amp;uuml;r Windows zur Programmierung von Tams-Dekoder. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://members.aon.at/geramb/ld-x-programmer.htm WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''TRAINer''' - Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (f&amp;amp;uuml;r Windows)&amp;lt;br /&amp;gt; Kontakt: [mailto:tainer@keintzel.at Peter Keintzel]&amp;lt;br /&amp;gt; SRCP Client f&amp;amp;uuml;r Windows zur Anlagensteuerung. &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.trainer.at.tc WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''SRCP-Pakete f&amp;amp;uuml;r SuSE-Linux''' - Guido Scholz portiert viele der hier gelisteten Programme speziell auf SuSE-Linux und packt diese in einfach zu installierende RPM-Pakete&amp;lt;br /&amp;gt; Kontakt: [mailto:guido.scholz@bayernline.de Guido Scholz]&amp;lt;br /&amp;gt; SCRP-Pakete f&amp;amp;uuml;r Linux &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;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).&lt;br /&gt;
&lt;br /&gt;
* '''Traindrive''' - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:ganter@ganter.at Fritz Ganter]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://traindrive.gpsdrive.cc WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
* '''RocRail''' - Programm zum steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)&amp;lt;br /&amp;gt; Kontakt: [mailto:support@rocrail.net Rob Versluis]&amp;lt;br /&amp;gt; SCRP-Client f&amp;amp;uuml;r Linux und Windows &amp;lt;br /&amp;gt; Weitere Infos zu diesem Programm und die M&amp;amp;ouml;glichkeit die Software zu beziehen, gibt es auf den [http://www.rocrail.net WWW-Seiten] des Autors.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
&lt;br /&gt;
* Hardware ist derzeit noch nicht verf&amp;amp;uuml;gbar&lt;br /&gt;
&lt;br /&gt;
= Common Railroad Configuration Files (CRCF) =&lt;br /&gt;
&lt;br /&gt;
Ein Entwurf f&amp;amp;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.&lt;br /&gt;
&lt;br /&gt;
* Entwurf CRCF 0.2.0 [http://www.der-moba.de/Digital/crcf-0.2.0/crcf.html [HTML]] [http://www.der-moba.de/Digital/crcf-0.2.0/Muster_0.2.0.txt [CRCF Beispiel]]&lt;br /&gt;
&lt;br /&gt;
* Historie:&lt;br /&gt;
** Entwurf CRCF 0.1.0 [http://www.der-moba.de/Digital/crcf-0.1.0/crcf.html [HTML]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Digitalbetrieb]]&lt;/div&gt;</summary>
		<author><name>Matthias Trute</name></author>	</entry>

	</feed>