Aspect: red IconE: r_bE.xpm IconW: r_bW.xpm IconN: r_bN.xpm IconS: r_bS.xpm Action: stop Aspect: yellow IconE: y_bE.xpm IconW: y_bW.xpm IconN: y_bN.xpm IconS: y_bS.xpm Action: speedLimit 30 Aspect: green IconE: g_bE.xpm IconW: g_bW.xpm IconN: g_bN.xpm IconS: g_bS.xpm Action: proceed Aspect: red_yellow30 IconE: r_yE.xpm IconW: r_yW.xpm IconN: r_yN.xpm IconS: r_yS.xpm Action: speedLimit 30 Aspect: red_yellow60 IconE: r_yE.xpm IconW: r_yW.xpm IconN: r_yN.xpm IconS: r_yS.xpm Action: speedLimit 60 Aspect: red_yellow100 IconE: r_yE.xpm IconW: r_yW.xpm IconN: r_yN.xpm IconS: r_yS.xpm Action: speedLimit 100 Aspect: red_green IconE: r_gE.xpm IconW: r_gW.xpm IconN: r_gN.xpm IconS: r_gS.xpm Action: speedLimit 60 OnInit: .aspect = red end OnCleared: if .aspect = red if next.aspect = red if .switchThrown if .nextLimit = 30 .aspect = red_yellow30 else if .nextLimit = 60 .aspect = red_yellow60 else if .nextLimit = 100 .aspect = red_yellow100 else .aspect = yellow end end end else .aspect = yellow end else if .switchThrown .aspect = red_green else .aspect = green end end else .aspect = red end end OnUpdate: if .aspect = red return end if next.aspect = red if .switchThrown if .nextLimit = 30 .aspect = red_yellow30 else if .nextLimit = 60 .aspect = red_yellow60 else if .nextLimit = 100 .aspect = red_yellow100 else .aspect = yellow end end end else .aspect = yellow end else if .switchThrown .aspect = red_green else .aspect = green end end end