All pastes #1220950 Raw Edit

Miscellany

public text v1 · immutable
#1220950 ·published 2008-10-06 19:04 UTC
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);