Gemeine Falle bei der Verwendung von EEPGetSignalTrainName(ID,PosNr)

Are you sure that you placed your question/contribution in the apropriate thread and that you have selected an expressive headline?
  • Ich möchte auf eine gemeine Falle, die beim Verwenden von EEPGetSignalTrainName bei mir aufgetreten ist, hinweisen.

    Ausgangspunkt ist ein Signal ID=1. Zwischen dem Vorsignal und dem Hauptsignal befindet sich ein weiteres unsichtbares Signal ID=10. Zwischen dem Vorsignal ID=10 und dem Hauptsignal ID=10 löst ein Signalpunkt bei Überfahrt eine LUA Funktion ZeigeNamen() aus, die EEPGetSignalTrainName(1,1) aufruft. Der Zugname ist dann leer! Verschiebe ich den Kontakt, so dass er innerhalb der Haltestrecke von Signal ID=1 aber außerhalb der Signalstrecke des unsichtbaren Signals liegt, funktioniert alles einwandfrei.

    Ist das ein Bug oder steckt was vernünftiges hinter diesem Verhalten?

  • Ist das ein Bug oder steckt was vernünftiges hinter diesem Verhalten?

    Es steckt etwas vernünftiges dahinter.

    Es kann immer nur ein Signal die Kontrolle über einen Zug haben. Wenn dein Zug also das zweite Vorsignal überfährt und das zugehörige Signal nicht auf "Fahrt" steht, dann übernimmt dieses Signal den Zug und das andere vergisst ihn.

  • Hallo Goetz,

    Danke für diese Erläuterung.


    Ich weiß nicht, wie ich Dich anders erreichen kann. Deshalb über diesen Weg ein Hinweis zu einem Fehler, der mir im Lua Skript der Anlage

    Wendelsteins_Kurvenbrueck_v13 aufgefallen ist.

    Der Versuch den VT98 Richtung Westen zur Einmündung ins Hauptgleis im Osten im GBS zu schalten schlägt fehl. Stattdessen fährt er zum Haltepunkt Bay-Wa.

    Das liegt an einem Fehler bei [FS_6] bei Signal 117:



    ---------- Ausfahrt West Gleis 3 ------------------------------------------


    [117]= {Typ = 3,

    ....

    [FS_6] = function()EEPSetSignal(117,FS_1);EEPSetSignal(196,FS_1);EEPSetSignal(162,FS_2);EEPSetSignal(186,FS_1);EEPSetSignal( 68,FS_4);EEPSetSignal(188,FS_2);EEPChangeInfoStructure("#253",SignalTextTable[115][FS_6]);EEPSaveData(409,1);if EEPGetSignal(217) == 1 then EEPShowInfoSignal(115,false);EEPShowInfoStructure("#253",true);end;WendeWest();end,


    ...


    },


    hier muss es heißen: EEPSetSignal(162,FS_3);


    Sollte es hier der falsche Platz gewesen sein, erbitte ich einen Hinweis wohin so etwas gehört. Danke.