12.3. Aufbau der Gleisbilddatei

Die folgenden Informationen sind nicht zwangsweise für die Benutzung des Programms notwendig. Sie enthalten detailliertere Beschreibungen zu einigen Vorgängen, Dateiaufbauten etc., für den Fall, dass die Gleisbilddatei mit einem Texteditor bearbeitet werden soll.

Die Gleisbilddateien sind in drei inhaltlich getrennte Bereiche aufgeteilt:

Zeilen, die durch ein '#' eingeleitet werden, gelten als Kommentar und werden beim Einlesen der Datei nicht ausgewertet. Selbst erstellte Kommentare werden bislang beim Speichern aus dem Programm heraus wieder überschrieben.

Der Dateikopf wird durch eine Kommentarzeile eingeleitet, die die Datei als spdrs60-Datendatei charakterisiert. Darunter finden sich Angaben zur Programmversion, welche zum Speichern genutzt wurde, zum Datum der letzten Änderung, und zur Version des hier verwendetet Dateiformats. Es folgen Einträge für die gleisbildbezogene Speicherung der Serverdaten. Das hier ebenfalls schon vorhandene Datenfeld für einen separaten Rückmeldeserver dient bisher nur als Platzhalter.

# spdrs60 data file
# version=0.5.3
# last modified=2008-05-01T21:37:01
formatversion;2
cmdhost;localhost;4303;0;0

Dahinter folgt der Datenbereich für das Gleisbild selbst. Eine Zeile beschreibt die Abmessungen (Spalten und Zeilen); dahinter werden die einzelnen Elemente jeweils mit ihren Merkmalswerten aufgeführt. Leere Elemente werden in der Datei nicht abgespeichert.

# start of layout section
%% layout
# layout dimensions=columns;rows
dimensions;19;10
# start of element section
%% element 5
classid;121
index;5
feedback port;1;1
hide LEDs;0
text;-1
%
%% element 6
classid;101
index;6
feedback port;1;1
hide LEDs;-1
text;-1
%
%% element 7
classid;101
index;7
feedback port;1;1
hide LEDs;0
text;-1
%
%% element 8
classid;133
index;8
feedback port;1;1
hide LEDs;0
text;-1
%
%% element 14
classid;800
index;14
%
%% element 15
classid;132
index;15
feedback port;1;1
hide LEDs;0
text;-1
%
%% element 20
classid;122
index;20
feedback port;1;1
hide LEDs;-1
text;-1
%

Jedes Element wird mit der Kennung »%% element <nr>» eingeleitet. Die Indexnummer hat hier nur informellen Charakter und wird beim Lesen der Datei nicht ausgewertet. Die folgenden Zeilen enthalten die Daten der Gleisbildelemente in der Form:

schlüssel;wert1;wert2;wert3

Die Anzahl der Wertangaben pro Schlüssel ist dabei variabel und abhängig von der Art des Schlüssels. Die Reihenfolge der Schlüssel ist weitgehend beliebig, ein und der selbe Schlüssel darf aber pro Gleisbildelement nur einmal genutzt werden.

Die erste Datenzeile enthält die Klassennummer des entsprechenden Elements. Diese Zahl kodiert den Typ und damit das Aussehen und Verhalten des Elements.

Die zweite Datenzeile enthält die Indexnummer des entsprechenden Elements. Diese Zahl ist für die Positionierung des Elements innerhalb des Gleisbilds verantwortlich. Die Numerierung erfolgt mit Null beginnend spaltenweise von links oben nach rechts unten. Der Wert stimmt mit der Zahl überein, die über eine kleine Tooltip-Hilfe bei einer geladenen Gleisbilddatei angezeigt wird. So kann man notfalls recht schnell den entsprechenden Eintrag in der Datei finden und dort manuell Änderungen vornehmen. Es ist nicht notwendig, dass die Elemente nach dieser Nummer sortiert aufgelistet werden. Spätestens beim Speichern einer Datei wird die richtige Reihenfolge wieder hergestellt.

Die weiteren Zeilen sind abhängig von den Einstellmöglichkeiten des Elementes. Hat es keinerlei Variationsmöglichkeiten, folgt direkt die Kennung für das Datensatzende (%). Optional schließt sich der Invers-Wert an (ACHTUNG: Ein Eintrag hier ist noch völlig irrelevant, da die Anzeige programmiertechnisch noch nicht umgesetzt ist; Ausnahme: Leer-Element).

Es folgt der Decoder-Typ und anschließend das Protokoll, hier steht entweder der Wert »M« für Märklin-Decoder oder »N« für DCC-Decoder zur Verfügung. Eine -1 heißt wieder, dass dieser Wert für das zugehörige Symbol irrelevant ist.

Die Adresse des Symbols belegt die nächste Zeile. Zugelassen sind Werte von »1« bis »324« bei M-Decodern bzw. »1« bis »4096« bei N-Decodern. Die Richtung des Antriebs wird auch gespeichert, damit man nach dem Ausschalten der Anlage wieder den in der Datei gespeicherten Zustand herstellen kann. Für Weichen oder Signale mit mehr als einem Antrieb folgt noch die Adresse des zweiten Antriebs. Diese kann, muß aber nicht auf die Adresse 1 unmittelbar folgend sein.

