Hallo,
also das Knäuel muss man erst einmal entwirren:
1. Unsere Signale senden den Signalstatus strikt getrennt. Das ist auch bei den Formsignalen V3 schon so. Also der Hauptsignalstatus wird bei der Funktion "GetSignalState" und der Vorsignalstatus bei der Funktion "GetDistantState" gemeldet. Der gemeldetete Signalstaus stimmt in der Regel mit dem farbigen Punkt der 2D-Map überein:
Grün = CLEAR (Hp1, Vr1)
Gelb = WARNING (Hp2, Vr2, Vr0)
ROT = BLOCKED (Hp0)
2. Welcher Magnet ist verbaut?
Bei mehreren Mageneten spielt die Reihenfolge keine Rolle. Die Nachrichten werden durchgereicht.
Was ist das für ein Magnet: "S_PZB_Kombi.bin". Ist ja eine verheißungsvolle Namensgebung aber in der Bin steht der Name: "De PZB 1000Hz Perm".
Was darauf schließen lässt, dass de Magnet "permanent" arbeitet, also nicht von einem Signal abhängig ist.
Der besagte Magnet S_PZB_Kombi ist von Kuju.
3. Nun die Frage, welcher Skript wird angesteuert: "PZB_1000Hz_Speed_Reduction". Das also die nächste Überraschung.
Und im Skrpt natürlich die Erkenntnis: Hier wird kein Signal abgefragt.... Das Ding gibt immer ein 1000Hz Signal ab, auch wenn kein Signal in der Nähe ist.
Ein 2000Hz Magnet meldet in der Regel nur etwas, wenn der Signalstatus "BLOCKED" ist, also das Signal Halt zeigt.
Zitat
-- If the signal ahead is blocked
if nextSignalState == BLOCKED then
Call( "SendConsistMessage", CUSTOM_MSG, PZB_2000_ARG )
end
Ein 1000Hz Magnet am Kombisignal fragt ja nur den Vorsignalstatus ab und gibt nur eine Warnung ab, wenn dieser nicht "CLEAR" ist. Der steht auf Vr1 also CLEAR und somit auch keine Warnung.
Zitat
-- If the signal ahead isn't clear...
if (nextSignalState ~= CLEAR) then
Call( "SendConsistMessage", CUSTOM_MESSAGE, PZB_1000_ARG )
end
Gruß Schuster