Konverter EBuLa-Schnittstelle Loksim3D zu Zusi 3

  • Loksim3D bietet ja nun eine Schnittstelle, auf der die EBuLa-Daten ausgegeben werden. Es fehlt bisher aber noch ein fertig entwickeltest Anzeige Programm dafür. Um eine schöne EBuLa-Darstellung zu bekommen, habe ich nun einen Umsetzer des Loksim3D- auf das Zusi3-Protokoll geschrieben. Er ist aber nur auf die wesentlichen Funktionen für den Fahrplan beschränkt. Als Anzeigesoftware kommen TriFan für das iPad und natürlich ZusiDisplay, sofern man Zusi 3 besitzt, in Frage. Der Umfang ist aber wirklich auf das beschränkt, was in Loksim3D übermittelt wird und was TriFan/ZusiDisplay zur Anzeige benötigen. Ich selber betreibe es mit TriFan auf einem iPad3.


    Das Programm Loksim3DFPtoTriFan.py liegt unter https://github.com/machinae-ve…humbau/tree/main/Software neben meiner Führertischsoftware zum Download.


    Es gibt aber leider eine ganze Reihe von Einschränkungen:

    - Ich lerne noch programmieren mit Python. Wenn man ein mit dem Programm verbundenes TriFan/ZusiDisplay beendet, stürzt das Python-Programm ab.

    - Mit der Demostrecke funktioniert es ganz anständig. Die anderen von mir ausprobierten Strecken liefern oft nur eine Teilansicht. Sehr häufig fehlen die Zeiten. Ich vermute, dass dies an den teilweise wohl eher sehr alten Strecken liegen wird.

    - Da Loksim3D zumindest bei der Demo-Strecke auch Brücken über den Bahnstrecke als Tunnel ausgibt, habe ich die entsprechende Funktion im Programm auskommentiert.

    - Beim Laden eines neuen Fahrplans werden von Losim3D anscheinend nur die alten Daten mit den Neuen überschrieben. Wenn der neue Fahrplan kürzer als der vorherige ist, bleiben am Ende die Daten des alten Fahrplans stehen. Deswegen muss man Loksim3D für einen Fahrplanwechsel neu starten. Bitte an die Loksim3D-Entwickler: Vor dem Neuschreiben sollte der Fahrplanspeicher wieder mit den Default-Bytes gefüllt werden.

    - Die Funktionen Geschwindigkeit für Neigezüge, verdeckte Geschwindigkeitsbeschränkung, Gegengleis-Piktogramme, Gleisdarstellung und Sägezahnlinie sind nicht realisiert. Ich habe sie bei Loksim3D auch noch nie gesehen. Wenn mir jemand einen entsprechenden Fahrplan nennt, rüste ich es gerne nach.

    - Die Fahrplan-Kopfdaten Zuggattung, Zugnummer, Baureihe, Zugmasse, Bremshundertstel, Höchstgeschwindigkeit, Zuglänge, Startpunkt und Bremsstellung werden fest vorbelegt, weil ich keine Notwendigkeit dafür sah. Das kann man, soweit Loksim3D die Daten zur Verfügung stellt, bei Bedarf noch ändern.

    - Da Loksim3D kein Datum zu kennen scheint, verwende ich das aktuelle Systemdatum.


    Vielleicht nützt es ja dem einen oder anderen. Über konstruktive Kritik würde ich mich freuen, damit ich es weiter verbessern kann.

  • PatrickR

    Hat das Thema freigeschaltet
  • Tach,

    na dann möchte ich mal. :-)

    - Es ist in der Tat so, das einige Zeiten nicht übertragen werden, weil sie einfach nicht da sind. Neben der Demo-Strecke hat die Saale-Bahn ebenfalls die entsprechenden Zeiten.

    - Das Brücken/Tunnel-Problem ist bekannt und noch ungelöst.

    - Es werden immer maximal 32km Daten ausgegeben und der String ist dynamisch. D.h. gegen Ende der Strecke wird dieser kürzer als 32km. Wenn Du noch alte Daten in Deinem Datencontainer stehen, dann muß Du dafür sorgen, das dieser vor dem erneuten Einlesen der Daten leer ist.

    - Die Geschwindigkeit für Neigezüge wird übertragen wenn vorhanden. 'Verdeckte' Geschwindigkeit sollten auch übertragen werden. Der Rest ist in den Loksimdaten nicht enthalten und wird daher auch nicht übertragen.

    - Ein Teil der Daten wird übertragen. Siehe: SEP-Schnittstelle des Loksim3D Bitte auch die Schnittstellenspezifikation beachten.

    - Das Tagesdatum ist in der Regel das Rechnerdatum, :-)


    BTW: Du studierst auch der TH Köln?


    HTH


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

  • Hallo Uwe,


    - Ich dachte mir, dass es an den Strecken liegt. Die Saale-Bahn hat wieder etwas viel des Guten, da dort die ganzen Geschwindigkeiten für das Gegengleis im Fahrplantext stehen, wo sie bei EBuLa nicht hingehören.

    - Ich lese 81920 Bytes Fahrplandaten ein und schreibe diese in einen String. Dabei kann eigentlich nichts altes stehen bleiben. Was bedeutet, der String ist dynamisch? Ich hatte den Eindruck, dass er immer gleich lang ist und der ungenutzte Teil mit 0xFF aufgefüllt ist. Die Begrenzung auf 32 km kommt davon, dass die Position eine 16 bit-Zahl mit Vorzeichen ist?

    - Gibt es Strecken mit Neigetechnik und nicht signalisierten Geschwindigkeiten? Wenn nicht lohnt sich auch der Aufwand nicht, eine solche Strecke in Zusi 3 zu finden, um dort nachzuschauen, wie der Eintrag in der XML-Datei lauten muss.

    - Ich weiß und ich werde mal schauen, diese Daten noch zu empfangen und einzutragen.

    - Rechnerdatum und Systemdatum meint dasselbe, oder?


    Für's Studium bin ich schon etwas alt, aber für's Seniorenstudium noch zu jung. Ich arbeite an der TH Köln.


    Viele Grüße Wolfgang

  • Moin Wolfgang,


    da habe ich Dich glatt für einen Deiner Studenten gehalten. ;-)

    - Die 32km kommen daher, das die Planning area im ETCS/ERTMS-Display maximal 32km darstellt. Ansonsten ist die Länge des Strings ersteinmal nicht begrenzt. Allerdings können per UDP auch nur rund 64000 Byte übertragen werden.

    - Falls ich mich nicht irre, ist die Saalebahn von Rainer mit GNT ausgerüstet.

    - Da Loksim kein Datum überträgt, verwende ich immer das verfügbare Datum. Vieleicht sollte man zukünftig die Systemzeit des Loksimrechners einfach komplett übertragen. Mal schaun.


    Gruss

    Uwe

    --
    Wenn du die Götter zum Lachen bringen willst, mach’ einen Plan.

    2 Mal editiert, zuletzt von taler ()

  • Hallo Uwe,


    naja, sehen kannst Du mich hier ja nicht, sonst könnte ich mich geschmeichelt fühlen ;)


    - Bei der Demostrecke Altenstein-Hainfurt werden 40 km Strecke an EBuLa-Daten ein einem Rutsch übertragen. Da musst Du etwas anderes gemeint haben.

    - Tunnel werden ja heutzutage mit Namen im EBuLa eingetragen und BÜ mit Streckenkilometerangabe. Beim Tunnel Blomstädt habe ich das mal versucht. In Richtung V wird mir der Name auch angezeigt in Richtung R leider nicht.

    - Um GNT zu realisieren, muss ich erstmal die Syntax in der Zusi3-XML-Datei haben und dafür muss ich in Zusi3 mal eine GNT-Strecke fahren. Das mache ich noch, es hat aber keine hohe Priorität.

    - Über nicht signalisierte Geschwindigkeiten müsste ich in Zusi3 mal stolpern, da ich auch hier die Syntax nicht kenne.

    - Die Zughöchstgeschwindigkeit, die Bremshundertstel und die Zuglänge kann ich noch einlesen und eintragen.


    Viele Grüße

    Wolfgang

  • Hat jemand eine Idee, wie ich einen Sprung in der Kilometrierung beim Anschluss zweier Strecken aus den EBuLa-Daten herauslese? Auf der Demo-Strecke ist in Neustadt Hbf so ein Sprung. Zusi3 kennt einen extra Befehl im Datenformat, da ja an der Stelle ein Strich in die Streckenkilometerspalte gemacht werden muss und die alte und die neue Kilometrierung unter und über diesem Strich stehen müssen.


    Viele Grüße

    Wolfgang

  • Ich habe das Programm um die Punkte nicht signalisierte Geschwindigkeit und GNT-Geschwindigkeit erweitert und das Ganze mit der Saale-Strecke ausprobiert. Prinzipiell geht das, aber es gibt folgende Punkte von der Strecken-, Loksim3D- und TriFan-Seite:


    - ZusiDisplay akzeptiert folgende Zeichen im Textfeld nicht: < > und das Yen-Zeichen. Aber die sollen dort eigentlich auch nicht stehen, sondern die Informationen gehören in die entsprechenden Felder. Beim Yen-Zeichen ist das schon so. Hier müssten bei der Saale-Bahn nur die zusätzlich gesetzten Textfelder entfernt werden. Ob die Texte für das Gegengleis sinnvoll eingetragen werden können, weiß ich nicht. Aktuell ersetzte ich das gesamte Textfeld durch "gelöscht". Sicherlich kann man es auch parsen und nur das Zeichen bzw. die Klammern und ihren Inhalt rauslöschen, aber dafür habe ich aktuell keine Zeit.


    - Damit GNT-Geschwindigkeiten von ZusiDisplay dargestellt werden, muss eine GNT-Anfang-Tafel vorhanden sein. Diese fehlt bei der Saale-Bahn. Da habe ich jetzt einen Workaround reingemacht, so dass ich sie im Fahrplan bei der ersten GNT-Geschwindigkeit darstelle.


    - Die Geschwindigkeiten werden bei der Saale-Bahn fast alle als nicht signalisiert angezeigt, was natürlich Unsinn ist, denn die Schilder stehen ja da. Da ich keine Konfigurationsmöglichkeit entdeckt habe, gehe ich von einem Fehler in Loksim aus.


    - Es wäre schön, wenn Loksim die Symbole alle verwenden würde und auch im Fahrplan darstellen würde. Ende des anschließenden Weichenbereichs und LZB gibt es ja schon, aber die Liste ist durchaus länger (ASig, Esig, Zugfunk...). LZB wird im Fahrplan nicht dargestellt, weswegen es dann nochmal im Text eingetragen ist. Das geht aber bei der Anzeige mit ZusiDisplay oder Trifan an der in der Ril 497 beschriebenen Darstellung vorbei.


    - Es ist tatsächlich so, dass Loksim die Reste eines alten Fahrplans sendet, wenn der neue kürzer ist. Einfacher Test: Mein Programm und ZusiDisplay schließen und neu öffnen -> Effekt bleibt; Loksim schließen und neu starten -> Effekt weg.


    - Zumindest mir ist noch unklar, was das zukünftige Datum für das Gleis genau bedeuten: Was bedeutet 3, dass der Zug im Gegengleis fährt? Dass muss man doch eigentlich am EBuLa selber umschalten. Wie übertrage ich unterschiedliche Texte für die beiden Gleise, denn die Signale heißen ja durchaus unterschiedlich?


    - TriFan kann anscheinend keine Funktionalität für GNT und nicht signalisierte Geschwindigkeiten.


    - Wenn ich Werte aus dem "normalen" Telegramm in den Fahrplan übernehmen soll, muss ich wissen, ob dieses zuerst gesendet wird. Beim Neustart und auch beim Start eines neuen Fahrplans. Das kann ich natürlich auch experimentell ermitteln, aber vielleicht weißt Du es auch ja.


    Die neue Software lade ich bis spätestens morgen Abend auf github hoch.


    Viele Grüße

    Wolfgang

  • Es ist lange her, dass ich mich mit der virtuellen Bahn intensiver befasst habe; aber wenn ich mich richtig erinnere, ist Loksims Feld "Geschwindigkeit nicht signalisiert" nicht im Kontext des Fahrplans (inverse Darstellung) zu verstehen, sondern ob die Geschwindigkeitsangabe einen Einfluss auf den Hauptsignalbegriff hat (entsprechender Hl-Begriff, Hp2, Ks mit Zs3 etc.) oder nicht.

    Triebfahrzeugführer im Streckendienst der DB Fernverkehr in Frankfurt/Main
    BR: 101, 120, 147.5, IC-Steuerwagen, IC2-Steuerwagen, 401 ("ICE 1"), 402 ("ICE 2"), 403 ("ICE 3"), 406 ("ICE 3M"/"ICE 3MF"), 407 ("neuer ICE 3"), 411 ("ICE T"), 415 ("ICE T")

  • - Damit GNT-Geschwindigkeiten von ZusiDisplay dargestellt werden, muss eine GNT-Anfang-Tafel vorhanden sein. Diese fehlt bei der Saale-Bahn.

    Hallo Wolfgang,


    wie sieht so eine Tafel denn aus? Im Signalbuch ist sie nicht zu finden, sollte dort ja wohl unter 301.9001 Orientierungszeichen erscheinen.

    Ich kenne GNT-Hinweise nur aus der La.



    Gruß

    Gerd

    Ein Kluger bemerkt alles. Ein Dummer macht über alles eine Bemerkung. Heinrich Heine

  • Hat jemand eine Idee, wie ich einen Sprung in der Kilometrierung beim Anschluss zweier Strecken aus den EBuLa-Daten herauslese?

    Ich überlegte zuerst, in der Spezifikation fürs SEP ein Flag für einen Sprung einzubauen.
    Deutlich einfacher und auch sinvoller wäre, wenn bei Sprüngen zwei Einträge mit der gleiche relativen Position und verschiedenen Kilometrierungen übertragen würden.


    Also z.B. so:


    ...wobei ein Sprung bei von 20,0 nach 9,7 ginge. Beide haben die relative Postion von 4500m.


    LG

    Jens

  • Dafür müsste Loksim3D geändert werden, richtig?

    Ich glaube, die EBuLa-Schnittstelle müsste etwas ausführlicher beschrieben werden. Mir ist ja auch noch die Funktion von "Geschwindigkeit nicht signalisiert" völlig unklar.


    Viele Grüße Wolfgang