[Flightgear-devel] 737-electrical.nas

2006-03-09 Thread Justin Smithies
Hi Marcus,
   I tried your nasal scripts for the electrical system and i 
get the following errors.

Nasal runtime error: undefined symbol
  
at 
/opt/flightgear/share/FlightGear/Aircraft/737-Sim/Systems/737-electrical.nas, 
line 9

I just saved the files from your email.

I have them running in the order of 

electrical.nas
737-electrical.nas

I even tried them the other way around.

Any ideas ?

Justin Smithies


---
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnkkid=110944bid=241720dat=121642
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] 737-electrical.nas

2006-03-09 Thread Markus Barenhoff
Justin Smithies wrote:

Hi!

 I just saved the files from your email.
 
 I have them running in the order of 
 
 electrical.nas
 737-electrical.nas
 
 I even tried them the other way around.

Ok, i've attached my current version to this mail.

I've forgotten to say, that i'am using e as module name for the
framework, to save my fingers :)

put this your 737-300-set.xml into the nasal block:
---snip---
electrical-base
fileAircraft/737-300/Systems/electrical.nas/file
modulee/module
/electrical-base

electrical
fileAircraft/737-300/Systems/737-electrical.nas/file
/electrical
---snip---

cu Markus

-- 
Markus Barenhoff - Hamburg - Germany - Earth
url: http://www.alios.org/ - mail: [EMAIL PROTECTED]
pgpkey: 0xAE7C7759 fp: 79 64 AA D9 B7 16 F5 06  6A 88 5F A9 4D 49 45 BB

##
# Copyright (c) 2006 Markus Barenhoff [EMAIL PROTECTED]
#
# This file is protected by the GNU Public License. For more details,
# please see the text file COPYING.
##

# TODO:
#  - all the FIXMEs
#  - automatic load shedding (galley)
#  - generator drive disconnect
#  - ac/dc meter stuff

net  = e.ElecNet.new();

# 
# helper functions
#
setprop_b() = func {
props.globals.getNode(arg[0], 1).setBoolValue(arg[1]);
};

#
# sources
#
apu = e.ElecNode.new();
apu.type = source;
apu.name = apu;
apu.u_transformer = func {
# FIXME: implment apu stuff
me.voltage = 115.0;
};
net.addSourceNode(apu);

external = e.ElecNode.new();
external.type = source;
external.name = external;
external.u_transformer = func {
# FIXME: implement external
me.voltage = 115.0;
};
net.addSourceNode(external);

enggen1 = e.ElecNode.new();
enggen1.type = source;
enggen1.name = generator1;
enggen1.u_transformer = func {
rpm = getprop(/engines/engine[0]/n1);
factor = rpm / 30;
if(factor  1.0) {
factor = 1.0;
}
me.voltage = (115 * factor) + (5.0 * (rand() - 0.5));
};
net.addSourceNode(enggen1);

enggen2 = e.ElecNode.new();
enggen2.type = source;
enggen2.name = generator2;
enggen2.u_transformer = func {
rpm = getprop(/engines/engine[1]/n1);
factor = rpm / 30;
if(factor  1.0) {
factor = 1.0;
}
me.voltage = (115 * factor) + (5.0 * (rand() - 0.5));
};
net.addSourceNode(enggen2);

# FIXME: implement battery stuff
battery = e.ElecNode.new();
battery.type = source;
battery.name = battery;
net.addSourceNode(battery);

# busses
genbus1 = e.ElecNode.new(); 
genbus1.name = genbus1; 

genbus2 = e.ElecNode.new(); 
genbus2.name = genbus2; 

extern_ac_bus = e.ElecNode.new();
extern_ac_bus.name = extern_ac_bus;

grd_svc_bus = e.ElecNode.new();
grd_svc_bus.name = ground_service_bus;

main_bus1 = e.ElecNode.new();
main_bus1.name = main_bus1;

main_bus2 = e.ElecNode.new();
main_bus2.name = main_bus2;

xfr_bus1 = e.ElecNode.new();
xfr_bus1.name = xfr_bus1;

xfr_bus2 = e.ElecNode.new();
xfr_bus2.name = xfr_bus2;

dc_bus1 = e.ElecNode.new();
dc_bus1.name = dc_bus1;

dc_bus2 = e.ElecNode.new();
dc_bus2.name = dc_bus2;

dctie_bus = e.ElecNode.new();
dctie_bus.name = dctie_bus;

hot_battery_bus = e.ElecNode.new();
hot_battery_bus.name = hot_battery_bus;

# relays
genswrelay1 = e.ElecNode.new();
genswrelay1.name = genswrelay1;
genswrelay1.type = relay;
genswrelay1.switch = func { 
getprop(/controls/electric/genbuspanel/gen0);
}; 

genswrelay2 = e.ElecNode.new();
genswrelay2.name = genswrelay2;
genswrelay2.type = relay; 
genswrelay2.switch = func { 
getprop(/controls/electric/genbuspanel/gen1);
};

apuswrelay1 = e.ElecNode.new();
apuswrelay1.name = apuswrelay1;
apuswrelay1.type = relay;
apuswrelay1.switch = func { 
getprop(/controls/electric/genbuspanel/apugen0);
}; 

apuswrelay2 = e.ElecNode.new();
apuswrelay2.name = apuswrelay2;
apuswrelay2.type = relay; 
apuswrelay2.switch = func { 
getprop(/controls/electric/genbuspanel/apugen1);
};

grdpwrrelay = e.ElecNode.new();
grdpwrrelay.name = grdpwrrelay;
grdpwrrelay.type = relay; 
grdpwrrelay.switch = func { 
getprop(/controls/electric/genbuspanel/grdpwr);
};

grdsvcrelay1 = e.ElecNode.new();
grdsvcrelay1.name = grdsvcrelay1;
grdsvcrelay1.type = relay; 
grdsvcrelay1.switch = func { 
getprop(/controls/electric/misc/grdsvcswitch);
};

grdsvcrelay2 = e.ElecNode.new();
grdsvcrelay2.name = grdsvcrelay2;
grdsvcrelay2.type = relay; 
grdsvcrelay2.switch = func { 
(!getprop(/controls/electric/misc/grdsvcswitch));
};

gengenbusrelay1 = e.ElecNode.new();
gengenbusrelay1.name = gengenbusrelay1;
gengenbusrelay1.type = relay;
gengenbusrelay1.switch = func {0;}; 

apugenbusrelay1 = e.ElecNode.new();
apugenbusrelay1.name = apugenbusrelay1; 
apugenbusrelay1.type = relay; 
apugenbusrelay1.switch = func {0;};

extgenbusrelay1 = e.ElecNode.new();
extgenbusrelay1.name = extgenbusrelay1;
extgenbusrelay1.type =