# Output to Saitek X52 Pro MFD #var registerTimerX52 = func {settimer(arg[0], 0);} var ledcmd = "x52output led "; var button = { new : func(number){ var m = { parents : [button] }; m.number = number; # set member "number" from constructor new() arg return m; }, set_red : func { print("set red"); unix.run(ledcmd~me.number~" 1"); unix.run(ledcmd~(me.number+1)~" 0"); }, set_amber : func { print("set amber"); unix.run(ledcmd~me.number~" 1"); unix.run(ledcmd~(me.number+1)~" 1"); }, set_green : func { print("set amber"); unix.run(ledcmd~me.number~" 0"); unix.run(ledcmd~(me.number+1)~" 1"); }, }; var buttonA = button.new(2); var buttonB = button.new(4); var buttonD = button.new(6); var buttonE = button.new(8); var buttonT1 = button.new(10); var buttonT2 = button.new(12); var buttonT3 = button.new(14); var buttonCH = button.new(16); var buttoni = button.new(18); var gearLights = func{ var lever = getprop("controls/gear/gear-down"); var gear0 = getprop("gear/gear[0]/position-norm"); var gear1 = getprop("gear/gear[1]/position-norm"); var gear2 = getprop("gear/gear[2]/position-norm"); if (lever == nil ){lever=1;} if (gear0 == nil ){gear0=1;} if (gear1 == nil ){gear1=1;} if (gear2 == nil ){gear2=1;} var pos = (gear0 * gear1 * gear2); print("lever ",lever); print("gear0 ",gear0); print("gear1 ",gear1); print("gear2 ",gear2); print("pos ",pos); if (pos == 0 and lever == 0){ print("tried to set red"); buttonA.set_red(); buttonB.set_red(); } elsif (pos == 1 and lever == 1){ print("tried to set green"); buttonA.set_green(); buttonB.set_green(); } else { print("selected amber"); #buttonA.set_amber(); #buttonB.set_amber(); gearLightsAmber(); } } var gearLightsAmber = func{ print("tried to set amber"); buttonA.set_amber(); buttonB.set_amber(); props.globals.getNode("/gear/update",1),setBoolValue(1); } var start = func { setlistener("controls/gear/gear-down",gearLights); setlistener("gear/update",gearLights); } setlistener("sim/signals/fdm-initialized",start);