Merge branch 'master' of gitorious.org:fg/fgdata
This commit is contained in:
commit
be31842654
15 changed files with 30685 additions and 0 deletions
326
aircraft/A380/Models/FlightDeck/FrontPanel/pfd3.ac
Normal file
326
aircraft/A380/Models/FlightDeck/FrontPanel/pfd3.ac
Normal file
|
@ -0,0 +1,326 @@
|
|||
AC3Db
|
||||
MATERIAL "2 - Default" rgb 0 0 0 amb 1 1 1 emis 1.00305 1.00305 1.00305 spec 1 1 1 shi 32 trans 0.051
|
||||
OBJECT world
|
||||
kids 10
|
||||
OBJECT poly
|
||||
name "ASIribbon"
|
||||
loc -0.000344567 0 0.00757819
|
||||
data 21
|
||||
glass_2 - Default.001
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/spd-tape.png"
|
||||
crease 30.000000
|
||||
numvert 4
|
||||
-0.081523 0.003013 -0.011317
|
||||
-0.081523 0.003013 -0.032694
|
||||
-0.172583 0.003013 -0.011317
|
||||
-0.172583 0.003013 -0.032694
|
||||
numsurf 2
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
0 0.104186 0.0163751
|
||||
1 0.860545 0.0163751
|
||||
3 0.860545 0.191284
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
2 0.104186 0.191284
|
||||
0 0.104186 0.0163751
|
||||
3 0.860545 0.191284
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "ALTribbon"
|
||||
loc 2.23517e-06 0.003013 -0.108395
|
||||
data 21
|
||||
glass_2 - Default.001
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/alt-tape.png"
|
||||
crease 30.000000
|
||||
numvert 4
|
||||
-0.173657 0 -0.025269
|
||||
-0.173657 0 -0.00874686
|
||||
-0.0820301 0 -0.025269
|
||||
-0.0820301 0 -0.00874685
|
||||
numsurf 2
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
1 0.0327498 0.101037
|
||||
3 0.0327498 -0.000345744
|
||||
0 0.155658 0.101037
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
3 0.0327498 -0.000345744
|
||||
2 0.155658 -0.000345744
|
||||
0 0.155658 0.101037
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "horizon"
|
||||
loc -0.000344567 0.003013 0.00917348
|
||||
data 21
|
||||
glass_2 - Default.002
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
|
||||
crease 30.000000
|
||||
numvert 4
|
||||
-0.172583 0 -0.120554
|
||||
-0.172583 0 -0.0453412
|
||||
-0.081523 0 -0.120554
|
||||
-0.081523 0 -0.0453412
|
||||
numsurf 2
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
1 0.107085 0.642585
|
||||
3 0.107085 0.351712
|
||||
0 0.395711 0.642585
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
3 0.107085 0.351712
|
||||
2 0.395711 0.351712
|
||||
0 0.395711 0.642585
|
||||
kids 0
|
||||
OBJECT group
|
||||
name "alt_grp"
|
||||
loc -0.154681 0.00626756 -0.056844
|
||||
kids 5
|
||||
OBJECT poly
|
||||
name "alt_digit1"
|
||||
loc 0.0264196 0 -0.0635095
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
|
||||
crease 45.000000
|
||||
numvert 4
|
||||
-0.00499354 0 0.00264534
|
||||
-0.00499354 0 -0.00264532
|
||||
0.00499354 0 -0.00264532
|
||||
0.00499354 0 0.00264534
|
||||
numsurf 1
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 4
|
||||
3 0.880859 0
|
||||
2 0.935547 0
|
||||
1 0.935547 0.0996094
|
||||
0 0.880859 0.0996094
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "alt_digit2"
|
||||
loc 0.0264196 0 -0.0687808
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
|
||||
crease 45.000000
|
||||
numvert 4
|
||||
0.00499354 0 0.00264534
|
||||
0.00499354 0 -0.00264531
|
||||
-0.00499354 0 -0.00264531
|
||||
-0.00499354 0 0.00264534
|
||||
numsurf 1
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 4
|
||||
0 0.880859 0
|
||||
1 0.935547 0
|
||||
2 0.935547 0.0996094
|
||||
3 0.880859 0.0996094
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "alt_digit3"
|
||||
loc 0.0264196 0 -0.073841
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
|
||||
crease 45.000000
|
||||
numvert 4
|
||||
0.00499354 0 0.00264534
|
||||
0.00499354 0 -0.00264528
|
||||
-0.00499354 0 -0.00264531
|
||||
-0.00499354 0 0.00264534
|
||||
numsurf 1
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 4
|
||||
0 0.880859 0
|
||||
1 0.935547 0
|
||||
2 0.935547 0.0996094
|
||||
3 0.880859 0.0996094
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "alt_digit4"
|
||||
loc 0.026525 0 -0.078586
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
|
||||
crease 45.000000
|
||||
numvert 4
|
||||
-0.00784004 0 0.00169648
|
||||
-0.00784004 0 -0.0016965
|
||||
0.00784008 0 -0.0016965
|
||||
0.00784005 0 0.0016965
|
||||
numsurf 1
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 4
|
||||
3 0.880859 -0.105469
|
||||
2 0.935547 -0.105469
|
||||
1 0.935547 0.197266
|
||||
0 0.880859 0.197266
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "alt_digit5"
|
||||
loc 0.026525 0 -0.08217
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
|
||||
crease 45.000000
|
||||
numvert 4
|
||||
0.00784007 0 0.00169653
|
||||
0.00784008 0 -0.00169647
|
||||
-0.00784004 0 -0.00169648
|
||||
-0.00784004 0 0.0016965
|
||||
numsurf 1
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 4
|
||||
0 0.880859 -0.105469
|
||||
1 0.935547 -0.105469
|
||||
2 0.935547 0.197266
|
||||
3 0.880859 0.197266
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "VS_scale"
|
||||
loc -0.127563 0.0036868 -0.148204
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/pfd2.png"
|
||||
crease 45.000000
|
||||
numvert 4
|
||||
0.0566647 0 0.00585595
|
||||
0.0566647 0 -0.00585592
|
||||
-0.0566647 0 -0.00585592
|
||||
-0.0566647 0 0.00585595
|
||||
numsurf 1
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 4
|
||||
0 0.626953 0
|
||||
1 0.689453 0
|
||||
2 0.689453 0.480469
|
||||
3 0.626953 0.480469
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "GSscale"
|
||||
loc -0.211645 0.00626495 -0.069631
|
||||
data 21
|
||||
glass_2 - Default.004
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
|
||||
crease 30.000000
|
||||
numvert 4
|
||||
0.0456492 0 -0.0420058
|
||||
0.121373 0 -0.0420057
|
||||
0.0456492 0 -0.0485116
|
||||
0.121373 0 -0.0485116
|
||||
numsurf 2
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
0 0.549809 0.00489019
|
||||
1 0.549809 0.25617
|
||||
3 0.513916 0.25617
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
2 0.513916 0.00489019
|
||||
0 0.552171 0.00489019
|
||||
3 0.513916 0.257104
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "LOCscale"
|
||||
loc 0.0146204 0.00590829 -0.00340151
|
||||
data 21
|
||||
glass_2 - Default.004
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
|
||||
crease 30.000000
|
||||
numvert 4
|
||||
-0.0934019 0 -0.103913
|
||||
-0.0934019 0 -0.0390822
|
||||
-0.0808759 0 -0.103913
|
||||
-0.0808759 0 -0.0390822
|
||||
numsurf 2
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
1 0.500285 0.049187
|
||||
3 0.500285 -0.00121022
|
||||
0 0.752498 0.049187
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
3 0.500285 0.00190065
|
||||
2 0.751565 0.00190065
|
||||
0 0.751565 0.049187
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "PFD_Mask"
|
||||
loc -4.59775e-05 -0.000184637 -2.23517e-08
|
||||
data 17
|
||||
glass_2 - Default
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/pfd1.png"
|
||||
crease 30.000000
|
||||
numvert 4
|
||||
-0.21 0.004231 -0.16
|
||||
-0.21 0.004231 -7.45058e-09
|
||||
-7.45058e-09 0.004231 -0.16
|
||||
0 0.004231 0
|
||||
numsurf 2
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
1 0.0551543 1.00026
|
||||
3 0.0549269 0.000442773
|
||||
0 1.00031 1.00026
|
||||
SURF 0x0
|
||||
mat 0
|
||||
refs 3
|
||||
3 0.0549269 0.000442773
|
||||
2 1.00017 0.000308543
|
||||
0 1.00031 1.00026
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "LOCneedle"
|
||||
loc -0.0739199 0.00646657 -0.0757288
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
|
||||
crease 180.000000
|
||||
numvert 4
|
||||
0.00561513 0 -0.00494666
|
||||
0.00561513 0 0.00494668
|
||||
-0.00561513 0 -0.00494666
|
||||
-0.00561513 0 0.00494668
|
||||
numsurf 2
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 3
|
||||
0 0.667969 0.349609
|
||||
3 0.636719 0.400391
|
||||
1 0.636719 0.349609
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 3
|
||||
0 0.667969 0.349609
|
||||
2 0.667969 0.400391
|
||||
3 0.636719 0.400391
|
||||
kids 0
|
||||
OBJECT poly
|
||||
name "GSneedle"
|
||||
loc -0.126658 0.00788147 -0.11512
|
||||
texture "Aircraft/A380/Textures/Panels/pfd/ati.png"
|
||||
crease 180.000000
|
||||
numvert 4
|
||||
0.00401081 0 -0.00387712
|
||||
0.00401081 0 0.00387713
|
||||
-0.00401081 0 -0.00387712
|
||||
-0.00401081 0 0.00387713
|
||||
numsurf 2
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 3
|
||||
0 0.71875 0.359375
|
||||
3 0.672852 0.386719
|
||||
1 0.672852 0.359375
|
||||
SURF 0x30
|
||||
mat 0
|
||||
refs 3
|
||||
0 0.71875 0.359375
|
||||
2 0.71875 0.386719
|
||||
3 0.672852 0.386719
|
||||
kids 0
|
4091
aircraft/A380/Models/FlightDeck/Glareshield/fcu_03.ac
Normal file
4091
aircraft/A380/Models/FlightDeck/Glareshield/fcu_03.ac
Normal file
File diff suppressed because it is too large
Load diff
3268
aircraft/A380/Models/Lights/light-cone.ac
Normal file
3268
aircraft/A380/Models/Lights/light-cone.ac
Normal file
File diff suppressed because it is too large
Load diff
22223
aircraft/A380/Models/Wings/wings.ac
Normal file
22223
aircraft/A380/Models/Wings/wings.ac
Normal file
File diff suppressed because it is too large
Load diff
262
aircraft/A380/Nasal/AirbusFMS.nas
Normal file
262
aircraft/A380/Nasal/AirbusFMS.nas
Normal file
|
@ -0,0 +1,262 @@
|
|||
#############################################################################
|
||||
#
|
||||
# Airbus Flight Management.
|
||||
#
|
||||
# Abstract:
|
||||
# This is a utility helper class for the moment, later to be expanded to do more.
|
||||
#
|
||||
#
|
||||
# Author: S.Hamilton Jan 2010
|
||||
#
|
||||
#
|
||||
# Copyright (C) 2010 Scott Hamilton
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
fms_trace = 0;
|
||||
|
||||
|
||||
## mode constants
|
||||
LNAV_OFF=0;
|
||||
LNAV_HDG=1;
|
||||
LNAV_TRACK=2;
|
||||
LNAV_LOC=3;
|
||||
LNAV_FMS=4;
|
||||
LNAV_RWY=5;
|
||||
|
||||
VNAV_OFF=0;
|
||||
VNAV_ALTs=1;
|
||||
VNAV_VS=2;
|
||||
VNAV_OPCLB=3;
|
||||
VNAV_FPA=4;
|
||||
VNAV_OPDES=5;
|
||||
VNAV_CLB=6;
|
||||
VNAV_ALTCRZ=7;
|
||||
VNAV_DES=8;
|
||||
VNAV_GS=9;
|
||||
VNAV_SRS=10;
|
||||
VNAV_LEVEL=11;
|
||||
|
||||
SPD_OFF=0;
|
||||
SPD_TOGA=1;
|
||||
SPD_FLEX=2;
|
||||
SPD_THRCLB=3;
|
||||
SPD_SPEED=4;
|
||||
SPD_MACH=5;
|
||||
SPD_CRZ=6;
|
||||
SPD_THRDES=7;
|
||||
SPD_THRIDL=8;
|
||||
|
||||
lnavStr = ["off","HDG","TRK","LOC","NAV","RWY"];
|
||||
vnavStr = ["off","ALT(s)","V/S","OP CLB","FPA","OP DES","CLB","ALT CRZ","DES","G/S","SRS","LEVEL"];
|
||||
spdStr = ["off","TOGA","FLEX","THR CLB","SPEED","MACH","CRZ","THR DES","THR IDL"];
|
||||
|
||||
MANAGED_MODE = -1;
|
||||
SELECTED_MODE = 0;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var AirbusFMS = {
|
||||
|
||||
new : func() {
|
||||
var m = {parents : [AirbusFMS]};
|
||||
m.FMSnode = props.globals.getNode("/instrumentation/fms",1);
|
||||
m.activeFpln = m.FMSnode.getNode("active-fpln",1);
|
||||
m.secFpln = m.FMSnode.getNode("secondary-fpln",1);
|
||||
m.depDB = nil;
|
||||
m.arvDB = nil;
|
||||
m.version = "V1.0.4";
|
||||
|
||||
##setlistener("/sim/signals/fdm-initialized", func m.init());
|
||||
return m;
|
||||
},
|
||||
|
||||
#############################################################################
|
||||
# output a debug message to stdout or file.
|
||||
#############################################################################
|
||||
tracer : func(msg) {
|
||||
var timeStr = getprop("/sim/time/gmt-string");
|
||||
var curAltStr = getprop("/position/altitude-ft");
|
||||
var curVnav = getprop("/instrumentation/flightdirector/vnav");
|
||||
var curLnav = getprop("/instrumentation/flightdirector/lnav");
|
||||
var curSpd = getprop("/instrumentation/flightdirector/spd");
|
||||
var athrStr = getprop("/instrumentation/flightdirector/at-on");
|
||||
var ap1Str = getprop("/instrumentation/flightdirector/ap");
|
||||
var altHold = getprop("/autopilot/settings/target-altitude-ft");
|
||||
var vsHold = getprop("/autopilot/settings/vertical-speed-fpm");
|
||||
var spdHold = getprop("/autopilot/settings/target-speed-kt");
|
||||
if (curVnav == nil) curVnav = "0";
|
||||
if (curLnav == nil) curLnav = "0";
|
||||
if (curSpd == nil) curSpd = "0";
|
||||
if (fms_trace > 0) {
|
||||
print("[AFMS] time: "~timeStr~" alt: "~curAltStr~", - "~msg);
|
||||
if (fms_trace > 1) {
|
||||
print("[AFMS] vnav: "~me.afs.vertical_text[curVnav]~", lnav: "~me.afs.lateral_text[curLnav]~", spd: "~me.afs.spd_text[curSpd]);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
####
|
||||
# init
|
||||
####
|
||||
init : func() {
|
||||
##me.tracer("FDM "~me.version~" ready");
|
||||
##settimer(func me.update(), 0);
|
||||
##settimer(func me.slow_update(), 0);
|
||||
},
|
||||
|
||||
### for high prio tasks ###
|
||||
update : func() {
|
||||
settimer(func me.update(), 1);
|
||||
},
|
||||
|
||||
### for low prio tasks ###
|
||||
slow_update : func() {
|
||||
me.tracer("FMS update");
|
||||
settimer(func me.slow_update(), 3);
|
||||
},
|
||||
|
||||
####
|
||||
# evaluate managed VNAV
|
||||
####
|
||||
evaluateManagedVNAV : func() {
|
||||
var retVNAV = VNAV_OFF;
|
||||
me.tracer("evaluateManagedVNAV");
|
||||
##var curAlt = getprop("/instrumentation/altimeter/indicated-altitude-ft");
|
||||
var curAlt = getprop("/position/altitude-ft");
|
||||
var curFlightMode = getprop("/instrumentation/ecam/flight-mode");
|
||||
var redAlt = getprop("/instrumentation/afs/thrust-reduce-alt");
|
||||
var accAlt = getprop("/instrumentation/afs/thrust-accel-alt");
|
||||
var crzAlt = getprop("/instrumentation/afs/thrust-cruise-alt");
|
||||
var crzAcquire = getprop("/instrumentation/afs/acquire_crz");
|
||||
var accelArm = getprop("/instrumentation/flightdirector/accel-arm");
|
||||
var clbArm = getprop("/instrumentation/flightdirector/climb-arm");
|
||||
var flapPos = me.getFlapConfig();
|
||||
var vnavMode = getprop("/instrumentation/flightdirector/vnav");
|
||||
var lnavMode = getprop("/instrumentation/flightdirector/lnav");
|
||||
var spdMode = getprop("/instrumentation/flightdirector/spd");
|
||||
var vsi = getprop("/instrumentation/vertical-speed-indicator/indicated-speed-fpm");
|
||||
var altSelect = getprop("/instrumentation/afs/vertical-alt-mode");
|
||||
var vsSelect = getprop("/instrumentation/afs/vertical-vs-mode");
|
||||
var spdSelect = getprop("/instrumentation/afs/speed-mode");
|
||||
var apMode = getprop("/instrumentation/flightdirector/autopilot-on");
|
||||
var bothSelect = MANAGED_MODE;
|
||||
if (altSelect == SELECTED_MODE or vsSelect == SELECTED_MODE) {
|
||||
bothSelect = SELECTED_MODE;
|
||||
}
|
||||
me.tracer("bothSelect: "~bothSelect);
|
||||
me.tracer("clbArm: "~clbArm);
|
||||
me.tracer("spdMode: "~spdMode);
|
||||
me.tracer("flapPos: "~flapPos);
|
||||
## managed Speed Reference System mode
|
||||
if (curAlt < accAlt and clbArm == 0 and bothSelect == MANAGED_MODE and (spdMode == SPD_FLEX or spdMode == SPD_TOGA or spdMode == SPD_THRCLB) and flapPos > 0 ) {
|
||||
retVNAV = VNAV_SRS;
|
||||
me.tracer("retVNAV = VNAV_SRS");
|
||||
}
|
||||
## managed climb
|
||||
if (curAlt >= accAlt and curAlt < (crzAlt-100) and crzAcquire == 0) {
|
||||
if (lnavMode == LNAV_FMS) {
|
||||
retVNAV = VNAV_CLB;
|
||||
me.tracer("retVNAV = VNAV_CLB");
|
||||
} else {
|
||||
retVNAV = VNAV_OPCLB;
|
||||
me.tracer("retVNAV = VNAV_OPCLB");
|
||||
}
|
||||
}
|
||||
## managed cruise alt
|
||||
if (curAlt > (crzAlt-1000) and bothSelect == MANAGED_MODE) {
|
||||
retVNAV = VNAV_ALTCRZ;
|
||||
me.tracer("retVNAV = VNAV_ALTCRZ");
|
||||
}
|
||||
## managed descend
|
||||
var wpLen = getprop("/autopilot/route-manager/route/num");
|
||||
var curWp = getprop("/autopilot/route-manager/current-wp");
|
||||
var foundTD = 0;
|
||||
if (curWp > 0) {
|
||||
for(w=0; w < curWp; w=w+1) {
|
||||
var wpName = getprop("/autopilot/route-manager/route/wp["~w~"]/id");
|
||||
if (wpName == "T/D") {
|
||||
foundTD = 1;
|
||||
}
|
||||
}
|
||||
if(foundTD == 1 and curAlt > 400 and bothSelect == MANAGED_MODE) {
|
||||
if (lnavMode == LNAV_FMS) {
|
||||
retVNAV = VNAV_DES;
|
||||
me.tracer("retVNAV = VNAV_DES");
|
||||
} else {
|
||||
retVNAV = VNAV_OPDES;
|
||||
me.tracer("retVNAV = VNAV_OPDES");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getprop("/position/altitude-agl-ft") < 400 and vnavMode == VNAV_GS and lnavMode == LNAV_LOC) {
|
||||
## combined LAND mode....
|
||||
}
|
||||
|
||||
return retVNAV;
|
||||
},
|
||||
|
||||
##########
|
||||
# evaluate VNAV
|
||||
##########
|
||||
evaluateVNAV : func() {
|
||||
var retVNAV = VNAV_OFF;
|
||||
var apMode = getprop("/instrumentation/flightdirector/autopilot-on");
|
||||
if (apMode == 1) {
|
||||
retVNAV = me.evaluateManagedVNAV();
|
||||
|
||||
var altSelect = getprop("/instrumentation/afs/vertical-alt-mode");
|
||||
var vsSelect = getprop("/instrumentation/afs/vertical-vs-mode");
|
||||
if (altSelect == SELECTED_MODE) {
|
||||
retVNAV = VNAV_ALTs;
|
||||
}
|
||||
if (vsSelect == SELECTED_MODE) {
|
||||
retVNAV = VNAV_VS;
|
||||
}
|
||||
}
|
||||
return retVNAV;
|
||||
},
|
||||
|
||||
|
||||
#############
|
||||
# evaluate managed LNAV
|
||||
#############
|
||||
evaluateManagedLNAV : func() {
|
||||
var retLNAV = LNAV_OFF;
|
||||
|
||||
var agl = getprop("/position/altitude-agl-ft");
|
||||
|
||||
|
||||
return retLNAV;
|
||||
},
|
||||
|
||||
|
||||
|
||||
####
|
||||
# calculate the current flap position
|
||||
####
|
||||
getFlapConfig : func() {
|
||||
var flapConfig = 0;
|
||||
var currFlapPos = getprop("/fdm/jsbsim/fcs/flap-cmd-norm");
|
||||
if (currFlapPos == 0.2424) {
|
||||
flapConfig = 1;
|
||||
}
|
||||
if (currFlapPos == 0.5151) {
|
||||
flapConfig = 2;
|
||||
}
|
||||
if (currFlapPos == 0.7878) {
|
||||
flapConfig = 3;
|
||||
}
|
||||
if (currFlapPos == 1.0) {
|
||||
flapConfig = 4;
|
||||
}
|
||||
return flapConfig;
|
||||
}
|
||||
|
||||
};
|
||||
|
57
aircraft/A380/Nasal/TextRegion.nas
Normal file
57
aircraft/A380/Nasal/TextRegion.nas
Normal file
|
@ -0,0 +1,57 @@
|
|||
#
|
||||
# Simple utility to manage an array of text lines in a region.
|
||||
#
|
||||
#
|
||||
# Copyright (C) 2009 Scott Hamilton
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
var TextRegion = {
|
||||
new : func(lines, width, prefix){
|
||||
var me = {parents:[TextRegion]};
|
||||
|
||||
me.posLine = 0;
|
||||
me.baseNode = props.globals.getNode(prefix,1);
|
||||
me.maxWidth = width;
|
||||
me.maxLines = lines;
|
||||
for(var p = 0; p != lines; p=p+1) {
|
||||
var lineNode = me.baseNode.getNode("line["~p~"]",1);
|
||||
lineNode.setValue("");
|
||||
}
|
||||
|
||||
return me;
|
||||
},
|
||||
|
||||
|
||||
append : func(text) {
|
||||
var lineNode = me.baseNode.getNode("line["~me.posLine~"]",1);
|
||||
lineNode.setValue(text);
|
||||
if (me.posLine < me.maxLines) {
|
||||
me.posLine = me.posLine+1;
|
||||
}
|
||||
},
|
||||
|
||||
textAt : func(index, text) {
|
||||
var lineNode = me.baseNode.getNode("line["~index~"]",1);
|
||||
lineNode.setValue(text);
|
||||
me.posLine = index;
|
||||
},
|
||||
|
||||
clear : func() {
|
||||
for(var p = 0; p != me.maxLines; p=p+1) {
|
||||
var lineNode = me.baseNode.getNode("line["~p~"]",1);
|
||||
lineNode.setValue("");
|
||||
}
|
||||
me.posLine = 0;
|
||||
},
|
||||
|
||||
reset : func() {
|
||||
for(var p = me.posLine; p != me.maxLines; p=p+1) {
|
||||
var lineNode = me.baseNode.getNode("line["~p~"]",1);
|
||||
lineNode.setValue("");
|
||||
}
|
||||
me.posLine = 0;
|
||||
}
|
||||
}
|
BIN
aircraft/A380/Textures/Common/light-gradient-lamp.png
Normal file
BIN
aircraft/A380/Textures/Common/light-gradient-lamp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.9 KiB |
BIN
aircraft/A380/Textures/Panels/ecam/sd_fuel_02.png
Normal file
BIN
aircraft/A380/Textures/Panels/ecam/sd_fuel_02.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
126
aircraft/A380/XML/Effects/light-cone-left.eff
Normal file
126
aircraft/A380/XML/Effects/light-cone-left.eff
Normal file
|
@ -0,0 +1,126 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
A light "cone" effect, written by Lauri Peltonen (Zan)
|
||||
|
||||
With this effect, any object (most likely a cone) will
|
||||
light up everything inside of it. Might be usefull for
|
||||
landing lights etc.
|
||||
|
||||
Uses stencil buffer.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<PropertyList>
|
||||
<name>Effects/light-cone</name>
|
||||
<inherits-from>Effects/model-default</inherits-from>
|
||||
<parameters>
|
||||
<texture n ="0">
|
||||
<type>white</type>
|
||||
</texture>
|
||||
|
||||
<!-- Dunno if this does anything, it could be removed
|
||||
what does this do with rendering-hint=transparent? -->
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
</parameters>
|
||||
<technique n="8">
|
||||
|
||||
<!-- First pass, increase stencil when ground is in front of
|
||||
the lighting object -->
|
||||
<pass>
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
<lighting>false</lighting>
|
||||
|
||||
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- do not draw anything -->
|
||||
|
||||
<shade-model><use>shade-model</use></shade-model>
|
||||
<cull-face>front</cull-face>
|
||||
<!-- <rendering-hint>transparent</rendering-hint> -->
|
||||
<depth>
|
||||
<write-mask>false</write-mask>
|
||||
</depth>
|
||||
|
||||
<!-- Set stencil buffer to 1 if ground is in front of the back side
|
||||
of the light volume, otherwise zero -->
|
||||
<stencil>
|
||||
<function>always</function> <!-- S-test passes always -->
|
||||
<value>1</value>
|
||||
<z-fail>replace</z-fail> <!-- Replace current s-buffer with value 1 -->
|
||||
<pass>zero</pass> <!-- Zero everything "behind" the volume -->
|
||||
</stencil>
|
||||
</pass>
|
||||
|
||||
|
||||
<!-- Second pass, decrease stencil when ground is in front of the front
|
||||
side of the volume, in stencil buffer, 1 exists where ground
|
||||
(or other objects) is inside the lighting object! -->
|
||||
<pass>
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
<lighting>false</lighting>
|
||||
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- Do not draw anything -->
|
||||
<shade-model><use>shade-model</use></shade-model>
|
||||
<cull-face>back</cull-face>
|
||||
<!-- <rendering-hint>transparent</rendering-hint> -->
|
||||
<depth>
|
||||
<write-mask>false</write-mask>
|
||||
</depth>
|
||||
|
||||
<!-- Set s-buffer to 0 when ground is in front of the front side of the volume -->
|
||||
<stencil>
|
||||
<function>always</function> <!-- S-test passes always -->
|
||||
<z-fail>zero</z-fail> <!-- Zero s-buffer when z-buffer test fails -->
|
||||
</stencil>
|
||||
</pass>
|
||||
|
||||
<!-- Third pass, render light where there is 1 on stencil buffer -->
|
||||
<pass>
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
<lighting>false</lighting>
|
||||
<shade-model><use>shade-model</use></shade-model>
|
||||
<cull-face>back</cull-face>
|
||||
<!-- <rendering-hint>transparent</rendering-hint> -->
|
||||
<depth>
|
||||
<write-mask>false</write-mask>
|
||||
</depth>
|
||||
|
||||
<!-- Draw when S-buffer EQUALS value 1 -->
|
||||
<stencil>
|
||||
<function>equal</function>
|
||||
<value>1</value>
|
||||
</stencil>
|
||||
|
||||
<!-- Do additive blending, so increase the color value of
|
||||
the existing pixel by the light's color. The light object should
|
||||
have ambient & diffuse AND alpha should be around 0.2 or something -->
|
||||
<blend>
|
||||
<active>true</active>
|
||||
<source>dst-alpha</source>
|
||||
<destination>one</destination>
|
||||
</blend>
|
||||
|
||||
</pass>
|
||||
|
||||
</technique>
|
||||
</PropertyList>
|
126
aircraft/A380/XML/Effects/light-cone-right.eff
Normal file
126
aircraft/A380/XML/Effects/light-cone-right.eff
Normal file
|
@ -0,0 +1,126 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
A light "cone" effect, written by Lauri Peltonen (Zan)
|
||||
|
||||
With this effect, any object (most likely a cone) will
|
||||
light up everything inside of it. Might be usefull for
|
||||
landing lights etc.
|
||||
|
||||
Uses stencil buffer.
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<PropertyList>
|
||||
<name>Effects/light-cone</name>
|
||||
<inherits-from>Effects/model-default</inherits-from>
|
||||
<parameters>
|
||||
<texture n ="0">
|
||||
<type>white</type>
|
||||
</texture>
|
||||
|
||||
<!-- Dunno if this does anything, it could be removed
|
||||
what does this do with rendering-hint=transparent? -->
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
</parameters>
|
||||
<technique n="8">
|
||||
|
||||
<!-- First pass, increase stencil when ground is in front of
|
||||
the lighting object -->
|
||||
<pass>
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
<lighting>false</lighting>
|
||||
|
||||
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- do not draw anything -->
|
||||
|
||||
<shade-model><use>shade-model</use></shade-model>
|
||||
<cull-face>front</cull-face>
|
||||
<!-- <rendering-hint>transparent</rendering-hint> -->
|
||||
<depth>
|
||||
<write-mask>false</write-mask>
|
||||
</depth>
|
||||
|
||||
<!-- Set stencil buffer to 1 if ground is in front of the back side
|
||||
of the light volume, otherwise zero -->
|
||||
<stencil>
|
||||
<function>always</function> <!-- S-test passes always -->
|
||||
<value>1</value>
|
||||
<z-fail>replace</z-fail> <!-- Replace current s-buffer with value 1 -->
|
||||
<pass>zero</pass> <!-- Zero everything "behind" the volume -->
|
||||
</stencil>
|
||||
</pass>
|
||||
|
||||
|
||||
<!-- Second pass, decrease stencil when ground is in front of the front
|
||||
side of the volume, in stencil buffer, 1 exists where ground
|
||||
(or other objects) is inside the lighting object! -->
|
||||
<pass>
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
<lighting>false</lighting>
|
||||
<color-mask type="vec4d">0 0 0 0</color-mask> <!-- Do not draw anything -->
|
||||
<shade-model><use>shade-model</use></shade-model>
|
||||
<cull-face>back</cull-face>
|
||||
<!-- <rendering-hint>transparent</rendering-hint> -->
|
||||
<depth>
|
||||
<write-mask>false</write-mask>
|
||||
</depth>
|
||||
|
||||
<!-- Set s-buffer to 0 when ground is in front of the front side of the volume -->
|
||||
<stencil>
|
||||
<function>always</function> <!-- S-test passes always -->
|
||||
<z-fail>zero</z-fail> <!-- Zero s-buffer when z-buffer test fails -->
|
||||
</stencil>
|
||||
</pass>
|
||||
|
||||
<!-- Third pass, render light where there is 1 on stencil buffer -->
|
||||
<pass>
|
||||
<render-bin>
|
||||
<active>true</active>
|
||||
<bin-number>9</bin-number>
|
||||
<bin-name>RenderBin</bin-name>
|
||||
</render-bin>
|
||||
|
||||
<lighting>false</lighting>
|
||||
<shade-model><use>shade-model</use></shade-model>
|
||||
<cull-face>back</cull-face>
|
||||
<!-- <rendering-hint>transparent</rendering-hint> -->
|
||||
<depth>
|
||||
<write-mask>false</write-mask>
|
||||
</depth>
|
||||
|
||||
<!-- Draw when S-buffer EQUALS value 1 -->
|
||||
<stencil>
|
||||
<function>equal</function>
|
||||
<value>1</value>
|
||||
</stencil>
|
||||
|
||||
<!-- Do additive blending, so increase the color value of
|
||||
the existing pixel by the light's color. The light object should
|
||||
have ambient & diffuse AND alpha should be around 0.2 or something -->
|
||||
<blend>
|
||||
<active>true</active>
|
||||
<source>dst-alpha</source>
|
||||
<destination>one</destination>
|
||||
</blend>
|
||||
|
||||
</pass>
|
||||
|
||||
</technique>
|
||||
</PropertyList>
|
150
aircraft/A380/XML/FlightDeck/Pedestal/rmp.xml
Normal file
150
aircraft/A380/XML/FlightDeck/Pedestal/rmp.xml
Normal file
|
@ -0,0 +1,150 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<!--
|
||||
|
||||
RMP Display for A380.
|
||||
This is for the Radio Management Panel on the pedestal
|
||||
The naming of <text> objects is;
|
||||
RMP.xxx.label - for static text labelling
|
||||
RMP.xxx.field - fields that user can input value into
|
||||
RMP.xxx.value - dynamic text values for display
|
||||
|
||||
Author: S.Hamilton - May 2010
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<PropertyList>
|
||||
|
||||
<!-- RMP display -->
|
||||
<text>
|
||||
<name>RMP.vhf1.value</name>
|
||||
<axis-alignment>yz-plane</axis-alignment>
|
||||
<alignment>right-bottom</alignment>
|
||||
<offsets>
|
||||
<pitch-deg>-90.0</pitch-deg>
|
||||
<x-m>0.231</x-m>
|
||||
<y-m>0.061</y-m>
|
||||
<z-m>-0.0055</z-m>
|
||||
</offsets>
|
||||
<type>number-value</type>
|
||||
<property type="string">/instrumentation/nav[0]/frequencies/selected-mhz</property>
|
||||
<format type="string">%3.2f</format>
|
||||
<font>helvetica_bold.txf</font>
|
||||
<character-size type="double">0.01</character-size>
|
||||
</text>
|
||||
<text>
|
||||
<name>RMP.vhf1.label</name>
|
||||
<axis-alignment>yz-plane</axis-alignment>
|
||||
<alignment>right-bottom</alignment>
|
||||
<offsets>
|
||||
<pitch-deg>-90.0</pitch-deg>
|
||||
<x-m>0.231</x-m>
|
||||
<y-m>0.078</y-m>
|
||||
<z-m>-0.0055</z-m>
|
||||
</offsets>
|
||||
<type>literal</type>
|
||||
<text type="string">VHF1</text>
|
||||
<font>helvetica_bold.txf</font>
|
||||
<character-size type="double">0.0045</character-size>
|
||||
</text>
|
||||
|
||||
|
||||
<text>
|
||||
<name>RMP.vhf2.value</name>
|
||||
<axis-alignment>yz-plane</axis-alignment>
|
||||
<alignment>right-bottom</alignment>
|
||||
<offsets>
|
||||
<pitch-deg>-90.0</pitch-deg>
|
||||
<x-m>0.249</x-m>
|
||||
<y-m>0.061</y-m>
|
||||
<z-m>-0.0055</z-m>
|
||||
</offsets>
|
||||
<type>number-value</type>
|
||||
<property type="string">/instrumentation/nav[1]/frequencies/selected-mhz</property>
|
||||
<format type="string">%3.2f</format>
|
||||
<font>helvetica_bold.txf</font>
|
||||
<character-size type="double">0.01</character-size>
|
||||
</text>
|
||||
<text>
|
||||
<name>RMP.vhf2.label</name>
|
||||
<axis-alignment>yz-plane</axis-alignment>
|
||||
<alignment>right-bottom</alignment>
|
||||
<offsets>
|
||||
<pitch-deg>-90.0</pitch-deg>
|
||||
<x-m>0.249</x-m>
|
||||
<y-m>0.078</y-m>
|
||||
<z-m>-0.0055</z-m>
|
||||
</offsets>
|
||||
<type>literal</type>
|
||||
<text type="string">VHF2</text>
|
||||
<font>helvetica_bold.txf</font>
|
||||
<character-size type="double">0.0045</character-size>
|
||||
</text>
|
||||
|
||||
|
||||
<text>
|
||||
<name>RMP.vhf3.value</name>
|
||||
<axis-alignment>yz-plane</axis-alignment>
|
||||
<alignment>right-bottom</alignment>
|
||||
<offsets>
|
||||
<pitch-deg>-90.0</pitch-deg>
|
||||
<x-m>0.267</x-m>
|
||||
<y-m>0.061</y-m>
|
||||
<z-m>-0.0055</z-m>
|
||||
</offsets>
|
||||
<type>number-value</type>
|
||||
<property type="string">/instrumentation/nav[2]/frequencies/selected-mhz</property>
|
||||
<format type="string">%3.2f</format>
|
||||
<font>helvetica_bold.txf</font>
|
||||
<character-size type="double">0.01</character-size>
|
||||
</text>
|
||||
<text>
|
||||
<name>RMP.vhf3.label</name>
|
||||
<axis-alignment>yz-plane</axis-alignment>
|
||||
<alignment>right-bottom</alignment>
|
||||
<offsets>
|
||||
<pitch-deg>-90.0</pitch-deg>
|
||||
<x-m>0.267</x-m>
|
||||
<y-m>0.078</y-m>
|
||||
<z-m>-0.0055</z-m>
|
||||
</offsets>
|
||||
<type>literal</type>
|
||||
<text type="string">VHF3</text>
|
||||
<font>helvetica_bold.txf</font>
|
||||
<character-size type="double">0.0045</character-size>
|
||||
</text>
|
||||
|
||||
<!-- material for all display text -->
|
||||
<animation>
|
||||
<type>material</type>
|
||||
<object-name>RMP.vhf1.value</object-name>
|
||||
<object-name>RMP.vhf1.label</object-name>
|
||||
<object-name>RMP.vhf2.value</object-name>
|
||||
<object-name>RMP.vhf2.label</object-name>
|
||||
<object-name>RMP.vhf3.value</object-name>
|
||||
<object-name>RMP.vhf3.label</object-name>
|
||||
<diffuse>
|
||||
<red>0.898</red>
|
||||
<green>0.898</green>
|
||||
<blue>1.0</blue>
|
||||
</diffuse>
|
||||
<ambient>
|
||||
<red>0.898</red>
|
||||
<green>0.898</green>
|
||||
<blue>1.0</blue>
|
||||
</ambient>
|
||||
<emission>
|
||||
<red>0.1</red>
|
||||
<green>0.1</green>
|
||||
<blue>0.563</blue>
|
||||
</emission>
|
||||
<specular>
|
||||
<red>0.0</red>
|
||||
<green>0.0</green>
|
||||
<blue>0.0</blue>
|
||||
</specular>
|
||||
<shininess>0.0</shininess>
|
||||
</animation>
|
||||
|
||||
</PropertyList>
|
13
aircraft/A380/XML/Lights/light-cone-left.xml
Normal file
13
aircraft/A380/XML/Lights/light-cone-left.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<PropertyList>
|
||||
|
||||
<path>../../Models/Lights/light-cone.ac</path>
|
||||
<texture-path>../../Textures/Common/</texture-path>
|
||||
|
||||
<effect>
|
||||
<inherits-from>Aircraft/A380/XML/Effects/light-cone-left</inherits-from>
|
||||
<object-name>Cone</object-name>
|
||||
</effect>
|
||||
|
||||
</PropertyList>
|
13
aircraft/A380/XML/Lights/light-cone-right.xml
Normal file
13
aircraft/A380/XML/Lights/light-cone-right.xml
Normal file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<PropertyList>
|
||||
|
||||
<path>../../Models/Lights/light-cone.ac</path>
|
||||
<texture-path>../../Textures/Common/</texture-path>
|
||||
|
||||
<effect>
|
||||
<inherits-from>Aircraft/A380/XML/Effects/light-cone-right</inherits-from>
|
||||
<object-name>Cone</object-name>
|
||||
</effect>
|
||||
|
||||
</PropertyList>
|
15
aircraft/A380/XML/Liveries/QFA.xml
Normal file
15
aircraft/A380/XML/Liveries/QFA.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<PropertyList>
|
||||
<sim>
|
||||
<model>
|
||||
<livery>
|
||||
<name type="string">Qantas Airways</name>
|
||||
<texture>../QFA/A380.rgb</texture>
|
||||
</livery>
|
||||
<cowling>
|
||||
<texture>../QFA/cowling.png</texture>
|
||||
</cowling>
|
||||
</model>
|
||||
</sim>
|
||||
</PropertyList>
|
15
aircraft/A380/XML/Liveries/SIA.xml
Normal file
15
aircraft/A380/XML/Liveries/SIA.xml
Normal file
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<PropertyList>
|
||||
<sim>
|
||||
<model>
|
||||
<livery>
|
||||
<name type="string">Singapore Airlines</name>
|
||||
<texture>../SIA/A380.png</texture>
|
||||
</livery>
|
||||
<cowling>
|
||||
<texture>../SIA/cowling.png</texture>
|
||||
</cowling>
|
||||
</model>
|
||||
</sim>
|
||||
</PropertyList>
|
Loading…
Reference in a new issue