From 255e0725ab82f45697c202dee141b9292dfbb39b Mon Sep 17 00:00:00 2001 From: Inuyaksa <inuyaksa@yahoo.com> Date: Mon, 25 Jan 2021 22:34:44 +0100 Subject: [PATCH] POSMON few fixes --- Models/Instruments/MCDU/MCDU.nas | 131 +++++++++++++++++-------------- 1 file changed, 73 insertions(+), 58 deletions(-) diff --git a/Models/Instruments/MCDU/MCDU.nas b/Models/Instruments/MCDU/MCDU.nas index b0160e1a..0a749485 100644 --- a/Models/Instruments/MCDU/MCDU.nas +++ b/Models/Instruments/MCDU/MCDU.nas @@ -239,6 +239,8 @@ var canvas_MCDU_base = { me["PERFGA_OE"].setColor(BLUE); me.page = canvas_group; + + me.updateretard = 0; # skip a few page update to save CPU return me; }, @@ -2316,74 +2318,87 @@ var canvas_MCDU_base = { me["Simple_R5"].setFontSize(small); pageFreezed[i] = nil; + + me.updateretard = 0; pageSwitch[i].setBoolValue(1); } - if (pageFreezed[i] == nil) { + if (me.updateretard <= 0) { + if (pageFreezed[i] == nil) { - me["Simple_Title"].setText("POSITION MONITOR"); - me["Simple_Title2"].hide(); - me["Simple_L6"].setText(" FREEZE"); - - me["Simple_L1"].setText("FMGC1"); - me["Simple_L2"].setText("FMGC2"); - me["Simple_L3"].setText("GPIRS"); - me["Simple_L4"].setText("MIX IRS"); - me["Simple_L5S"].setText(" IRS1"); - - if (systems.ADIRS.Operating.aligned[0].getValue()) { # TODO real FMGC1 GPS data - me["Simple_R1"].setText(me.getLatLogFormatted("/position/")); - me["Simple_L2S"].setText(sprintf("%16s","3IRS/GPS")); - me["Simple_L5"].setText(sprintf("%s 0.0",me.getIRSStatus(0))); - } else { - me["Simple_R1"].setText("----.--/-----.--"); - me["Simple_R1"].setColor(WHITE); - me["Simple_L2S"].setText(""); - me["Simple_L5"].setText(sprintf("%-8s",me.getIRSStatus(0))); - } - - if (systems.ADIRS.Operating.aligned[1].getValue()) { # TODO real FMGC2 GPS data - me["Simple_R2"].setText(me.getLatLogFormatted("/position/")); - me["Simple_L3S"].setText(sprintf("%16s","3IRS/GPS")); - me["Simple_C5"].setText(sprintf("%s 0.0",me.getIRSStatus(1))); - } else { - me["Simple_R2"].setText("----.--/-----.--"); - me["Simple_R2"].setColor(WHITE); - me["Simple_L3S"].setText(""); - me["Simple_C5"].setText(sprintf("%-8s",me.getIRSStatus(1))); - } - - me["Simple_R3"].setText("----.--/-----.--"); # GPIRS not available - me["Simple_R3"].setColor(WHITE); - - if (systems.ADIRS.Operating.aligned[2].getValue()) { - me["Simple_R5"].setText(sprintf("%s 0.0",me.getIRSStatus(2))); - } else { - me["Simple_R5"].setText(sprintf("%-8s",me.getIRSStatus(2))); - } - - if (systems.ADIRS.Operating.aligned[0].getValue() or systems.ADIRS.Operating.aligned[1].getValue()) { - me["Simple_R4"].setText(me.getLatLogFormatted("/position/")); - me["Simple_R4"].setColor(GREEN); - } else { - me["Simple_R4"].setText("----.--/-----.--"); - me["Simple_R4"].setColor(WHITE); - } + me["Simple_Title"].setText("POSITION MONITOR"); + me["Simple_Title2"].hide(); + me["Simple_L6"].setText(" FREEZE"); - me["Simple_R5S"].setText("IRS3 "); - me["Simple_R6S"].setText("SEL "); - me["Simple_C5S"].setText("IRS2"); + me["Simple_L1"].setText("FMGC1"); + me["Simple_L2"].setText("FMGC2"); + me["Simple_L3"].setText("GPIRS"); + me["Simple_L4"].setText("MIX IRS"); + me["Simple_L5S"].setText(" IRS1"); + me["Simple_R5S"].setText("IRS3 "); + me["Simple_R6S"].setText("SEL "); + me["Simple_C5S"].setText("IRS2"); - } else { + var latlog = me.getLatLogFormatted("/position/"); # current sim lat/log (formatted) cached for fast excecution + #TODO - IRS emulation - me["Simple_Title"].setText("POSITION FROZEN AT "); - me["Simple_Title2"].setText(sprintf("%23s ",pageFreezed[i])); - me["Simple_Title2"].show(); - me["Simple_L6"].setText(" UNFREEZE"); + if (systems.ADIRS.Operating.aligned[0].getValue()) { # TODO real FMGC1 GPS data + me["Simple_R1"].setText(latlog); + me["Simple_R1"].setColor(GREEN); + me["Simple_L2S"].setText(sprintf("%16s","3IRS/GPS")); + } else { + me["Simple_R1"].setText("----.--/-----.--"); + me["Simple_R1"].setColor(WHITE); + me["Simple_L2S"].setText(""); + } + + if (systems.ADIRS.Operating.aligned[1].getValue()) { # TODO real FMGC2 GPS data + me["Simple_R2"].setText(latlog); + me["Simple_R2"].setColor(GREEN); + me["Simple_L3S"].setText(sprintf("%16s","3IRS/GPS")); + } else { + me["Simple_R2"].setText("----.--/-----.--"); + me["Simple_R2"].setColor(WHITE); + me["Simple_L3S"].setText(""); + } + + if (systems.ADIRS.Operating.aligned[0].getValue() or systems.ADIRS.Operating.aligned[1].getValue() or systems.ADIRS.Operating.aligned[2].getValue()) { + me["Simple_R3"].setText(latlog); # GPIRS + me["Simple_R3"].setColor(GREEN); + me["Simple_R4"].setText(latlog); # MIXIRS + me["Simple_R4"].setColor(GREEN); + } else { + me["Simple_R3"].setText("----.--/-----.--"); # GPIRS not available + me["Simple_R3"].setColor(WHITE); + me["Simple_R4"].setText("----.--/-----.--"); # MIXIRS not available + me["Simple_R4"].setColor(WHITE); + } + + var Simple_row5 = ["Simple_L5","Simple_C5","Simple_R5"]; + + for ( var a=0; a<3; a+=1 ) { + if (systems.ADIRS.Operating.aligned[a].getValue()) { + me[Simple_row5[a]].setText(sprintf("%-8s",(systems.ADIRS.ADIRunits[a].mode == 2) ? "ATT" : "NAV 0.0")); + } else { + me[Simple_row5[a]].setText(sprintf("%-8s",me.getIRSStatus(a))); + } + } + + } else { + + me["Simple_Title"].setText("POSITION FROZEN AT "); + me["Simple_Title2"].setText(sprintf("%23s ",pageFreezed[i])); + me["Simple_Title2"].show(); + me["Simple_L6"].setText(" UNFREEZE"); + + } } + if (me.updateretard < 0) me.updateretard = 2; + else me.updateretard -= 1; + } else if (page == "IRSMON") { if (!pageSwitch[i].getBoolValue()) { @@ -3887,7 +3902,7 @@ var canvas_MCDU_base = { if (page != "PROGDONE") { me["Simple_R1"].setText("FL398 "); } else { - me["Simple_L1"].setText("-----"); + me["Simple_L1"].setText("_____"); me["Simple_R1"].setText("----- "); me["Simple_L1"].setColor(AMBER); me["Simple_C1"].setColor(WHITE);