1.Programmfilosofie
1.1 Lizenz
Dieses Programm ist unter der GPL veröffentlicht (siehe GPL.TXT). Das
bedeutet vereinfacht ausgedrückt, dass Sie es für private Zwecke
kostenlos benutzen und kopieren können. Sie dürfen den Quellcode
auch verändern, müssen die Änderungen aber wieder
öffentlich zugänglich machen.
ACHTUNG:
Obwohl das Programm von mir vor der Veröffentlichung ausgiebig getestet
wurde, kann ich als Autor keine Verantwortung für Schäden
übernehmen, die durch die Benutzung dieses Programm mittelbar oder
unmittelbar entstehen, insbesondere Schäden an der Modellbahn durch
Unfälle oder ähnliches.
Nun, es geht mir um eine möglichst breite Verwendbarkeit meines
Programms. JAVA als Sprache habe ich gewählt, da es frei verfügbar
ist und sowohl unter LINUX als auch den Microsoft- Betriebssystemen ab Win95
funktioniert. Ganz nebenbei habe ich so diese Sprache erlernt ;-)
SRCP -Abkürzung für Simple Railroad Command Protocol- ist eine
Protokollspezifikation für (Software-)Server und Clients, um
Modellbahnen zu steuern. Sinn des Ganzen ist eine weitgehende Abstraktion
von der verwendeten Hardware. Alle Software ist für den Anwender -bis
auf die Downloadkosten- gratis erhältlich (siehe auch
2.1).
Oberstes Ziel bei der Entwicklung war die Möglichkeit, programmierte
automatische Zugfahrten gleichzeitig mit handgesteuerten Fahrten zu
ermöglichen.
Deshalb ist die Steuerung auf 4 Ebenen organisiert:
1.3.1. Ebene 1: Signale ,Weichen und Loks
Sie können Signale und Weichen durch anklicken mit der Maus stellen.
Diese Ebene entspricht weitgehend der "konventionellen" Steuerung mit dem
zusätzlichen Vorteil, dass Sie sich nicht die Nummern von Weichen und
Signalen merken müssen.
Eine Loksteuerung habe ich ebenfalls vorgesehen. Persönlich bevorzuge
ich die Steuerung mit "echten" Drehreglern, aber da manche SRCP-Server
-bis auf einen Booster- ohne weitere Hardware auskommen, wollte ich auch
dafür eine Steuerung bereitstellen. Die Beschleunigung der Loks kann
wahlweise durch JTrain oder den Lokdekoder gesteuert werden.
Sie können theoretisch beliebig viele Gleisbilder gleichzeitig offen
haben und beliebig viele Lokregler, wenn die Nerven mitmachen...
1.3.2. Ebene 2: Blockstrecken
Grundlage der automatischen Steuerung ist die Einteilung der Modellbahn in
Blockstrecken sehr ähnlich dem Original. Sinnvollerweise unterscheidet
man Weichenblöcke und Streckenblöcke. Das ermöglicht, nach
dem Überfahren einer Weichenstrasse diese schon wieder anderen Zügen
zur Verfügung zu stellen. So ist ein wesentlich dichterer Zugverkehr
möglich. Der hinter dem Weichenblock liegende Streckenblock wird dabei
als Zusatzblock mit angefordert, beide werden getrennt freigegeben.
Die Blockstrecken können Sie per Mausklick auf das Blockfeld anfordern
und freigeben. Wird die Blockstrecke zugeteilt, erscheint "User" im
Blockfeld und der Block wird rot.
Die Erstellung der Blockstrecken wird durch einen Assistenten erleichtert (
das hoffe ich zumindest...), die Verwaltung durch die Möglichkeit
der individuellen Farbwahl ebenfalls.
Dabei enthalten die Blockstrecken "automatisch" die notwendigen
Weichen- und Signalschaltungen, ein Router findet den Weg zwischen erstem und
letztem Blockelement usw.
1.3.3. Ebene 3: Fahrstrassen: für und wider
Es besteht die Möglichkeit, Fahrstrassen anzufordern und freizugeben.
Eine Fahrstrasse ist hierbei eine Gruppe von Blockstrecken, die nacheinander
durchfahren werden.
Vorteile der Fahrstrassentechnik:
einfach zu programmieren (für Sie und mich ;-))
komfortabel - Sie fordern eine Fahrstrasse an und alle Weichen und Signale
stehen richtig!
Nachteile der Fahrstrassentechnik:
Erstmal müssen Sie Ihre ganze Anlage in Gleisbilder eingeben und dann in
Blockstrecken einteilen :-(
Blockadegefahr: Eine Fahrstrasse blockiert, solange sie besteht, alle Kreuzungen
und Abzweigungen auf ihrem Weg!
Ich habe dennoch die Fahrstrassentechnik in JTrain aufgenommen, da sie
weniger Aufwand bei der Erstellung erfordert als die
Hierbei wird eine Kette von Steps (=Schritten) erzeugt, die nacheinander
abgearbeitet werden. Jeder Step "kennt" seinen Arbeitsauftrag -was soll
passieren-, seinen Nachfolger und die Bedingung für den nächsten
Step.
Dabei sind einfache Verzweigungen machbar. Das ermöglicht die Reaktion
auf unterschiedliche Situationen (z.B.Block benutzt-:langsam abbremsen/Block
frei-:weiterfahren/beschleunigen).
Es bleibt Ihnen überlassen, ob die Automatik Lokbefehle enthält
und somit auch die Lok steuert, oder ob sie nur die Blockstrecken anfordert
und freigibt und Sie per Hand die Lok steuern.
Leider ist damit ein nicht unerheblicher Programmieraufwand verbunden, auch
für Sie. Dennoch lohnt der Einarbeitungsaufwand: Wenn dann endlich die
ersten Züge vollautomatisch verkehren, sich im Schattenbahnhof ein
freies Gleis suchen, nach einer Zeit wieder auftauchen etc., macht das
einfach Spass (IMHO, meine Frau sieht das leider völlig anders...).
Bitte nutzen Sie die der Distribution beiliegenden Beispieldateien, um sich
ein Bild von den Möglichkeiten und einer sinnvollen Vorgehensweise beim
Testen von JTrain zu machen!
Viel Spass am Hobby!