From a9c44598de194ed1e84c10f78f38ee6528f60704 Mon Sep 17 00:00:00 2001
From: Matthew Maring <56924612+hayden2000@users.noreply.github.com>
Date: Sun, 12 Apr 2020 14:09:56 -0400
Subject: [PATCH] Add support for alternate/direct law
---
Models/Instruments/PFD/PFD.nas | 22 ++++++++++++++++++++--
Models/Instruments/PFD/res/pfd.svg | 8 ++++----
Nasal/FMGC/FMGC.nas | 16 +++++++++++++++-
3 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/Models/Instruments/PFD/PFD.nas b/Models/Instruments/PFD/PFD.nas
index 6b4dd03a..39679969 100644
--- a/Models/Instruments/PFD/PFD.nas
+++ b/Models/Instruments/PFD/PFD.nas
@@ -1131,7 +1131,7 @@ var canvas_PFD_1 = {
me["ASI_scale"].setTranslation(0, me.ASI * 6.6);
me["ASI_max"].setTranslation(0, me.ASImax * -6.6);
- if (FMGCphase.getValue() >= 2 and FMGCphase.getValue() <= 6) {
+ if (!getprop("FMGC/status/to-state") and FMGCphase.getValue() >= 1 and FMGCphase.getValue() <= 6) {
me.FMGC_vls = getprop("FMGC/internal/computed-speeds/vls_min");
if (me.FMGC_vls <= 30) {
me.VLSmin = 0 - me.ASI;
@@ -1156,10 +1156,19 @@ var canvas_PFD_1 = {
} else {
me.ALPHAmax = me.FMGC_max - 30 - me.ASI;
}
+ me.FMGC_vsw = getprop("FMGC/internal/computed-speeds/vsw");
+ if (me.FMGC_vsw <= 30) {
+ me.ALPHAvsw = 0 - me.ASI;
+ } else if (me.FMGC_vsw >= 420) {
+ me.ALPHAvsw = 390 - me.ASI;
+ } else {
+ me.ALPHAvsw = me.FMGC_vsw - 30 - me.ASI;
+ }
me["VLS_min"].setTranslation(0, me.VLSmin * -6.6);
me["VLS_min"].show();
me["ALPHA_PROT"].setTranslation(0, me.ALPHAprot * -6.6);
me["ALPHA_MAX"].setTranslation(0, me.ALPHAmax * -6.6);
+ me["ALPHA_SW"].setTranslation(0, me.ALPHAvsw * -6.6);
if (getprop("it-fbw/law") == 0) {
me["ALPHA_PROT"].show();
me["ALPHA_MAX"].show();
@@ -1833,7 +1842,7 @@ var canvas_PFD_2 = {
me["ASI_scale"].setTranslation(0, me.ASI * 6.6);
me["ASI_max"].setTranslation(0, me.ASImax * -6.6);
- if (FMGCphase.getValue() >= 2 and FMGCphase.getValue() <= 6) {
+ if (!getprop("FMGC/status/to-state") and FMGCphase.getValue() >= 1 and FMGCphase.getValue() <= 6) {
me.FMGC_vls = getprop("FMGC/internal/computed-speeds/vls_min");
if (me.FMGC_vls <= 30) {
me.VLSmin = 0 - me.ASI;
@@ -1858,10 +1867,19 @@ var canvas_PFD_2 = {
} else {
me.ALPHAmax = me.FMGC_max - 30 - me.ASI;
}
+ me.FMGC_vsw = getprop("FMGC/internal/computed-speeds/vsw");
+ if (me.FMGC_vsw <= 30) {
+ me.ALPHAvsw = 0 - me.ASI;
+ } else if (me.FMGC_vsw >= 420) {
+ me.ALPHAvsw = 390 - me.ASI;
+ } else {
+ me.ALPHAvsw = me.FMGC_vsw - 30 - me.ASI;
+ }
me["VLS_min"].setTranslation(0, me.VLSmin * -6.6);
me["VLS_min"].show();
me["ALPHA_PROT"].setTranslation(0, me.ALPHAprot * -6.6);
me["ALPHA_MAX"].setTranslation(0, me.ALPHAmax * -6.6);
+ me["ALPHA_SW"].setTranslation(0, me.ALPHAvsw * -6.6);
if (getprop("it-fbw/law") == 0) {
me["ALPHA_PROT"].show();
me["ALPHA_MAX"].show();
diff --git a/Models/Instruments/PFD/res/pfd.svg b/Models/Instruments/PFD/res/pfd.svg
index beba23db..b4ff27a5 100644
--- a/Models/Instruments/PFD/res/pfd.svg
+++ b/Models/Instruments/PFD/res/pfd.svg
@@ -41,8 +41,8 @@
inkscape:window-maximized="0"
inkscape:window-y="23"
inkscape:window-x="0"
- inkscape:cy="734.01649"
- inkscape:cx="185.41537"
+ inkscape:cy="725.57299"
+ inkscape:cx="177.29662"
inkscape:zoom="6.1585842"
showgrid="true"
id="namedview371"
@@ -3083,11 +3083,11 @@
id="tspan4301"
sodipodi:role="line">DH