//-- przejazd strzezony z rogatkami drewnianymi 6.0m o napedzie elektrycznym,
// sygnalizacja swietlna i dzwiekowa, linia jednotorowa. 
// p1 - nazwa przejazdu, p2,p3,p4-polozenie,p5-rotacja, p6 - nazwa odcinka izolowanego toru na przejezdzie
//Przejazd dostosowany do scenerii Tomaszewo (stacja Podole): nie korzystac na innych sceneriach!

event (p1)_warning putvalues 1.0 none (p2) (p3) (p4) Warning_signal 1 2 endevent

origin (p2) (p3) (p4)
rotate 0 (p5) 0

//--- modele sygnalizacji przejazdowej 
node -1 0 (p1)_syg1 model -4.5 0.0 5.0 90 pkp/1sp2cc.t3d none lights 0 0 endmodel
node -1 0 (p1)_syg2 model 4.5 0.0 -5.0 -90 pkp/1sp2cc.t3d none lights 0 0 endmodel

node -1 0 (p1)_rog1 model -4.5 0.0 5.0 90 pkp/1szlab_d_60.t3d none endmodel
node -1 0 (p1)_rog2 model 4.5 0.0 -5.0 -90 pkp/1szlab_d_60.t3d none endmodel

node 50 0 (p1)_dzwon1 sound -3.5 0.0 6.0 crossingbell1.wav endsound
node 50 0 (p1)_dzwon2 sound 3.5 0.0 -6.0 crossingbell2.wav endsound

//--- komorki do wysylania informacji o predkosci dla samochodow
node -1 0 (p1)_syg_mem1 memcell -5 0.0 5 SetVelocity -1 -1 none endmemcell
node -1 0 (p1)_syg_mem2 memcell 5 0.0 -5 SetVelocity -1 -1 none endmemcell
node -1 0 (p1)_mem_bell memcell 0 0 0 Off 0 0 none endmemcell

event (p1)_bell_work updatevalues 0 (p1)_mem_bell On * * endevent
event (p1)_bell_stop updatevalues 0 (p1)_mem_bell Off * * endevent

//odczyt z drogi przed przejazdem
event (p1)_syg_info1 getvalues 1.0 (p1)_syg_mem1 endevent
event (p1)_syg_info2 getvalues 1.0 (p1)_syg_mem2 endevent

//elementarne zdarzenia:

//--- migajace lampki
event (p1)_0_sygn1 lights 0.8 (p1)_syg1 1.35 -1.35 endevent
event (p1)_0_sygn2 lights 0.8 (p1)_syg2 1.35 -1.35 endevent
//--- zgaszone lampki
event (p1)_1_sygn1 lights 0.8 (p1)_syg1 0 0 endevent
event (p1)_1_sygn2 lights 0.8 (p1)_syg2 0 0 endevent
//-- wlaczanie dzwiekow dzwonow przejazdowych
event (p1)_bell1on sound 0.0 (p1)_dzwon1 -1 endevent
event (p1)_bell2on sound 0.0 (p1)_dzwon2 -1 endevent
//-- wylaczanie dzwiekow dzwonow przejazdowych
event (p1)_bell1off sound 1.0 (p1)_dzwon1 0 endevent
event (p1)_bell2off sound 1.0 (p1)_dzwon2 0 endevent
//zamkniecie rogatek
event (p1)_rog1on animation 5 (p1)_rog1 rotate ramie01 90.0 0.0 0.0 15 endevent
event (p1)_rog2on animation 5 (p1)_rog2 rotate ramie01 90.0 0.0 0.0 15 endevent
//otwarcie rogatek
event (p1)_rog1off animation 1 (p1)_rog1 rotate ramie01 0.0 0.0 0.0 15 endevent
event (p1)_rog2off animation 1 (p1)_rog2 rotate ramie01 0.0 0.0 0.0 15 endevent


// wpisywanie informacji o tym ze przejazd zostal zamkniety:
//--- zatrzymywanie pojazdow drogowych 
event (p1)_stop1 updatevalues 2.0 (p1)_syg_mem1 SetVelocity 0 0 endevent
event (p1)_stop2 updatevalues 2.0 (p1)_syg_mem2 SetVelocity 0 0 endevent

//wpisywanie informacji o tym ze przejazd zostal otwarty:
event (p1)_go1 updatevalues 10.0 (p1)_syg_mem1 SetVelocity -1 -1 endevent
event (p1)_go2 updatevalues 10.0 (p1)_syg_mem2 SetVelocity -1 -1 endevent

// globalne procedury sterujace:
//--- zamykanie przejazdu - musi byc podpiete jako event1 do torow (z kazdego kierunku) daleko przed przejazdem 
event (p1)_zamykaj multiple 0.0 none (p1)_stop1 (p1)_stop2 (p1)_0_sygn1 (p1)_0_sygn2 (p1)_rog1on (p1)_rog2on (p1)_zamykajcd (p1)_bell1on (p1)_bell2on (p1)_bell_work (p1)_dzw_petla 
endevent

//---otwieranie przejazdu: zwolnienie odcinka izolowanego
event (p6):free multiple 1.0 none (p1)_go1 (p1)_go2 (p1)_rog1off (p1)_rog2off
(p1)_bell1off (p1)_bell2off (p1)_bell_stop 
(p1)_zgas_lampki
endevent

//--- gaszenie sygnalizacji po ukonczeniu podnoszenia rogatek
event (p1)_zgas_lampki multiple 6 none
(p1)_1_sygn1 (p1)_1_sygn2 endevent

event (p1)_dzw_petla multiple 5.0 none (p1)_petla_wyk endevent
event (p1)_petla_wyk multiple 0.0 (p1)_mem_bell (p1)_bell1on (p1)_bell2on (p1)_dzw_petla condition memcompare On * * endevent

rotate 0 0 0
endorigin
