Liebe DDL-Fangemeinde,
seit geraumer Zeit bin ich nun schon
stiller, aber begeisterter Beobachter dieses
Forums und schätze das hohe Niveau der Ideen und Konzepte die hier ausgetauscht werden. Nicht nur diese Mailingliste, sondern auch die DDL-Homepage waren bis dato Quelle zahlreicher Anregungen für meine eigenen Projekte. An dieser Stelle daher mal ein dickes Lob
... !!!!
Auslöser dieser Mail ist eigentlich ein Posting bezüglich des Rüdesheimer Treffens, in dem ein Referenz-Server in Java erwähnt wird... Aber zuersteinmal zu meiner Person:
- mein Name ist Sebastian Lang
(23)
- ich studiere seit Herbst 1998 Angewandte Informatik an der FH-Trier - bin derzeit im 7. Semester und werde nächstes Jahr meinen Abschluss als Dipl. Informatiker (FH) machen - habe mich im 6. Semester im Rahmen eines Softwareengineering-Projektes mit der Implementierung einer Digitalen Modellbahnsteuerung in Java beschäftigt Da auch ich seit jungen Jahren ein begeisterter
Modellbahner (Fleischmann HO) bin, aber seit
Studienbeginn keinen Platz mehr für meine große (analoge) Anlage habe, beschäftige ich mich zunehmend mit Konzepten rund um die digitale, softwaregestütze Modellbahnsteuerung. Die Freude an dem Modellbahnhobby war daher auch
die treibende Kraft in besagtem
Sofwareengineering Projekt und als nach zahllosen Tagen und Nächten (Programmierung, Testen, Dokumentieren,...) endlich alles funktionierte war bei der Präsentation nicht nur ich begeistert, sondern auch zahllose Kollegen und Professoren. Diesem Umstand ist es nun zu verdanken, dass im
laufenden 7. Semester
inzwischen 3 Studenten (evtl. demnächst 5) + 1 Professor aktiv an der Weiterentwicklung der erstellten "Beta-Demo-Modellbahn-Java-Software" arbeiten, wobei ich quasi als "Projektleiter" agiere. Aber warum erzähl ich das alles ..?
Wärend die erste Beta-Version noch ein eigenes
Protokoll (angelehnt an SRCP 0.7 aber
nicht kompatibel) implementierte, ist in dem laufenden Projekt eine Anbindung bzw. Implementierung von SRCP (0.8 ???) angedacht... Auch auf die Gefahr hin, dass diese Mail etwas
länger wird, möchte ich das aktuelle Projekt
kurz vorstellen: Projekt-Struktur: (falls nicht erkennbar, bitte bescheid sagen ...) 1 1+-----------------+n 1+----------------+ Booster--------RS232----| BOOSTER-Server |---TCP/IP---| | +--------+ +-----------------+ | LOGIK-Server |1 n| | | + |---TCP/IP---| Client | 1 1+-----------------+n 1| Datenhaltung | | | S88-HSI-LDT----RS232----| Feedback-Server |---TCP/IP---| | +--------+ +-----------------+ +----------------+ |1 |1 | | geplant geplant | | | | TCP/IP TCP/IP (SRCP) (SRCP) +----------------+n | | | SRCP-Server |-------------- + | +----------------+ |n +----------------+ | SRCP-Clients | | (JMan,..) | +----------------+ Beschreibung(größtenteils Planung, vieles aber
schon implementiert):
BOOSTER-Server
- Implementiert in C/C++ - MM und NRMA-DCC Protokoll [Booster-Seite] - eigenes Protokoll [TCP/IP -Seite] - führt "stur" alle Befehle aus, die der Logik-Server schickt - steuert den Booster (generiert Befehle) - managed Refresh-Zyklen - etc.. Feedback-Server
- Implementiert in Java - steuert HighSpeedInterface von LDT über serielle Schnittstelle - kommuniziert über zwei Kanäle mit dem Logikserver - Command-Port: Kommunikation Logik-Server <=> Feedback-Server - Feedback(Poll)Port: ähnlich dem Infoport bei SRCP - etc.. Logik-Server
- in Java implementiert - Steuerzentrale für alles - kann mehrere Booster- und Feedback-Server ansteuern (->Großanlage) - kann mehrere Clients bedienen - hier werden Loks, Dekoder, Module( Weichen, Signale, etc..), Gleispläne definiert - zentrale Datenhaltung (Gleispläne, Decoderinfos, u.v.m) - geplanter Funktionsumfang: - Gleispläne anzeigen/editieren/löschen - Fahrstrassen anzeigen/editieren/löschen - Zugverfolgung - Loks und Decoder(weichen, Signale, etc..) steuern via Gleisplan - Verwaltung von Video-Streams (Funk-Kameras in Loks, Webcam über der Anlage,..) - verwaltet Clients (Passwortzugang, Rechte, etc..) - hat Funktionalität von Chat-Server - Programmierung von Dekodern - informiert Clients ständig über das Geschehen auf der Anlage - u.v.m. Clients
- in Java implementiert - greifen auf Resourcen des Logik-Servers zu - laden sich vom Server: Gleispläne, verfügbare Loks, Module(Weichen, Signale, etc...) etc.. - können Loks, Weichen, Signale. etc. steuern entweder über graphische Schaltelemente oder direkt im Gleisplan - können mit anderen Usern chatten - sehen (falls vorhanden) Video-Streams der Loks, Anlage - etc.. Nun kommt SRCP und DDL ins Spiel ... , jedenfalls
ist das angedacht. D.h. als Ersatz für den eigenen
Booster-Server und Feedback-Server kann auch ein (mehrere) SRCP-Server(erddcd) genutz werden. Weiterhin ist geplant, dass sich der Logik-Server selbst wiederum zusätzlich wie ein SRCP-Server verhält, um bestehende SRCP Clients zu bedienen. D.h. der Logik-Server kann sich quasi zwischen SRCP-Server und SRCP-Clients schalten. Grund: wir/ich halten die DDL-Software und SRCP für so gut, dass sie/es einfach weitere Verbreitung finden sollte, zumal es schon einige sehr gute Clients gibt (J-Man, SpDrS60, ...) und "ihr" wohl schon etwas mehr Erfahrung mit "effiziente Protokollgenerierung" habt. Diese guten Eigenschaften sollen auf diesem Weg kombiniert werden mit einer zentralen Logik. So, ich weiss das war ziemlich viel fürs erste, aber vielleicht interessiert dieses Thema ja den ein oder anderen. Sinn dieser ganzen Aktion soll eben auch die Loslösung von einer bestimmten Betriebsystem- Plattform (wie Linux, Windows, etc..)sein, daher auch Java als Programmiersprache. Ausserdem haben wir uns zum Ziel gesetzt,alles möglichts einfach zu halten (einfach zu bedienen, einfach zu installieren) um auch den Laien dafür zu begeistern. Anmerkung: Auch eine Web-Client-Implementierung auf Java-Basis ist angedacht. D.h. man braucht nur noch einen Browser um auf einer Modellbahnanlage zu spielen ... Im ersten Projekt hat sich jedoch gezeigt, dass für die "Echtzeitgenerierung" von Decoderprotokollen Java einfach noch zu lahm ist (auch wenn ich einen funktionierenden Java-Server hinbekommen habe). ==> der Booster-Server in diesem Projekt wird daher wieder in C/C++ implementiert ... ;-) Falls jemand mehr Infos zu diesem Projekt haben
möchte (Dokumentationen, Screenshots, etc..) kann er
sich gerne an mich wenden (es existiert leider noch keine Internetseite. Diese ist allerdings auf unserem FH-Server geplant -> dort soll sich dann auch die erste Eisenbahn via Web-Browser steuern und hoffentlich auch sehen lassen (via Video-Stream)). So, das wars... (und so eine lange Mail werd ich auch bestimmt nicht mehr schreiben, versprochen...) MFG Sebastian
|