98 lines
3.1 KiB
Lua
98 lines
3.1 KiB
Lua
require("Prototype")
|
|
require("On")
|
|
serpent=require("serpent")
|
|
|
|
-- Versionsnummer. Diese dient vor allem zu Diagnosezwecken.
|
|
-- Ich weiss jetzt noch nicht, wie viele verschiedene Versionen von dem Script spaeter herumfliegen werden.
|
|
KsKitVer=0
|
|
|
|
-- Grundsätzliche Typen von Signalbildern
|
|
FAHRT=1
|
|
HALT=2
|
|
RANGIERFAHRT=3
|
|
ERSATZFAHRT=4
|
|
AUS=5
|
|
|
|
-- Grundsignal, entspricht allen Signalen vor EEP 6 sowie dem Unsichtbaren Signal aus dem Grundbestand
|
|
Signal=Prototype()
|
|
|
|
function Signal:init(tab)
|
|
for k,v in pairs(tab) do
|
|
local setter = "set_"..tostring(k)
|
|
if type(self[setter]) == "function" then
|
|
self[setter](self, v)
|
|
else
|
|
error("Signaleigenschaft "..k.." hier nicht erlaubt")
|
|
end
|
|
end
|
|
end
|
|
|
|
-- ID to use with EEPGetSignal/EEPSetSignal
|
|
function Signal:set_ID(id)
|
|
if type(id) ~= "number" then error("Signal ID must be a number") end
|
|
self.ID = id
|
|
end
|
|
Signal.set_1=Signal.set_ID
|
|
|
|
-- Anfahrtsgeschwindigkeit ans Haltzeigende Signal
|
|
function Signal:set_V_halt(v)
|
|
if type(v) ~= "number" then error("V_halt must be number") end
|
|
self.V_halt = v
|
|
end
|
|
|
|
-- Unsichtbares Signal: Zugbeeinflussung
|
|
function Signal:set_V_regler(id)
|
|
self.V_regler=id
|
|
end
|
|
|
|
function Signal:set_Begriffe(Begriffe)
|
|
self.RFSS=false -- Rangierfahrstrassenstart
|
|
self.RFSZ=false -- Rangierfahrstrassenziel
|
|
self.ZFSS=false -- Zugfahrstrassenstart
|
|
self.ZFSZ=false -- Zugfahrstrassenziel
|
|
for i=1,#Begriffe do
|
|
if Begriffe[i][1]==RANGIERFAHRT then self.RFSS=true end
|
|
if Begriffe[i][1]==HALT then self.RFSZ=true; self.ZFSZ=true end
|
|
if Begriffe[i][1]==FAHRT then self.ZFSS=true end
|
|
end
|
|
self.Begriffe=Begriffe
|
|
end
|
|
|
|
-- Signalbilder OSJD/EZMG/Hl-Signale des Ostblocks
|
|
-- V_erwarten=60 wird durch V_erwarten=40 signalisiert
|
|
Hl1={FAHRT}
|
|
Hl2={FAHRT, V_max=100}
|
|
Hl3a={FAHRT, V_max=40}
|
|
Hl3b={FAHRT, V_max=60}
|
|
Hl4={FAHRT, V_erwarten=100}
|
|
Hl5={FAHRT, V_max=100, V_erwarten=100}
|
|
Hl6a={FAHRT, V_max=40, V_erwarten=100}
|
|
Hl6b={FAHRT, V_max=60, V_erwarten=100}
|
|
Hl7={FAHRT, V_erwarten=40}
|
|
Hl8={FAHRT, V_max=100, V_erwarten=40}
|
|
Hl9a={FAHRT, V_max=40, V_erwarten=40}
|
|
Hl9b={FAHRT, V_max=60, V_erwarten=40}
|
|
Hl10={FAHRT, H_erwarten=true}
|
|
Hl11={FAHRT, V_max=100, H_erwarten=true}
|
|
Hl12a={FAHRT, V_max=40, H_erwarten=true}
|
|
Hl12b={FAHRT, V_max=60, H_erwarten=true}
|
|
Hl13={HALT}
|
|
|
|
-- Zusatzsignale (DS 301 Namen)
|
|
Zs1={ERSATZFAHRT}
|
|
Sh1={RANGIERFAHRT} -- war Ra12 bei DR
|
|
|
|
-- V11NHK10024 HL-Signale der DR *V40* - Grundset
|
|
Hl_Signal_Ausfahrt_V40=Signal{Begriffe={Hl13,Hl1,Hl3a,Zs1,Sh1,Hl13}}
|
|
Hl_Signal_Ausfahrt_Vmax=Signal{Begriffe={Hl13,Hl1,Zs1,Sh1,Hl13}}
|
|
Hl_Signal_Block=Signal{Begriffe={Hl13,Hl1,Zs1,Hl13}}
|
|
Hl_Signal_Einfahrt_V40=Signal{Begriffe={Hl13,Hl1,Hl7,Hl10,Hl3a,Hl9a,Hl12a,Zs1,Hl13}}
|
|
Hl_Signal_Selbstblock=Signal{Begriffe={Hl13,Hl1,Hl10,Hl13}}
|
|
Hl_Signal_Vorsignal_V40=Signal{Begriffe={Hl10,Hl7,Hl1}}
|
|
Hl_Signal_Vorsignalwiederholer_V40=Signal{Begriffe={Hl10,Hl7,Hl1}}
|
|
|
|
-- V11NHK10025 HL-Signale der DR *V60* - Erweiterungsset
|
|
Hl_Signal_Ausfahrt_V60=Signal{Begriffe={Hl13,Hl1,Hl3b,Hl3a,Zs1,Sh1,Hl13}}
|
|
Hl_Signal_Einfahrt_V60=Signal{Begriffe={Hl13,Hl1,Hl4,Hl7,Hl10,Hl3b,Hl6b,Hl9b,Hl12b,Hl3a,Hl6a,Hl9a,Hl12a,Zs1,Hl13}}
|
|
Hl_Signal_Vorsignalwiederholer_V60=Signal{Begriffe={Hl10,Hl7,Hl1}}
|