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