Mit den Schlüsselwörtern »change conn« können die zwei Anschlüsse eines Decoderausganges logisch getauscht werden, wenn hier eine »1« steht. Der Subtyp legt die Unterklassierung einiger Elemente, z.B. bei Signalen fest. Es folgt die Textzeile, dann die Aktivierungszeit für einen Ausgang.

Die nächste Zeile enthält die Daten für die Rückmeldung. Diese sind hier allerdings nicht in der Form Modul-Nr. und Anschluß-Nr. abgelegt, vielmehr werden alle Rückmeldeeingänge fortlaufend durchgezählt. Demnach hat Anschluß 3 von Modul 2 den Eintrag 19.

Zuletzt erscheint der Eintrag, mit dem man bei manchen Elementen die LED-Anzeige abschalten kann.

Wenn die Beschreibung aller Gleisbildelemente abgeschlossen ist, folgt der Abschnitt für die Fahrstraßen. Er wird durch Kommentarzeilen eingeleitet, in denen auch die Anzahl der Fahrstraßen festgehalten ist. Dieser Zahlenwert hat aber an dieser Stelle nur informellen Charakter wird im Programm beim Lesen der Datei nicht ausgewertet.

# start of route section
# routes=48
%% route 1
id;1
name;a3
train;0
to signal;1;32
from signal;1;21;2
release port;1;0
activate port;1;0
active by loco;1;0
type;0
switch x to y;1;3;1
switch x to y;1;22;1
switch x to y;1;2;3
switch x to y;1;1;0
switch x to y;1;23;0
switch x to y;1;30;0
%% route 2
id;2
name;f3
train;0
to signal;1;31
from signal;1;15;2
release port;1;0
activate port;1;0
active by loco;1;0
type;0
switch x to y;1;6;1
switch x to y;1;5;2
switch x to y;1;4;1
switch x to y;1;14;1
switch x to y;1;24;0
switch x to y;1;25;0
switch x to y;1;33;0
switch x to y;1;13;0

Der Datenabschnitt einer Fahrstraße wird durch die Kennung »%% route <nr>» eingeleitet. Die Indexnummer hat hier nur informellen Charakter und wird beim Lesen der Datei nicht ausgewertet. Die folgenden Zeilen enthalten die Daten der Fahrstraße in der Form:

schlüssel;wert1;wert2;wert3

Die Anzahl der Wertangaben pro Schlüssel ist dabei variabel und abhängig von der Art des Schlüssels. Die Reihenfolge der Schlüssel ist beliebig, ein und der selbe Schlüssel darf aber pro Fahrstraßenabschnitt nur einmal genutzt werden. Die Anzahl der Fahrstraßen ist weitgehend beliebig und nur durch den verfügbaren Programmspeicher begrenzt.

In der ersten Datenzeile steht die numerische Id der Straße, wie sie in Fahrstraßen-Übersicht angezeigt wird. Es folgt der Name, die Nummer eines eventuell belegenden Zuges, die Adresse des Zielsignals mit der zugehörigen SRCP-Busnummer, sowie die Adresse des Startsignals mit einer zusätzlichen Information über den beim Schalten anzusteuernden Status.

Die nächsten beiden Zeilen enthalten die Daten für das per Rückmeldung automatisch gesteuerte Auflösen bzw. Einstellen der Fahrstraße. Der erste Zahlenwert gibt die Nummer des s88/SRCP-Busses wieder, der nächste den in fortlaufender Numerierung gezählten Rückmeldekontakt (1 bis 496) an. Die Berechnung dieses Wertes erfolgt gemäß folgender Formel:

„16 x Modulnummer + Anschlussnummer des Kontakts an diesem Modul - 1“

Der zweite Zahlenwert (0 oder 1) steuert die Auswahl zwischen Belegt- und Freimeldung zur Auslösung dieses Schaltvorgangs.

Existieren außer Start- und Zielsignal weitere Antriebe, die geschaltet werden müssen, dann folgen diese Daten in den folgenden Zeilen. Die Anzahl dieser Zeilen ist prinzipiell unbegrenzt. In der Datenzeile findet man hier den SRCP-Bus, die Adresse und Richtungswert, auf den dieser Antrieb in der Fahrstraße eingestellt wird. Bei Elementen mit einem Antrieb sind hier die Werte 0 und 1, bei solchen mit zwei Antrieben die Werte 0, 1, 2 oder 3 verfügbar. Welcher Wert hier sinnvollerweise eingegeben werden kann, ist der Übersichtstabelle der schaltbaren Symbole zu entnehmen.

ACHTUNG:

Einige Elemente besitzen zwei Adressen, z.B. die Doppelten Kreuzungsweichen. Bei diesen ist zu beachten, dass hier immer die erste Adresse eingegeben werden muß.

Hat ein Element mehr als einen Antrieb, dann wird bei einem Richtungswert >= 2 automatisch unter Zuhilfenahme der zweiten Adresse der richtige Befehl berechnet, d.h. diese Adresse ist nur für das Programm interessant, nicht für den Anwender im Falle der Fahrstraßen-Programmierung.