Zuggreifer: Fixes und Melden-Funktion
This commit is contained in:
parent
365da6cd9b
commit
5a4e5402c9
@ -1,3 +1,8 @@
|
|||||||
|
function ZuggreiferMelden(...)
|
||||||
|
local Zeitstempel = string.format("%02d:%02d:%02d", EEPTimeH, EEPTimeM, EEPTimeS)
|
||||||
|
print(Zeitstempel," Zuggreifer: ",...)
|
||||||
|
end
|
||||||
|
|
||||||
-- Erwartet im Anlagenscript definierte Zuggreifer-Tabelle:
|
-- Erwartet im Anlagenscript definierte Zuggreifer-Tabelle:
|
||||||
-- Schluessel ist die Signal-ID
|
-- Schluessel ist die Signal-ID
|
||||||
-- Wert ist eine Liste von Gleisen vor dem Signal
|
-- Wert ist eine Liste von Gleisen vor dem Signal
|
||||||
@ -18,13 +23,13 @@ function ZuggreiferInstallieren(Optionen)
|
|||||||
if Optionen == nil then Optionen={} end
|
if Optionen == nil then Optionen={} end
|
||||||
for Signal, Schienen in pairs(Zuggreifer) do
|
for Signal, Schienen in pairs(Zuggreifer) do
|
||||||
if EEPGetSignal(Signal) == 0 then
|
if EEPGetSignal(Signal) == 0 then
|
||||||
print("Zuggreifer findet Signal "..Signal.." nicht")
|
ZuggreiferMelden("finde Signal "..Signal.." nicht")
|
||||||
end
|
end
|
||||||
-- Schienen fuer die Gleisbesetztabfrage registrieren
|
-- Schienen fuer die Gleisbesetztabfrage registrieren
|
||||||
for i=1,#Schienen do
|
for i=1,#Schienen do
|
||||||
local SchienenID = math.abs(Schienen[i])
|
local SchienenID = math.abs(Schienen[i])
|
||||||
if not EEPRegisterRailTrack(SchienenID) then
|
if not EEPRegisterRailTrack(SchienenID) then
|
||||||
print("Zuggreifer "..Signal.." findet Gleis "..SchienenID.." nicht")
|
ZuggreiferMelden("Signal "..Signal.." findet Gleis "..SchienenID.." nicht")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- Vorherigen Callback retten
|
-- Vorherigen Callback retten
|
||||||
@ -44,12 +49,13 @@ function ZuggreiferInstallieren(Optionen)
|
|||||||
-- Nix tun, wenn das Signal auf Halt gestellt wurde
|
-- Nix tun, wenn das Signal auf Halt gestellt wurde
|
||||||
local Fahrt, V_max = leseSignal(Signal)
|
local Fahrt, V_max = leseSignal(Signal)
|
||||||
if not Fahrt then return end
|
if not Fahrt then return end
|
||||||
|
if type(V_max) ~= "number" then V_max = Optionen.V end
|
||||||
if type(V_max) ~= "number" then V_max = 40 end
|
if type(V_max) ~= "number" then V_max = 40 end
|
||||||
-- Zug ermitteln
|
-- Zug ermitteln
|
||||||
local Zugname, Richtung = ZuggreiferAbfragen(Zuggreifer[Signal])
|
local Zugname, Richtung = ZuggreiferAbfragen(Zuggreifer[Signal])
|
||||||
-- Erfolg melden
|
-- Erfolg melden
|
||||||
if Optionen.Melden then
|
if Optionen.Melden then
|
||||||
print("Signal ",Signal," hat ",Zugname and Zugname or "ins Leere"," gegriffen")
|
ZuggreiferMelden("Signal ",Signal," hat ",Zugname and Zugname or "ins Leere"," gegriffen")
|
||||||
end
|
end
|
||||||
-- Abfahrbefehl erteilen
|
-- Abfahrbefehl erteilen
|
||||||
if Zugname then
|
if Zugname then
|
||||||
@ -95,7 +101,7 @@ function ZuggreiferAbfragen(Schienen)
|
|||||||
-- Richtung des Fahrzeugs im Zug ermitteln, benoetigt EEP 15 Plugin 1
|
-- Richtung des Fahrzeugs im Zug ermitteln, benoetigt EEP 15 Plugin 1
|
||||||
local FahrzeugVorwaerts = true
|
local FahrzeugVorwaerts = true
|
||||||
if type(EEPRollingstockGetOrientation) == "function" then
|
if type(EEPRollingstockGetOrientation) == "function" then
|
||||||
local ok, FahrzeugVorwaerts = EEPRollingstockGetOrientation(FahrzeugName)
|
_, FahrzeugVorwaerts = EEPRollingstockGetOrientation(FahrzeugName)
|
||||||
end
|
end
|
||||||
-- Richtung zusammenmultiplizieren und mit Zugnamen zurueckgeben
|
-- Richtung zusammenmultiplizieren und mit Zugnamen zurueckgeben
|
||||||
return Zugname, SchienenMap[Gleis] * ( FahrzeugRichtung > 0 and 1 or -1) * (FahrzeugVorwaerts and 1 or -1)
|
return Zugname, SchienenMap[Gleis] * ( FahrzeugRichtung > 0 and 1 or -1) * (FahrzeugVorwaerts and 1 or -1)
|
||||||
|
Loading…
Reference in New Issue
Block a user