A3XX: FMGC TRK/FPA and mode engagement fixes
This commit is contained in:
parent
b25b7cc27b
commit
0812ee5359
3 changed files with 51 additions and 53 deletions
|
@ -75,6 +75,8 @@ var APinit = func {
|
|||
setprop("/it-autoflight/input/spd-kts", 100);
|
||||
setprop("/it-autoflight/input/spd-mach", 0.50);
|
||||
setprop("/it-autoflight/custom/show-hdg", 0);
|
||||
setprop("/it-autoflight/internal/heading-error-deg", 0);
|
||||
trkfpa_off();
|
||||
ap_varioust.start();
|
||||
thrustmode();
|
||||
}
|
||||
|
@ -165,13 +167,16 @@ var fmabox = func {
|
|||
var fd1 = getprop("/it-autoflight/output/fd1");
|
||||
var fd2 = getprop("/it-autoflight/output/fd2");
|
||||
if (!ap1 and !ap2 and !fd1 and !fd2) {
|
||||
setprop("/it-autoflight/input/trk", 0);
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
setprop("/it-autoflight/input/vert", 1);
|
||||
if (getprop("/it-autoflight/custom/trk-fpa") == 0) {
|
||||
setprop("/it-autoflight/input/vert", 1);
|
||||
} else if (getprop("/it-autoflight/custom/trk-fpa") == 1) {
|
||||
setprop("/it-autoflight/input/vert", 5);
|
||||
}
|
||||
setprop("/it-autoflight/output/fma-pwr", 0);
|
||||
} else {
|
||||
setprop("/it-autoflight/input/trk", 0);
|
||||
setprop("/it-autoflight/input/vs", int(getprop("/velocities/vertical-speed-fps")*0.6)*100);
|
||||
setprop("/it-autoflight/input/fpa", int(10*getprop("/it-autoflight/internal/fpa"))*0.1);
|
||||
setprop("/it-autoflight/output/fma-pwr", 1);
|
||||
}
|
||||
}
|
||||
|
@ -418,29 +423,37 @@ var vertical = func {
|
|||
var toggle_trkfpa = func {
|
||||
var trkfpa = getprop("/it-autoflight/custom/trk-fpa");
|
||||
if (trkfpa == 0) {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 1);
|
||||
if (getprop("/it-autoflight/output/vert") == 1) {
|
||||
setprop("/it-autoflight/input/vert", 5);
|
||||
}
|
||||
setprop("/it-autoflight/input/trk", 1);
|
||||
setprop("/instrumentation/efis[0]/mfd/true-north", 1);
|
||||
setprop("/instrumentation/efis[1]/mfd/true-north", 1);
|
||||
var hed = getprop("/it-autoflight/internal/heading-error-deg");
|
||||
if (hed >= -10 and hed <= 10 and getprop("/it-autoflight/output/lat") == 0) {
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
}
|
||||
trkfpa_on();
|
||||
} else if (trkfpa == 1) {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 0);
|
||||
if (getprop("/it-autoflight/output/vert") == 5) {
|
||||
setprop("/it-autoflight/input/vert", 1);
|
||||
}
|
||||
setprop("/it-autoflight/input/trk", 0);
|
||||
setprop("/instrumentation/efis[0]/mfd/true-north", 0);
|
||||
setprop("/instrumentation/efis[1]/mfd/true-north", 0);
|
||||
var hed = getprop("/it-autoflight/internal/heading-error-deg");
|
||||
if (hed >= -10 and hed <= 10 and getprop("/it-autoflight/output/lat") == 0) {
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
}
|
||||
trkfpa_off();
|
||||
}
|
||||
}
|
||||
|
||||
var trkfpa_off = func {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 0);
|
||||
if (getprop("/it-autoflight/output/vert") == 5) {
|
||||
setprop("/it-autoflight/input/vert", 1);
|
||||
}
|
||||
setprop("/it-autoflight/input/trk", 0);
|
||||
setprop("/instrumentation/efis[0]/mfd/true-north", 0);
|
||||
setprop("/instrumentation/efis[1]/mfd/true-north", 0);
|
||||
var hed = getprop("/it-autoflight/internal/heading-error-deg");
|
||||
if (hed >= -10 and hed <= 10 and getprop("/it-autoflight/output/lat") == 0) {
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
}
|
||||
}
|
||||
|
||||
var trkfpa_on = func {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 1);
|
||||
if (getprop("/it-autoflight/output/vert") == 1) {
|
||||
setprop("/it-autoflight/input/vert", 5);
|
||||
}
|
||||
setprop("/it-autoflight/input/trk", 1);
|
||||
setprop("/instrumentation/efis[0]/mfd/true-north", 1);
|
||||
setprop("/instrumentation/efis[1]/mfd/true-north", 1);
|
||||
var hed = getprop("/it-autoflight/internal/heading-error-deg");
|
||||
if (hed >= -10 and hed <= 10 and getprop("/it-autoflight/output/lat") == 0) {
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -110,6 +110,17 @@ var loopFMA = maketimer(0.05, func {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
var trk = getprop("/it-autoflight/custom/trk-fpa");
|
||||
if (lat == "HDG" and trk == 0) {
|
||||
if (newlat != "HDG") {
|
||||
setprop("/modes/pfd/fma/roll-mode", "HDG");
|
||||
}
|
||||
} else if (lat == "HDG" and trk == 1) {
|
||||
if (newlat != "TRACK") {
|
||||
setprop("/modes/pfd/fma/roll-mode", "TRACK");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var loopFMA_b = func {
|
||||
|
@ -125,33 +136,11 @@ var loopFMA_b = func {
|
|||
}
|
||||
}
|
||||
|
||||
# HDG/TRK
|
||||
var hdgmde = func {
|
||||
var lat = getprop("/it-autoflight/mode/lat");
|
||||
var newlat = getprop("/modes/pfd/fma/roll-mode");
|
||||
var trk = getprop("/it-autoflight/custom/trk-fpa");
|
||||
if (lat == "HDG" and trk == 0) {
|
||||
if (newlat != "HDG") {
|
||||
setprop("/modes/pfd/fma/roll-mode", "HDG");
|
||||
}
|
||||
} else if (lat == "HDG" and trk == 1) {
|
||||
if (newlat != "TRACK") {
|
||||
setprop("/modes/pfd/fma/roll-mode", "TRACK");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setlistener("/it-autoflight/custom/trk-fpa", func {
|
||||
hdgmde();
|
||||
});
|
||||
|
||||
# Master Lateral
|
||||
setlistener("/it-autoflight/mode/lat", func {
|
||||
var lat = getprop("/it-autoflight/mode/lat");
|
||||
var newlat = getprop("/modes/pfd/fma/roll-mode");
|
||||
if (lat == "HDG") {
|
||||
hdgmde();
|
||||
} else if (lat == "LNAV") {
|
||||
if (lat == "LNAV") {
|
||||
if (newlat != "NAV") {
|
||||
setprop("/modes/pfd/fma/roll-mode", "NAV");
|
||||
}
|
||||
|
@ -441,19 +430,15 @@ var boxchk = func {
|
|||
var fd2 = getprop("/it-autoflight/output/fd2");
|
||||
var fma_pwr = getprop("/it-autoflight/output/fma-pwr");
|
||||
if (ap1 and !ap2 and !fd1 and !fd2 and !fma_pwr) {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 0);
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
boxchk_b();
|
||||
} else if (!ap1 and ap2 and !fd1 and !fd2 and !fma_pwr) {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 0);
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
boxchk_b();
|
||||
} else if (!ap1 and !ap2 and fd1 and !fd2 and !fma_pwr) {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 0);
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
boxchk_b();
|
||||
} else if (!ap1 and !ap2 and !fd1 and fd2 and !fma_pwr) {
|
||||
setprop("/it-autoflight/custom/trk-fpa", 0);
|
||||
setprop("/it-autoflight/input/lat", 3);
|
||||
boxchk_b();
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
2145
|
||||
2146
|
Reference in a new issue