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.

1.2 Warum JAVA, warum SRCP?

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).

1.3 Die 4 Ebenen

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

1.3.4. Ebene 4: Automatikfahrt

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!