js-home.org, 18.05.2012
 

Über das System

 Realisierung 
 Server stats 

<--
Eine kurze Simulation der Zeit - Sts-Zeit
stellwerksim, status @ 2010-10-03
Nach über 6 Jahren Sts war es mal an der Zeit, die Memoiren zu beginnen. Das ist dabei herausgekommen:

Die älteste, noch genutzte Datei ist "NumberChecker.java", seit Revision 2 dabei, erste Commit am 7. Juni 2003, um 12:16:29 Uhr.

Die erste Datei für den Simulator und damit die Schaffung des Sts basierend auf dem Gleiseditor für die EEP-Schaltungen war die "stellwerk_gleisbild.java", erster Commit am 28. Januar 2004, 20:10:21 Uhr, zufälligerweise SVN Revision 100, damals aber noch CVS.

Das, was heute alle Spieler als "den Sim" kennen, das Hauptfenster, wurde erstmalig am 29. Januar 2004 um 23:06:58 unter Revision 113 eingecheckt. Fahrstraßen gab es da schon 11 Revisionen, also seit 102. Eine Datei namens "fahrstrassenmanager.java" hatte zwischen Rev 112 und 116 wohl die Verwaltung dieser inne, bevor sie gelöscht wurde.

Das, was heute als Gleiseditor bekannt ist, also die 2. Generation an Editor, entstand erst mit Rev 1016 im August 2008! Vorher hatte der "schaltungsed.java" diese Aufgabe, zwischen Rev 2 und Rev 1722. An einem Freitag, dem 13. wurde diese Datei mit Revision 1722 dann gelöscht.

Auch die Störungen haben eine lange Geschichte! Die erste Signalstörung und zeitgleich die erste Weichenstörung kam im März 2004 in den Code, Revision kurz vor der 200!

Züge fahren - oder zumindest gab es Code dazu - seit Revision 122 auf den Stellwerken, 2. Februar 2004. Eine Version früher, 121, hat es das immernoch vorhandene Bild für den Funk-Knopf in den Code geschafft. Außer durch Umsortierungen der Verzeichnisse und Branches gab es keinen Commit mehr auf der Datei.

Trauriger erging es dem Bild für die Alternativfahrstraßen: Mit 132 eingeführt, hat es mit Sts V3 ausgedient, gelöscht in Rev 3504. Noch älter sind nur die Pfeilgrafiken im Editor, die alten Grafiken, die schon länger nicht mehr genutzt werden. Seit 67 dabei aber lange ungenutzt und auf der Löschliste.

Ein anderes Urgestein, die gleisbild Klasse, das Hauptding zum darstellen des Gleisbilds, dabei seit Revison 5, hatte mit Revision 3293 ausgedient. Doch sie existiert noch weiter, umbenannt in eine Textdatei im August 2010. Sie hat Platz gemacht für das neue MVC Design, das die beiden Klassen gleisbild und gleisbild_stellwerk auf ein modernes Konzept stellt: Model-View-Control. Es trennt die Aufgaben der beiden Klassen sauber nach Themen, der Datenverwaltung (Model), der Darstellung (View) und der Steuerung (Control). Aus diesen 2 Klassen ist ein ganzer Zoo von Klassen entstanden, alle spezialisiert auf eine Aufgabe, die sie dafür um einiges besser können.

So besteht das Model aus 6 aufeinander aufbauenden Klassen, jede erweitert ihre Basisklasse um neue Fähigkeiten wie z.B. Fahrstraßen, Störungen, Stitz, Laden und Speichern. Der View hat einen Painter an der Seite, der sich um das Malen selbst kümmert, während der View die nicht ganz trivialen Dinge des Ausgeben dieser Gemälde in richtigen Tempo regelt.

Die Steuerung übernimmt nicht nur ein Control, sondern 2: einer im Simulator, einer im Editor. Und bei Bedarf können weitere geschaffen werden. Dabei hat es der Simulator-Control noch am einfachsten. Er muss nur die Mausklicks beachten, die entsprechenden Gleiselemente beim Model dazu erfragen und dann ist auch schon meistens das Fahrstraßensystem dafür zuständig.

Der Editor-Control hat es da weitaus schwerer. Weshalb er gleich ein Rudel von GECs bekommt hat, jedes hat nur eine Aufgabe, diese kann es dafür richtig gut.

Weil aber GEC und Model lange noch nicht alles können, stehen ihnen gleisbildWorker zur Seite. Eine Menge von Operationen auf dem Gleisbild. Das sind Dinge wie Fahrstraßenlauf oder ENRs neu vergeben.

Und wo das Gleisbild so viele Nachfahren und Enkel bekommen hat, sollte auch das Fahrstraßensystem nicht alleine mit einer Klasse "fahrstrasse.java" bleiben. Schließlich wurde ihr schon damals der Manager weggenommen. Im Gegensatz zur Gleisbild durfte sie aber bleiben, hat aber eine Frischzellenkur erhalten und deshalb gleich mit dem FAS eine Statemaschine mit etlichen Klassen zu handhaben gelernt.

Zwar ist "NumberChecker.java" die älteste noch aktive Datei im Sim, aber zweifelsohne sind "fahrstrasse.java" (dabei seit 102) und die noch nicht erwähnte "gleis.java" (dabei seit Rev 10) die Dateien mit dem wildesten Leben. Sie sind immer noch dabei, haben schon viel erlebt. Denn auch "gleis.java" hat in den letzten Jahren fleißig gejungt, Code ausgelagert und diesen fleißig zu mehr Möglichkeiten
wachsen lassen.

Ein Ende ist nicht abzusehen!
www.js-home.org

<--

 
Kategorie
system
 neuheiten
 status
 

All actions are logged, copyright © JS