* Melchior FRANZ -- Monday 29 January 2007:
> The replacement would be a simple $FG_ROOT/Aircraft/Generic/annunciator.nas

Or $FG_ROOT/Aircraft/Instruments/annunciator.nas?

And it would look like the attached file (with some small
changes planned). 

m.
var volts = props.globals.getNode("/systems/electrical/volts", 1);
var vac_l = props.globals.getNode("/systems/vacuum[0]/suction-inhg", 1);
var vac_r = props.globals.getNode("/systems/vacuum[1]/suction-inhg", 1);
var fuel_l = props.globals.getNode("/consumables/fuel/tank[0]/level-gal_us", 1);
var fuel_r = props.globals.getNode("/consumables/fuel/tank[1]/level-gal_us", 1);
var oil_px = props.globals.getNode("/engines/engine[0]/oil-pressure-psi", 1);
var elapsed = props.globals.getNode("/sim/time/elapsed-sec", 1);

ann = {
        new : func(p) {
                var m = { parents : [ann] };
                m.node = props.globals.getNode(p, 1);
                m.node.setBoolValue(0);
                m.stamp = nil;
                m.state = 0;
                return m;
        },
        switch : func(v) {
                if (v) {
                        if (!me.state) {
                                me.stamp = sec + 10;
                                me.state = 1;
                        }
                        if (sec < me.stamp) {
                                me.node.setBoolValue(clock);
                        } else {
                                me.node.setBoolValue(1);
                        }
                } else {
                        me.state or return;
                        me.node.setBoolValue(me.state = 0);
                }
        },
};


var ann_volts = ann.new("/instrumentation/annunciator/volts");
var ann_vac_l = ann.new("/instrumentation/annunciator/vacuum-left");
var ann_vac_r = ann.new("/instrumentation/annunciator/vacuum-right");
var ann_fuel_l = ann.new("/instrumentation/annunciator/fuel-left");
var ann_fuel_r = ann.new("/instrumentation/annunciator/fuel-right");
var ann_oil_px = ann.new("/instrumentation/annunciator/oil-pressure");

var clock = 0;
var sec = nil;

main = func {
        clock = !clock;
        sec = elapsed.getValue();

        var v = volts.getValue();
        if (v < 5.0 or !serviceable) {
                ann_volts.switch(0);
                ann_vac_l.switch(0);
                ann_vac_r.switch(0);
                ann_fuel_l.switch(0);
                ann_fuel_r.switch(0);
                ann_oil_px.switch(0);
        } else {
                ann_volts.switch(v < 24.5);
                ann_fuel_l.switch(fuel_l.getValue() < 0.5);
                ann_fuel_r.switch(fuel_r.getValue() < 0.5);
                ann_vac_l.switch(vac_l.getValue() < 0.3);
                ann_vac_r.switch(vac_r.getValue() < 0.3);
                ann_oil_px.switch(oil_px.getValue() < 20.0);
        }
        settimer(main, 0.5);
}


var serviceable = nil;
var L = _setlistener("/sim/signals/fdm-initialized", func {
        removelistener(L);

        _setlistener("/systems/electrical/serviceable", func {
                serviceable = cmdarg().getBoolValue();
        }, 1);

        main();
});
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to