CRCF - Common Railroad Configuration Files 0.2.0: Unterschied zwischen den Versionen
K (Internen Link korrigiert) |
K (Ein Nebensatz weniger) |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | Zweiter Entwurf zur Diskussion - 11.7.2000 | + | Zweiter Entwurf zur Diskussion - 11.7.2000. Die weitere Entwicklung der Spezifikation und dessen Nutzung unter SRCP findet im Abschnitt [[SRCP-Erweiterungen]] statt. |
''' von Edbert van Eimeren, Martin Ostermann, Matthias Trute''' | ''' von Edbert van Eimeren, Martin Ostermann, Matthias Trute''' | ||
Zeile 648: | Zeile 648: | ||
| bgcolor="#DDDDDD" nowrap="NOWRAP" | '''<lang>''' | | bgcolor="#DDDDDD" nowrap="NOWRAP" | '''<lang>''' | ||
| colspan="2" bgcolor="#DDDDDD" | | | colspan="2" bgcolor="#DDDDDD" | | ||
− | Sprache (z.B. de := deutsch, en := englisch) | + | Sprache (Kurzform gemäß ISO 631; z.B. de := deutsch, en := englisch). |
| bgcolor="#CC0000" | | | bgcolor="#CC0000" | | ||
Zeile 654: | Zeile 654: | ||
| bgcolor="#DDDDDD" | | | bgcolor="#DDDDDD" | | ||
| colspan="2" bgcolor="#DDDDDD" | | | colspan="2" bgcolor="#DDDDDD" | | ||
− | Alle weiteren Worte in dieser Zeile sind dann der Meldungstext. <br /> | + | Alle weiteren Worte in dieser Zeile sind dann der Meldungstext (Offen: Zeichensatz der Meldung; für Internationalisierung wäre UTF-8 notwendig).<br /> |
Die Reihenfolge innerhalb einer Tabelle ist ohne Bedeutung. Sinnvollerweise wird man jedoch die Einträge für eine Sprache zusammenhalten und alphabetisch nach den Kürzeln sortieren. | Die Reihenfolge innerhalb einer Tabelle ist ohne Bedeutung. Sinnvollerweise wird man jedoch die Einträge für eine Sprache zusammenhalten und alphabetisch nach den Kürzeln sortieren. | ||
| bgcolor="#CC0000" | | | bgcolor="#CC0000" | | ||
Zeile 720: | Zeile 720: | ||
| bgcolor="#CC0000" | | | bgcolor="#CC0000" | | ||
|} | |} | ||
− | |||
− | |||
== 5 Abfrage der Konfiguration == | == 5 Abfrage der Konfiguration == | ||
Zeile 729: | Zeile 727: | ||
|- valign="Top" | |- valign="Top" | ||
| colspan="3" | | | colspan="3" | | ||
− | Der Befehl CONFGET | + | Der Befehl CONFGET gibt SRCP-Clients die Möglichkeit, beim Server nachzufragen, welche Fähigkeiten er hat (siehe [[#2 Servereigenschaften]]). Diese Angaben sind '''verbindlich'''. |
− | Als zweites kann mit diesem Befehl abgefragt werden, welche Lok-, Funktions-, Schalt-Dekoder und Rückmelde Module dem Server bekannt sind | + | Als zweites kann mit diesem Befehl abgefragt werden, welche Lok-, Funktions-, Schalt-Dekoder und Rückmelde Module dem Server bekannt sind (siehe [[#3 Geräte und Eigenschaften]]). Diese Information dient (mehreren) Clients dazu einen gleichen Informationsstand zu haben. Diese Informationen sind jedoch '''nicht verbindlich'''. |
* Die Informationen müssen nicht vollständig sein. | * Die Informationen müssen nicht vollständig sein. | ||
Zeile 906: | Zeile 904: | ||
| bgcolor="#00CC00" | | | bgcolor="#00CC00" | | ||
|} | |} | ||
− | |||
== 6 Zukünftige Entwicklungen == | == 6 Zukünftige Entwicklungen == |
Aktuelle Version vom 10. Juli 2007, 08:45 Uhr
Zweiter Entwurf zur Diskussion - 11.7.2000. Die weitere Entwicklung der Spezifikation und dessen Nutzung unter SRCP findet im Abschnitt SRCP-Erweiterungen statt.
von Edbert van Eimeren, Martin Ostermann, Matthias Trute
Inhaltsverzeichnis
1 Einleitung
Die CRCF beschreiben einen Reihe von Dateien zur Konfiguration von Serverprozessen zur Steuerung von digitalen Modelleisenbahnen. Clientprozesse können auf diese Informationen über einen entsprechenden Auskunftsbefehl zugreifen. Die in CRCF zu speichernden Informationen ergeben sich aus dem Bedarf des SRCP (Simple Railroad Command Protocol) wie von Torsten Vogt & anderen definiert. In diesem Sinne sind die CRCF eine Ergänzung zum SRCP. Ziel ist es eine klare, auch vom Menschen lesbare Basis für die Fähigkeiten einer konkreten Serverimplementierung einerseits und eine Beschreibung der verwendeten Dekoder mit ihren spezifischen Eigenschaften andererseits zu schaffen. Diese Fassung basiert auf SRCP Version 0.7.1. |
1.1 Konventionen
Alle Informationen werden einzeilig mit variabler Länge gespeichert. Eine Zeile wird mit dem Zeichen '\n' (line feed, LF, #10) abgeschlossen. Ein vorangestelltes '\r' (carriage return, CR, #13) wird akzeptiert. Jede Informationszeile besteht aus Worten, die durch Whitespace (Leerzeichen, Tabulatoren) getrennt sind. Die Worte der Informationszeilen können aus der Menge der Zeichen { '0', .., '9', '-', 'A', .., 'Z', 'a', .., 'z' } gebildet werden. Der Server wertet die Informationszeilen case-sensitive aus, d.h. zwischen Groß- und Kleinbuchstaben wird unterschieden. Kommentarzeilen beginnen mit dem Zeichen '#' und enden mit dem Zeilenende. Sie werden ebenso ignoriert wie Leerzeilen (nur White Spaces und CR, LF). Sie dürfen alle druckbaren Zeichen des ASCII Zeichensatzes enthalten. Sie dienen ausschliesslich der besseren Lesbarkeit durch einen Menschen. Einzelne Bereiche werden durch Überschriften getrennt. Diese beginnen (Zeilenanfang) mit '= ' und enden mit ' ='. Weiterer Text in der Überschriftzeile ist Kommentar und wird ignoriert. Alle Informationszeilen beginnen mit einer Kennung aus vier Buchstaben, die die Art der Information kennzeichnet. Die weiteren Angaben sind je nach Art der Information unterschiedlich. Informationen über Protokolle enthalten eine weitere Angabe zur genauen Identifizierung (Protokoll/Modultyp). Informationen über Dekoder und Rückmelder enthalten zwei weitere Angaben zur genauen Identifizierung (Protokoll/Modultyp + Adresse/Portnummer). Für jede vom Server unterstützte Funktion / Eigenschaft gibt es eine Informationszeile. Für jeden dem Server bekannten Dekoder / Rückmelder gibt es eine Informationszeile. Informationszeilen, die unvollständig oder offensichtlich falsch sind werden vom Server ignoriert. Eine (summarische) Fehlermeldung sollte in diesem Fall vom Server beim Start ausgegeben werden. In Protokoll- oder Trace-Dateien kann ggfs. jeder Fehler einzeln aufgeführt werden. Die Informationen sind in Bereiche aufgeteilt. Jeder Bereich hat eine Überschrift. Alle Informationen aus einem Bereich müssen hinter dieser Überschrift stehen. Stehen sie an einer anderen Stelle, so werden sie als Fehler gewertet. Innerhalb eines Bereichs ist eine angemessene Ordnung sinnvoll (Name | Protokoll | Adresse | ...). Diese Ordnung ist für die bessere Lesbarkeit und daher nicht zwingend vorgeschrieben. Es steht im Ermessen des Erstellers, welche Ordnung, wenn überhaupt, er/sie benutzt. An einigen Stellen sind Werte reserviert, die im SRCP noch nicht festgelegt sind, da es zur Zeit noch keine Server gibt, die das unterstützen. Diese Werte sind als Platzhalter zu betrachten, sie können sich noch ändern. Solche reservierten Werte sind mit kursiver Schrift markiert. |
|||
Änderungen gegenüber der vorherigen Version werden mit einem farbigen Strich am rechten Rand markiert. Dabei bedeutet rot Neues, grün wesentliche (inhaltliche) Änderungen, und blau Weglassungen. Alle geänderten Abschnitte sind grau hinterlegt. Dies gilt auch für Abschnitte mit textlichen Korrekturen, die keine extra Randmarkierung haben. Korrekturen von Tipfehlern werden nicht markiert. |
2 Servereigenschaften
Hier werden die Eigenschaften beschrieben, die eine Serverimplementierung ausmachen, das heißt, welche Möglichkeiten ein Server seinen Clients zur Verfügung stellt. |
2.1 Serverversion
Überschrift: '= Version ='
Es gibt genau eine Zeile mit den Informationen über die Version des Servers, des verwendeten SRCP und CRCF. Format: VERS <name> <vers> SRCP <srcp> CRCF <crcf> |
|||
<name> <vers> <srcp> |
Name des Servers Version des Servers Version des verwendeten SRCP |
||
<crcf> | Version des verwendeten CRCF | ||
Hinweis: |
Die Versionsinformation sollte als erstes in einer Konfigurationsdatei stehen. |
2.2 Übertragungskanäle
Welche Kanäle werden von einer Serverimplementierung zur Kommunikation mit Clients benutzt. Überschrift: '= Ports =' Format: PORT <port> <source> |
|||
<port> | COMMAND FEEDBACK INFO |
Kommando Port Befehle des Clients an den Server, direkte Antworten des Servers darauf. |
|
<source> | CLIENT SERVER BOTH |
Unidirektional vom Client zum Server Unidirektional vom Server zum Client |
2.3 Serverbefehle
Welche Befehle werden von einer Server zu seiner Steuerung akzeptiert. Überschrift: '= Server Commands =' Format: SCMD <command> |
|||
<command> | LOGOUT RESET SHUTDOWN |
Befehl zum Beenden der Verbindung zu einem Client. Befehl zur Neu-Initialisieung des Servers. |
|
POWER VOLTAGE |
Digitalstrom über SET POWER [ON/OFF] ein-/ausschalten |
||
TIME | Server unterstützt Modellzeit |
2.4 Allgemeine Befehle
Welche Befehle werden von einer Server zur Steuerung der Digitalanlage akzeptiert. Überschrift: '= General Commands =' Format: GCMD <command> <group> |
|||
<command> | SET GET WAIT INIT TERM |
Befehl zum Setzen eines Wertes. |
|
WRITE READ VERIFY CONFGET |
Befehl zum Programmieren eines Wertes eines Dekoders. |
||
<group> | GL GA FB TIME POWER |
Generic Loco (Lokdekoder) [SET, GET, WRITE, READ, VERIFY] |
|
Beim Befehl CONFGET werden statt der Gerätegruppen die Konfigurationstypen als Argument verwendet. Siehe dazu den Abschnitt #5.1 Konfigurationstypen. |
|||
Eine Kombination Befehl - Argument, die nicht eingetragen ist, wird nicht unterstützt. Lediglich der Befehl SET ist zwingend vorgeschrieben, alle anderen können implementiert werden. |
2.5 Protokolle Lokdekoder
Welche Protokolle für Lokdekoder werden von einem Server akzeptiert. (Funktionsdekoder werden wie Lokdekoder behandelt.) Überschrift: '= Protocols Loco & Function =' Format: PRGL <prot> <addr_max> <step_max> <dir> <nro_f> |
|||
<prot> | M. N. |
Protokolle nach den Märklin/Motorola Standards. |
|
PS | Protocol by Server: Der Server wählt ein geeignetes Protokoll aus. | ||
S. F. Z. |
Protokolle nach den Trix Selectrix Standards. |
||
Der Punkt ist durch geeignete Buchstaben/Ziffern zu ersetzen. Siehe dazu die aktuelle Spezifikation des SRCP. Die Werte für Selectrix, FMZ und ZIMO sind reserviert für zukünftige Entwicklungen (Intellibox, Twin-Box, ...). |
|||
<addr_max> |
Höchste Adresse, die von diesem Protokoll unterstützt wird. Aktuelle Werte für den Adressbereich sind 80, 99, 256, 9999. Ein Adressbereich beginnt immer bei der Adresse 0. |
||
<step_max> |
Höchste Fahrstufen, die von diesem Protokoll unterstützt wird. Aktuelle Werte für die höchste Fahrstufe sind 14, 27, 28, 30, 128. Ein Fahrstufenbereich beginnt immer bei der Fahrstufe 0. |
||
<dir> | abs rel |
Absolute Fahrtrichtungsangabe. Relative Fahrtrichtungsangabe. |
|
<nro_f> |
Zahl der Zusatzfunktionen, die von diesem Protokoll unterstützt werden. Aktuelle Dekoder untertützen 0, 2, 4, 8 Zusatzfunktionen. Es wird implizit davon ausgegeangen, dass eine Standardfunktion immer implementiert ist. |
2.6 Protokolle Schaltdekoder
Welche Protokolle für Schaltdekoder werden von einem Server akzeptiert. Überschrift: '= Protocols Accessory =' Format: PRGA <prot> <addr_max> |
|||
<prot> | M N |
Protokoll nach den Märklin/Motorola Standards. |
|
S F Z |
Protokoll nach den Trix Selectrix Standards. |
||
<addr_max> |
Höchste Adresse, die von diesem Protokoll unterstützt wird. Aktuelle Werte für den Adressbereich sind ???, 4096. Ein Adressbereich beginnt bei der Adresse 1. |
2.7 Protokolle Rückmelde Module
Welche Rückmelde Module und Anschlussarten werden von einem Server akzeptiert. Überschrift: '= Feedback Types =' Format: PRFB <module-type> <port_max> <port_inc> |
|||
<module-type> | S88 I8255 M6051 |
Märklin s88-Bus am Parallelport des PC. i8255 Karte. Märklin s88-Bus via Interface 6051. |
|
LENZFB LOCOFB SELFB FMZFB ZIMOFB |
Rückmelde-Module aus dem Lenz System. |
||
Hinweis: | Die letzten fünf sind reservierte Namen, die sich ggfs. noch ändern können. | ||
<port_max> |
Höchste Adresse, die für diesen Modultyp zulässig ist. Ein Nummerbereich beginnt mit (0 | 1) ???. |
||
<port_inc> | Anzahl der Ports, die in einem Modul dieses Typs zusammengefasst sind. |
2.8 Sonstige Gerätetypen
Dies kann erst dann spezifiziert werden, wenn entsprechende Definitionen in SRCP vorliegen. |
3 Geräte und Eigenschaften
Hier werden die Eigenschaften beschrieben, die ein tatsächliches Gerät (Lok-, Schaltdekoder, Rückmelde Modul) hat. Das heißt, welche Funktionen von einem Dekoder oder Modul tatsächlich realisiert werden. Dies kann ggfs. weniger sein, als das Protokoll erlaubt. Weiter gibt es einige Parameter, die nur für die Clients von Interesse sind (<d_type>, <name>, ...). Solche Parameter stehen am Ende der Parameterliste. |
3.1 Lok- und Funktionsdekoder
Überschrift: '= Locomotive & Function ='
Format: DCGL <prot> <addr> <step> <dir> <func> <prog> <ps_addr> <V_max> <d_type> <name> |
|||
<prot> |
Wie im Abschnitt #2.5 Protokolle Lokdekoder definiert. Dekoder, die über mehrere Protokolle angesprochen werden können, haben für jedes Protokoll einen Eintrag. PS (Protocol by Server) ist hier nicht zulässig, da es sich um reale Dekoder handelt. |
||
<addr> |
Adresse dieses Dekoders unter dem gewählten Protokoll. Multiprotokoll-Dekoder dürfen für jedes Protokoll eine andere Adressen benutzen. |
||
<step> |
Höchste Fahrstufen, die von diesem Dekoder unterstützt wird. Für Funktionsdekoder ist dieser Wert ggfs. auf 0 zu setzen. |
||
<dir> | abs rel |
Absolute Fahrtrichtungsangabe. Relative Fahrtrichtungsangabe. |
|
<func> |
Die Funktionen werden durch ein Wort <func> beschrieben, das aus Zeichenpaaren aufgebaut ist: |
||
<prog> | Der Wert von <prog> ist ein Wort mit 7 Buchstaben: | ||
1) 2) 3) 4) |
Modus (P = Programmiergleis, F = on the Fly [im Betrieb]) |
||
5) 6) 7) |
REGISTER (R = unterstützt) VARIABLE (V = unterstützt) BIT (B = unterstützt) |
||
Wird eine Funktion nicht unterstützt, so ist statt dessen das Zeichen '-' (= none) zu setzen. Beispiele: |
|||
<ps_addr> |
Adresse, unter der dieser Dekoder mit "Protocol by Server" angesprochen wird. Dekoder, die über mehrere Protokolle / Adressen angesprochen werden, sollen jeweils die selbe PS-Adresse verwenden. |
||
<V_max> |
Virtuelle Höchstgeschwindigkeit: Dieser Wert wird in einem Server zusammen mit einem Wert V (<= V_Max) für die Soll-Geschwindigkeit dazu benutzt die reale Fahrstufe zu berechnen. Im SRCP wird keine Vorgabe über die Masseinheit dieses Wertes gemacht. Empfehlenswert ist eine Orientierung an der Vorbild-Geschwindigkeit, also in km/h. |
||
<d_type> |
Kennung für den Dekodertype: Dekoder eines Typs erhalten die gleiche Kennung. Die Kennung muss ein Wort sein. Das heisst es darf kein Leerzeichen oder Tabultorzeichen enthalten. Zur optischen Gliederung ist ggfs. das Zeichen '-' einzusetzen. Sinnvollerweise hält man sich an die Bezeichnung des Hersteller. |
||
<name> |
Eindeutiger Name für diesen Lok-/Funktions-Dekoder: Der Name muss ein Wort sein. Das heisst es darf kein Leerzeichen oder Tabultorzeichen enthalten. Zur optischen Gliederung ist ggfs. das Zeichen '-' einzusetzen. Beispiele: "V188-003", "Berghexe", "Zuckersusi". |
3.2 Schaltdekoder
Überschrift: '= Accessory ='
Format: DCGA <prot> <addr_min> <addr_max> <d_type> <name> |
|||
<prot> | Wie im Abschnitt #2.6 Protokolle Schaltdekoder angegeben. | ||
<addr_min> | Adresse des ersten verwendeten Ausgang dieses Dekoders. | ||
<addr_max> | Adresse des letzten verwendeten Ausgang dieses Dekoders. | ||
<d_type> |
Kennung für den Dekodertype: Dekoder eines Typs erhalten die gleiche Kennung. Die Kennung muss ein Wort sein. Das heisst es darf kein Leerzeichen oder Tabultorzeichen enthalten. Zur optischen Gliederung ist ggfs. das Zeichen '-' einzusetzen. Sinnvollerweise hält man sich an die Bezeichnung des Hersteller. |
||
<name> |
Eindeutiger Name für diesen Schaltdekoder: Der Name muss ein Wort sein. Das heisst es darf kein Leerzeichen oder Tabultorzeichen enthalten. Zur optischen Gliederung ist ggfs. das Zeichen '-' einzusetzen . Beispiele: "Bahnhof-Links", "Gleis-1-2", "Abzweig-Abc". |
||
Hinweis: |
Für einen Einzeldekoder gilt <addr_min> = <addr_max> Auf diese Art kann je nach Wunsch eine Gruppendefiniton aller Ausgänge des Schaltdekoders oder eine Einzeldefinition eines Ausgangs erfolgen. |
3.3 Rückmelde Module
Überschrift: '= Feedback Units ='
Format: DCGA <modul-type> <port_min> <port_max> <d_type> <name> |
|||
<modul-type> | Wie im Abschnitt #2.7 Protokolle Rückmelde Module definiert. | ||
<port_min> | Portnummer des ersten verwendeten Eingang dieses Modules. | ||
<port_max> | Portnummer des letzten verwendeten Eingang dieses Modules. | ||
<d_type> |
Kennung für den konkreten Typ eines Rückmelde Modules: Hier dient sie hauptsächlich zur Unterscheidung verschiedener Lieferanten eines Modultyps. Rückmelder eines Typs erhalten die gleiche Kennung. Die Kennung muss ein Wort sein. Das heisst es darf kein Leerzeichen oder Tabultorzeichen enthalten. Zur optischen Gliederung ist ggfs. das Zeichen '-' einzusetzen. Sinnvollerweise hält man sich an die Bezeichnung des Hersteller. |
||
<name> |
Eindeutiger Name für dieses Rückmelde Modul: Der Name muss ein Wort sein. Das heisst es darf kein Leerzeichen oder Tabultorzeichen enthalten. Zur optischen Gliederung ist ggfs. das Zeichen '-' einzusetzen. Beispiele: "GBM-Bonn", "GBM-Strecke", "Weichen-Bhf". |
||
Hinweis: | Mit <port_min> = <port_max> kann man ggfs. auch jeden Port einzeln definieren. |
4 Sonstiges
Dies ist der Platz für Festlegungen, die übergreifend sind. |
4.1 Langtexte
Im Laufe der Diskussion um das CRCF hat sich gezeigt, dass es notwendig ist sowohl Kurzformen (=Abkürzungen), als auch Langformen (=Text) für bestimmte Informationen zur Verfügung zu stellen. Mit den Tabellen in diesem Abschnitt wird eine Zuordnung zwischen Abkürzungen und zugehörigen Text hergestellt. Überschrift: '= Messages =' Format: <TEXT-TYPE> <short> <lang> <freetext> |
|||
<TEXT-TYPE> |
Kennung für die Art der Zuordnung. |
||
<short> | Abkürzung, | ||
<lang> |
Sprache (Kurzform gemäß ISO 631; z.B. de := deutsch, en := englisch). |
||
Alle weiteren Worte in dieser Zeile sind dann der Meldungstext (Offen: Zeichensatz der Meldung; für Internationalisierung wäre UTF-8 notwendig). |
|||
Bisher sind die folgenden Zuordnungstabellen definiert. | |||
FTXT <short> <lang> <freetext> (Funktionen in Lokdekodern) ITXT <short> <lang> <freetext> (INFO liefert eine Zahl zurück) |
|||
Einige Beispiele mögen zur Verdeutlichung dienen. | |||
FTXT <short> <lang> <freetext> (Funktionen in Lokdekodern) FTXT Da de Dampf FTXT Sl de Spitzlicht FTXT Pf de Pfeife FTXT Gl de Glocke FTXT Tl de Triebwerksbeleuchtung FTXT Lu de Lüfter FTXT Sa de Stromabnehmer ... FTXT ST en Steam (Dampf) FTXT Hl en Headlight (Spitzlicht) FTXT Wh en Whistle (Pfeife) FTXT Bl en Bell (Glocke) FTXT Nb en Numberboard (Nummerntafel) ... ITXT <short> <lang> <freetext> (INFO liefert eine Zahl zurück) ITXT -1 de nicht unterstützt ITXT -2 de keine Daten ITXT -3 de Zeitlimit überschritten ITXT -1 en unsupported ITXT -2 en no data ITXT -3 en timeout LTXT <short> <lang> <freetext> (Zuordnung der Sprachen) LTXT de de deutsch LTXT en de englisch LTXT fr de franzoesisch LTXT en en english LTXT fr en french LTXT de en german LTXT en fr anglais LTXT fr fr francais LTXT de fr allemand |
5 Abfrage der Konfiguration
Der Befehl CONFGET gibt SRCP-Clients die Möglichkeit, beim Server nachzufragen, welche Fähigkeiten er hat (siehe #2 Servereigenschaften). Diese Angaben sind verbindlich. Als zweites kann mit diesem Befehl abgefragt werden, welche Lok-, Funktions-, Schalt-Dekoder und Rückmelde Module dem Server bekannt sind (siehe #3 Geräte und Eigenschaften). Diese Information dient (mehreren) Clients dazu einen gleichen Informationsstand zu haben. Diese Informationen sind jedoch nicht verbindlich.
Informationen zu Schaltdekodern und Rückmeldern als ortsfeste Bauteile hingegen sollten (in der Regel) korrekt und vollständig sein. |
|||
Anmerkungen: Die Spezifikation des Befehl CONFGET gehört eigentlich in das SRCP (Simple Railroad Command Protocol). Da der Befehl CONFGET jedoch unmittelbar von den Festlegungen im CRCF abhängt, wird er vorerst hier beschrieben. Der Befehl CONFGET hat nur dann Sinn, wenn die Konfigurations Dateien existieren und nach dem CRCF gestaltet sind. Ein Befehl CONFSET zum Setzen von Konfigurations Informationen ist zur Zeit nicht definiert. Es ist nicht klar, ob dafür ein Bedarf existiert. Wie auch immer, sinnvoll wäre ein solcher Befehl nur für die Informationen zu Lokdekodern wie sie in #3.1 Lok- und Funktionsdekoder festgelegt sind. Die Servereigenschaften (siehe #2 Servereigenschaften) ändern sich nicht, solange ein Server läuft. Auch die Angaben zu einer (zukünftigen) Beschreibung des Anlagenlayouts ändern sich nicht während des laufenden Betriebs. Ein Lok jedoch kann ohne weiteres hinzugefügt, entfernt oder umprogrammiert werden. |
5.1 Konfigurationstypen
Zur Zeit sind folgende Konfigurationstypen definiert. Sie sind hier zusammen mit ihren Parametern aufgelistet. Parameter, die zur genaueren Identifikation dienen, sind unterstrichen. |
|||
VERS PORT SCMD |
<name> <vers> SRCP <srcp> CRCF <crcf> <port> <source> <command> |
||
GCMD | <command> <group> | ||
PRGL PRGA PRFB |
<prot> <addr_max> <step_max> <dir> <nro_f> |
||
DCGL DCGA DCFB |
<prot> <addr> <step> <dir> <func> <prog> <ps_addr> <V_max> <d_type> <name> |
||
FTXT ITXT LTXT |
<short> <lang> <freetext> |
||
Dabei haben die ersten drei [Servereigenschaften] keine weitere Identifikation. |
5.2 Befehl CONFGET
Das generelle Format des Befehls ist: | |||
CONFGET <conf-type> [<spec_1>] [<spec_2>] | |||
Der Wert von <conf-type> ist der Typ der Information der angefordert wird (vier Zeichen Code). Dahinter steht jeweils, was zur genaueren Identifikation benutzt wird : |
|||
VERS, PORT, SCMD, |
Servereigenschaften |
||
[<spec_1>] und [<spec_2>] dienen zur genaueren Identifikationen von Befehlen, Langtext, Protokollen, Dekodern und Rückmeldern : |
|||
Protokoll/Modultyp |
für Protokolle, (PRGL, PRGA, PRFB) |
||
Für die anderen Informationenstypen sind sie ohne Belang. | |||
Hinweis: Für [<spec_1>], [<spec_2>] kann ein '*' als Wildcard verwendet werden. Als Beispiel liefert "CONFGET GCMD * FB" alle Befehle zurück, mit denen Rückmelder angesprochen werden. |
5.3 Antwort auf CONFGET
Das generelle Format der Antwort ist: | |||
INFO CONF <conf-type> [<spec_1>] [<spec_2>] [.*]
[.*] steht dabei für alle weiteren Angaben entsprechend dem Konfigurationstyp. |
|||
Wird der Befehl CONFGET nicht unterstützt, lautet die Antwort: INFO -1 |
|||
Hinweise: [<conf-type>] ist wie im Abschnitt #5.1 Konfigurationstypen definiert. |
6 Zukünftige Entwicklungen
Auf der Basis des SRCP sind ja schon viele Entwicklungen angedacht. Hier ist der Platz um ihr Informationsbedürfnis festzulegen. Denkbar sind z.B Beschreibung einer Anlage und ihrer logischen Struktur (Blöcke, Fahrstrassen, Besetztmelder, ...) oder Informationen für den Fahrplanbetrieb (Züge, Fahrstrecke, Fahrzeittrassen, ...) und vieles andere. |
7 Einige Anmerkungen
Hier will ich kurz Erklärungen zu einigen von mir vorgeschlagenen Punkten geben. |
7.1 Hintergrund
In der Diskussion um das SRCP wurde mehrfach der Wunsch nach einer Datei für die Konfiguration geäussert. Dies ist für eine einzige Serverimplementierung sicher nicht zwingend. Werden jedoch unterschiedliche Server angeboten, so ist es für alle weiteren Programme (Clients, Middleware, ...) sinnvoll, die Eigenschaften eines Servers ermitteln zu können. Weiter wurde angeregt eine gemeinsame Datenbasis für alle Clients bezüglich Lokdekoder, Schaltdekoder und Rückmelder zu haben. Diese Datenbasis, soll ebenso wie die Informationen über die Eigenschaften des Servers über einen SRCP-konformen Befehl abgefragt werden können. Diesen Wünschen soll mit dieser Definition Rechnung getragen werden. |
7.2 Aufteilung
Bisher ist nichts zur Aufteilung der Konfigurationsdaten auf Dateien gesagt worden. Dieser Punkt ist bewusst offengelassen, da ich dafür keinen Vorschlag machen will. Sinnvoll ist sicherlich eine Aufteilung in eine Datei für die Servereigenschaften (siehe #2 Servereigenschaften) und eine Datei für die Dekoder und Rückmelder (siehe #3 Geräte und Eigenschaften). Sollte eines Tages Informationen über das Layout einer Modellbahn Anlage definiert werden, so ist dafür ebenso eine weitere Datei sinnvoll. Ob eine weitere Aufteilung wünschenswert ist soll die Diskussion zeigen. |
7.3 Namen und Typen
Für die Definition der Dekoder und Rückmelder sind Namen eingeführt worden. Dies ist ein Konzept, dass im SRCP bisher nicht existiert und dort auch nicht notwendig ist. Es dient dazu, dass alle Clients Dekoder und Rückmelder mit gleichen Namen darstellen können. Ebenso sind Typen zur Klassifizierung verschiedener Dekoder- / Rückmeldertypen eingeführt worden. Auch diese sind in SRCP weder definiert noch notwendig. Sie dienen hauptsächlich der Dokumentation. Inwieweit ein Client diese Information verwendet bleibt ihm überlassen. |
7.4 Englische Begriffe
Genauso wie im SRCP werden in der formalen Definition englische Begriffe bzw. Abkürzungen davon verwendet. Dies wurde in SRCP in Hinblick auf eine mögliche internationale Verbreitung so beschlossen. Ich schliesse mich diesem Vorgehen an. |
8 Änderungsprotokoll
Änderungen von CRCF 0.1 nach CRCF 0.2.0
#2 Servereigenschaften , #3 Geräte und Eigenschaften : #2.1 Serverversion : #2.3 Serverbefehle : #2.4 Allgemeine Befehle : #2.5 Protokolle Lokdekoder : #3.1 Lok- und Funktionsdekoder , #3.2 Schaltdekoder , #3.3 Rückmelde Module : #3.1 Lok- und Funktionsdekoder : #4.1 Langtexte : #5.1 Konfigurationstypen , #5.2 Befehl CONFGET : Vieles an der internen Struktur vereinfacht, so dass dies Dokument jetzt etwas kleiner ist und damit schneller zu laden und darzustellen ist. |