//-- przejazd niestrzezony na linii dwutorowej. droga waska max 5m.
// p1 - nazwa przejazdu, p2,p3,p4-polozenie,p5-rotacja, p6,p7 - nazwy torow przebiegajacych przez przejazd


event (p1)_warning putvalues 10 none (p2) (p3) (p4) Warning_signal 4 1 endevent

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

//--- krzyze  
node -1 0 none model -7 0 4 90 przejazdy/g4_b20.t3d none endmodel
node -1 0 none model 7 0 -4 -90 przejazdy/g4_b20.t3d none endmodel


//--- komorka do wysylania informacji o predkosci dla samochodow
node -1 0 (p1)_syg_mem1 memcell -7 0 4 SetVelocity 0 -1 none endmemcell
node -1 0 (p1)_syg_mem2 memcell 7 0 -4 SetVelocity 0 -1 none endmemcell

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

//elementarne zdarzenia:

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

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


// globalne procedury sterujace:
//--- zamykanie przejazdu - musi byc podpiete jako event1 do torow (z kazdego kierunku) daleko przed przejazdem 
// oraz do toru na samym przejezdzie (zabezpieczenie na wypadek mijania sie 2 pociagow!)
event (p1)_zamykaj multiple 0 none (p1)_stop1 (p1)_stop2 endevent

//---otwieranie przejazdu - zdarzenia musza byc podpiete jako event1 do torow tuz za przejazdem (dla kazdego kierunku)
event (p1)_otwieraj1 multiple 3 none (p1)_otwierajgdywolny1 endevent
event (p1)_otwieraj2 multiple 3 none (p1)_otwierajgdywolny2 endevent

event (p1)_otwierajgdywolny1 multiple 1 (p6) (p1)_go1 (p1)_go2 condition trackfree endevent
event (p1)_otwierajgdywolny2 multiple 2 (p7) (p1)_go1 (p1)_go2 condition trackfree endevent

// komentarz: ostatnie zdarzenia otwieraj* sa warunkowe (conditional) - wyzwalane jest przez najechanie pojazdu na tor
// za przejazdem ale tylko gdy tor o nazwie (p6) lub (p7) ktory jest na przejezdzie bedzie wolny.

rotate 0 0 0
endorigin