rendered paste body# 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);