// tarcza ostrzegawcza przejazdowa: (tor lewy n) 
// (powinna byc minimum 500m przed przejazdem) przy szlaku 100km/h - ponizej 100km/h raczej sie nie stosuje
// p1=nazwa p2,p3,p4=lokacja, p5=rotacja p6=symbol p7=nazwa przejazdu
// autor: Mytnik
//
// - daleko przed wskaznikiem tarczy umiescic event zamykania przejazdu
// - przejazd powinien podawac swoj stan do komorki (p1)_sem_distmem tarczy
//	zamkniety			->	przejazd 1 0
//	otwarty lub niedomkniety  	->	przejazd 0 1
// - przy wskazniku event zapalajacy tarcze (p1)_on
// - przy tarczy event (p1)_sem_info	update i ewentualna poprawka wyswietlania jakby stan przejazdu
//	zmienil sie gdy pociag jest miedzy wskaznikiem a tarcza
// - za tarcza event (p1)_off	wylaczenie i reset tarczy
//

origin (p2) (p3) (p4)
rotate 0 (p5) 0
//model semafora:
node 1000 0 (p1) model 0 0 0 0 topn.t3d tabl/(p6) lights 0 0 0 0 endmodel 

rotate 0 0 0
endorigin

//memcell do pamietania stanu przejazdu:
node -1 0 (p1)_sem_mem memcell (p2) (p3) (p4) SetProximityVelocity 500 20 none endmemcell
node -1 0 (p7)_sem_distmem memcell (p2) (p3) (p4) przejazd 0 1 none endmemcell

//zdarzenia okreslajace predkosc na przejezdzie:
event (p1)_sem_info_slow updatevalues 1.0 (p1)_sem_mem SetProximityVelocity 500 20 endevent
event (p1)_sem_info_vmax updatevalues 1.0 (p1)_sem_mem SetProximityVelocity 500 -1 endevent

event (p1)_osp1 multiple 0 (p7)_sem_distmem (p1)_sem_ligh1 (p1)_sem_info_slow condition memcompare * * 1 endevent
event (p1)_osp2 multiple 0 (p7)_sem_distmem (p1)_sem_ligh2 (p1)_sem_info_vmax condition memcompare * 1 * endevent

event (p1)_sem_ligh1 lights 1.0 (p1) 0 0 1 1 endevent
event (p1)_sem_ligh2 lights 0.0 (p1) 1 1 0 0 endevent

event (p1)_on multiple 0 none (p1)-osp2 (p1)-osp1 endevent

// uszkodzony semafor - nieoswietlony:
event (p1)_off multiple 0 none (p1)_sem_ligh0 (p1)_sem_info_slow endevent
event (p1)_sem_ligh0 lights 0.0 (p1) 0 0 0 0 endevent

//odczyt z pamieci:
event (p1)_sem_info multiple 0 none (p1)-sem-info (p1)_on endevent
event (p1)-sem-info getvalues 1.0 (p1)_sem_mem endevent

