Aktuelles aus der Weiterentwicklung
Verfasst: Mo 5. Mär 2012, 15:38:47
Hier möchte ich in Zukunft einen Ausblick auf die Weiterentwicklung des Programms geben.
In letzter Zeit gab es wenig neues, das lag zum einen daran, dass das Semester zuende ging, und damit die Prüfungszeit begann, zum anderen daran, dass jetzt einige Hintergrundarbeiten nötig sind. In der Version 0.0.7.3 wurde ja bereits ein elektromechanisches Stellwerk veröffentlicht, das aber noch keinen sehr spannenden Betrieb ermöglicht. Momentan in Arbeit ist daher eine Anlage mit zwei Stellwerken (und damit auch Bahnhofsblock), und zwar konkret der Bahnhof Coburg. Bilder davon sind diesem Beitrag angehängt.
Wie man sieht fehlt aber noch einiges, speziell die diversen Taster/Leuchtmelder im Aufbau auf der Hebelbank, außerdem der Streckenblock. Beides wird noch einiges an Arbeit werden, insbesondere da Anpassungen am Kernprogramm selber notwendig sind, um die Editoren bedienbar zu behalten - schließlich sind die Taster/Leuchtmelder relativ frei verdrahtet, was bei den Editoren bisher noch nicht vorgesehen ist. Außerdem muss jeder Leuchtmelder individuell eine eigene Logik besitzen. Ein Beispiel wären die Leuchtmelder der Bahnhofwiederholersperren - hier haben wir Sammelleuchtmelder von sich ausschließenden Fahrstraßen. Der Leuchtmelder muss also leuchten, wenn in einer dieser Fahrstraßen die Wiederholersperre aktiv ist - momentan müsste man dafür eine eigene Relaisgruppe erstellen, was auf Dauer definitiv zu aufwendig ist.
Das zweite ist der Fahrplaneditor. Die bisher in test_gross und Unterhausen erstellten Fahrpläne habe ich direkt von Hand mit dem Texteditor geschrieben, was relativ aufwendig ist. Coburg soll einen umfangreicheren Fahrplan erhalten, daher wird es langsam Zeit, einen Fahrplaneditor zu entwickeln. Auch das wird eine gewisse Zeit in Anspruch nehmen.
Und das letzte betrifft die Technik, die im Hintergrund läuft. Die Stellwerkslogik ist über Skripte definiert, die jeder ändern kann. Hier stellt sich jetzt ein Problem: Bisher gilt, dass jede Relaisgruppe ein eigenes Skript besitzt. Gerade bei den elektromechanischen Stellwerken haben wir aber eine große Vielfalt an Schaltungen, die sich teilweise nur im Detail unterscheiden. Momentan muss man hier den Quelltext der einen Relaisgruppe kopieren, und entsprechend die Details ändern, die anders sind - das bläht aber den Quelltext stark auf, und würde auf Dauer ein Problem darstellen bei der Wartung des Quelltextet. Eine gute Lösung für das Problem habe ich leider nicht gefunden - mit Vererbung zu arbeiten ist leider mit der konkreten Implementierung der Skript-Engine zu aufwendig und problematisch.
Momentaner Stand meiner Überlegungen ist, dass das Programmieren künftig nicht mit einem Standard-Texteditor erfolgt, sondern über einen speziellen Bibliotheks-Editor, der dann aus einzelnen Code-Schnippseln den endgültigen Quelltext zusammensetzt. Ich denke dieser Ansatz bietet viele Vorteile, auch wenn es für "Hardcore-Programmierer" sicherlich etwas ungewohnt sein dürfte - insbesondere auch, weil momentan die Arbeit direkt am Quelltext der Bibliotheken viel zu unübersichtlich geworden ist.
Das ist aber auch eine Arbeit, die sicherlich viel Zeit in Anspruch nehmen wird, von der man aber dann von außen nichts sehen wird - das Programm wird hinterher genau das selbe machen wie bisher auch, nur dass es eben im Hintergrund viel sinnvoller gelöst ist als bisher.
In letzter Zeit gab es wenig neues, das lag zum einen daran, dass das Semester zuende ging, und damit die Prüfungszeit begann, zum anderen daran, dass jetzt einige Hintergrundarbeiten nötig sind. In der Version 0.0.7.3 wurde ja bereits ein elektromechanisches Stellwerk veröffentlicht, das aber noch keinen sehr spannenden Betrieb ermöglicht. Momentan in Arbeit ist daher eine Anlage mit zwei Stellwerken (und damit auch Bahnhofsblock), und zwar konkret der Bahnhof Coburg. Bilder davon sind diesem Beitrag angehängt.
Wie man sieht fehlt aber noch einiges, speziell die diversen Taster/Leuchtmelder im Aufbau auf der Hebelbank, außerdem der Streckenblock. Beides wird noch einiges an Arbeit werden, insbesondere da Anpassungen am Kernprogramm selber notwendig sind, um die Editoren bedienbar zu behalten - schließlich sind die Taster/Leuchtmelder relativ frei verdrahtet, was bei den Editoren bisher noch nicht vorgesehen ist. Außerdem muss jeder Leuchtmelder individuell eine eigene Logik besitzen. Ein Beispiel wären die Leuchtmelder der Bahnhofwiederholersperren - hier haben wir Sammelleuchtmelder von sich ausschließenden Fahrstraßen. Der Leuchtmelder muss also leuchten, wenn in einer dieser Fahrstraßen die Wiederholersperre aktiv ist - momentan müsste man dafür eine eigene Relaisgruppe erstellen, was auf Dauer definitiv zu aufwendig ist.
Das zweite ist der Fahrplaneditor. Die bisher in test_gross und Unterhausen erstellten Fahrpläne habe ich direkt von Hand mit dem Texteditor geschrieben, was relativ aufwendig ist. Coburg soll einen umfangreicheren Fahrplan erhalten, daher wird es langsam Zeit, einen Fahrplaneditor zu entwickeln. Auch das wird eine gewisse Zeit in Anspruch nehmen.
Und das letzte betrifft die Technik, die im Hintergrund läuft. Die Stellwerkslogik ist über Skripte definiert, die jeder ändern kann. Hier stellt sich jetzt ein Problem: Bisher gilt, dass jede Relaisgruppe ein eigenes Skript besitzt. Gerade bei den elektromechanischen Stellwerken haben wir aber eine große Vielfalt an Schaltungen, die sich teilweise nur im Detail unterscheiden. Momentan muss man hier den Quelltext der einen Relaisgruppe kopieren, und entsprechend die Details ändern, die anders sind - das bläht aber den Quelltext stark auf, und würde auf Dauer ein Problem darstellen bei der Wartung des Quelltextet. Eine gute Lösung für das Problem habe ich leider nicht gefunden - mit Vererbung zu arbeiten ist leider mit der konkreten Implementierung der Skript-Engine zu aufwendig und problematisch.
Momentaner Stand meiner Überlegungen ist, dass das Programmieren künftig nicht mit einem Standard-Texteditor erfolgt, sondern über einen speziellen Bibliotheks-Editor, der dann aus einzelnen Code-Schnippseln den endgültigen Quelltext zusammensetzt. Ich denke dieser Ansatz bietet viele Vorteile, auch wenn es für "Hardcore-Programmierer" sicherlich etwas ungewohnt sein dürfte - insbesondere auch, weil momentan die Arbeit direkt am Quelltext der Bibliotheken viel zu unübersichtlich geworden ist.
Das ist aber auch eine Arbeit, die sicherlich viel Zeit in Anspruch nehmen wird, von der man aber dann von außen nichts sehen wird - das Programm wird hinterher genau das selbe machen wie bisher auch, nur dass es eben im Hintergrund viel sinnvoller gelöst ist als bisher.