From 5e592007ce62988954f17bfe2be225508c26ecd6 Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sat, 30 Nov 2024 13:20:17 +0000 Subject: [PATCH 1/9] fix fws: no mobile memo visiblity --- .../systems-host/systems/FlightWarningSystem/FwsMemos.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts index c4e104543f1..115a5215756 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts @@ -504,7 +504,7 @@ export class FwsMemos { simVarIsActive: this.fws.noMobileSwitchPosition.map((pos) => pos === 0), whichCodeToReturn: () => [0], codesToReturn: ['335000003'], - memoInhibit: () => this.fws.toMemo.get() === 1 || this.fws.ldgMemo.get() === 1, + memoInhibit: () => false, failure: 0, sysPage: SdPages.None, side: 'RIGHT', From b2aeed6d67cc2ed3b369013fe3e9074ca4c53424 Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sat, 30 Nov 2024 15:56:36 +0000 Subject: [PATCH 2/9] feat: fws reset normal checklists on power up. --- .../systems/FlightWarningSystem/FwsCore.ts | 47 +++++++++++++++---- .../FwsNormalChecklists.ts | 46 +++++++++++------- 2 files changed, 65 insertions(+), 28 deletions(-) diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts index 276c4089590..e931ab14b2e 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts @@ -209,7 +209,7 @@ export class FwsCore { /* PSEUDO FWC VARIABLES */ private readonly startupTimer = new DebounceTimer(); - private readonly startupCompleted = Subject.create(false); + public readonly startupCompleted = Subject.create(false); /** Keys/IDs of all failures currently active, irrespective they are already cleared or not */ public readonly allCurrentFailures: string[] = []; @@ -568,6 +568,12 @@ export class FwsCore { public readonly allBatteriesOff = Subject.create(false); + public readonly dcEssOrDc2Powered = MappedSubject.create( + SubscribableMapFunctions.or(), + this.dcESSBusPowered, + this.dc2BusPowered, + ); + /* 26 - FIRE */ public readonly fduDiscreteWord = Arinc429Register.empty(); @@ -1034,7 +1040,6 @@ export class FwsCore { public readonly yellowElecAandBPumpOff = Subject.create(false); /* 31 - FWS */ - public readonly fwcFlightPhase = Subject.create(-1); public readonly flightPhase128 = Subject.create(false); @@ -1051,6 +1056,8 @@ export class FwsCore { public readonly flightPhase910 = Subject.create(false); + private readonly previousFlightPhase = Subject.create(-1); + public readonly ldgInhibitTimer = new NXLogicConfirmNode(3); public readonly toInhibitTimer = new NXLogicConfirmNode(3); @@ -1090,6 +1097,16 @@ export class FwsCore { public readonly flightPhaseInhibitOverrideNode = new NXLogicMemoryNode(false); + private readonly shutDownFor40MinutesConfNode = new NXLogicConfirmNode(340); + + private readonly shutDownFor40Minutes = Subject.create(false); + + public readonly resetAllCl = MappedSubject.create( + SubscribableMapFunctions.or(), + this.startupCompleted, + this.shutDownFor40Minutes, + ); + /** If one of the ADR's CAS is above V1 - 4kts, confirm for 0.3s */ public readonly v1SpeedConfirmNode = new NXLogicConfirmNode(0.3); @@ -1663,7 +1680,7 @@ export class FwsCore { FwsCore.AURAL_SC_INHIBIT_TIME, ); - this.acESSBusPowered.sub((v) => { + this.dcEssOrDc2Powered.sub((v) => { if (v) { this.startupTimer.schedule(() => { this.startupCompleted.set(true); @@ -1845,6 +1862,9 @@ export class FwsCore { // Inputs update this.flightPhaseEndedPulseNode.write(false, deltaTime); + + this.previousFlightPhase.set(this.fwcFlightPhase.get()); + this.fwcFlightPhase.set(SimVar.GetSimVarValue('L:A32NX_FWC_FLIGHT_PHASE', 'Enum')); const phase3 = this.fwcFlightPhase.get() === 3; const phase6 = this.fwcFlightPhase.get() === 6; @@ -1865,6 +1885,13 @@ export class FwsCore { this.phase815MinConfNode.write(this.fwcFlightPhase.get() === 8, deltaTime); this.phase112.set(flightPhase112); + this.shutDownFor40Minutes.set( + this.shutDownFor40MinutesConfNode.write( + this.fwcFlightPhase.get() == 12 || (this.fwcFlightPhase.get() === 1 && this.previousFlightPhase.get() == 12), + deltaTime, + ), + ); + // TO CONFIG button this.toConfigTestRaw = SimVar.GetSimVarValue('L:A32NX_BTN_TOCONFIG', 'bool') > 0; this.toConfigPulseNode.write(this.toConfigTestRaw, _deltaTime); @@ -1913,13 +1940,13 @@ export class FwsCore { ); /* ELECTRICAL acquisition */ - this.dcESSBusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED', 'bool')); - this.dc2BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_DC_2_BUS_IS_POWERED', 'bool')); - this.ac1BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_1_BUS_IS_POWERED', 'bool')); - this.ac2BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_2_BUS_IS_POWERED', 'bool')); - this.ac3BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_3_BUS_IS_POWERED', 'bool')); - this.ac4BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_4_BUS_IS_POWERED', 'bool')); - this.acESSBusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_ESS_BUS_IS_POWERED', 'bool')); + this.dcESSBusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_DC_ESS_BUS_IS_POWERED', 'bool') > 0); + this.dc2BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_DC_2_BUS_IS_POWERED', 'bool') > 0); + this.ac1BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_1_BUS_IS_POWERED', 'bool') > 0); + this.ac2BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_2_BUS_IS_POWERED', 'bool') > 0); + this.ac3BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_3_BUS_IS_POWERED', 'bool') > 0); + this.ac4BusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_4_BUS_IS_POWERED', 'bool') > 0); + this.acESSBusPowered.set(SimVar.GetSimVarValue('L:A32NX_ELEC_AC_ESS_BUS_IS_POWERED', 'bool') > 0); /* ENGINE AND THROTTLE acquisition */ diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts index d38c4274c12..0ca2414c6de 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts @@ -1,7 +1,7 @@ // Copyright (c) 2024 FlyByWire Simulations // SPDX-License-Identifier: GPL-3.0 -import { MapSubject, SimVarValueType, Subject, SubscribableMapEventType } from '@microsoft/msfs-sdk'; +import { MappedSubject, MapSubject, SimVarValueType, Subject, SubscribableMapEventType, SubscribableMapFunctions } from '@microsoft/msfs-sdk'; import { FwsEwdEvents } from 'instruments/src/MsfsAvionicsCommon/providers/FwsEwdPublisher'; import { FwsCore } from 'systems-host/systems/FlightWarningSystem/FwsCore'; import { EcamNormalProcedures } from 'instruments/src/MsfsAvionicsCommon/EcamMessages/NormalProcedures'; @@ -58,6 +58,13 @@ export class FwsNormalChecklists { this.selectedLine.sub((line) => this.pub.pub('fws_active_line', line + 1, true), true); // Start at second line, headline not selectable this.showFromLine.sub((line) => this.pub.pub('fws_show_from_line', line, true), true); + this.fws.resetAllCl.sub((v) => { + if (v) { + this.reset(null); + } + + }); + // Populate checklistState const keys = this.getNormalProceduresKeysSorted(); keys.forEach((k) => { @@ -189,23 +196,7 @@ export class FwsNormalChecklists { // Reset all following checklists const fromId = this.getNormalProceduresKeysSorted().findIndex((v) => v === this.checklistId.get()); - const ids = this.getNormalProceduresKeysSorted(); - - if (fromId !== -1) { - for (let id = fromId + 1; id < ids.length; id++) { - const idFollowing = ids[id]; - const clFollowing = this.checklistState.getValue(idFollowing); - const procFollowing = EcamNormalProcedures[idFollowing]; - const clStateFollowing: ChecklistState = { - id: idFollowing, - checklistCompleted: procFollowing.deferred ? true : false, - itemsCompleted: [...clFollowing.itemsCompleted].map((val, index) => - procFollowing.items[index].sensed ? val : false, - ), - }; - this.checklistState.setValue(idFollowing, clStateFollowing); - } - } + this.reset(fromId); this.checklistState.setValue(this.checklistId.get(), clState); this.selectFirst(); } @@ -280,6 +271,25 @@ export class FwsNormalChecklists { } } + private reset(fromId: number | null) { + if (fromId !== -1) { + const ids = this.getNormalProceduresKeysSorted(); + for (let id = fromId === null ? 0 : fromId + 1; id < ids.length; id++) { + const idFollowing = ids[id]; + const clFollowing = this.checklistState.getValue(idFollowing); + const procFollowing = EcamNormalProcedures[idFollowing]; + const clStateFollowing: ChecklistState = { + id: idFollowing, + checklistCompleted: procFollowing.deferred ? true : false, + itemsCompleted: [...clFollowing.itemsCompleted].map((val, index) => + procFollowing.items[index].sensed ? val : false, + ), + }; + this.checklistState.setValue(idFollowing, clStateFollowing); + } + } + } + public sensedItems: FwsNormalChecklistsDict = { 1000001: { whichItemsChecked: () => [null, null, !!this.fws.seatBelt.get(), null], From b6b8c98c0ea18e922fe11e7f5deadcbfb798eaad Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sun, 1 Dec 2024 11:18:07 +0000 Subject: [PATCH 3/9] cleanup abnormal sensed debug info --- .../FlightWarningSystem/FwsAbnormalSensed.ts | 28 +------------------ 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsAbnormalSensed.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsAbnormalSensed.ts index 7fcb4377886..2a1837071c8 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsAbnormalSensed.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsAbnormalSensed.ts @@ -2,11 +2,7 @@ // // SPDX-License-Identifier: GPL-3.0 -import { - AbnormalProcedure, - EcamAbnormalSensedProcedures, - isChecklistAction, -} from '../../../instruments/src/MsfsAvionicsCommon/EcamMessages'; +import { EcamAbnormalSensedProcedures } from '../../../instruments/src/MsfsAvionicsCommon/EcamMessages'; import { MappedSubject, Subject, @@ -88,28 +84,6 @@ export class FwsAbnormalSensed { }), ); this.pub.pub('fws_abn_sensed_procedures', flattened, true); - SimVar.SetSimVarValue('L:A32NX_EWD_DEBUG_ABNORMAL', 'string', flattened[0] ? flattened[0].id : ''); - - console.log('%c------- ABN SENSED PROCEDURES -------', 'font-family:monospace; font-weight: bold'); - // Debug output for ABN sensed procedures - this.fws.activeAbnormalSensedList.get().forEach((val, key) => { - const proc = EcamAbnormalSensedProcedures[key] as AbnormalProcedure; - console.log('%c' + proc.title, 'font-family:monospace; font-weight: bold'); - proc.items.forEach((it, itemIdx) => { - if (val.itemsToShow[itemIdx]) { - const cpl = isChecklistAction(it) - ? val.itemsChecked[itemIdx] - ? it.labelNotCompleted - : ` .......... ${it.labelNotCompleted}` - : ''; - console.log( - `%c${' '.repeat(it.level ?? 0)} ${val.itemsChecked[itemIdx] ? 'X' : 'O'} ${it.name} ${cpl} ${it.style ? `(${it.style})` : ''}`, - 'font-family:monospace; font-weight: bold', - ); - } - }); - }); - console.log('%c------- END -------', 'font-family:monospace; font-weight: bold'); }, true, ); From 0225e766dcc454be7579b1fd6a6790927cae2131 Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sun, 1 Dec 2024 13:00:20 +0000 Subject: [PATCH 4/9] feat (fws): add reset of CL after shutdown & on GA --- .../systems/FlightWarningSystem/FwsCore.ts | 63 +++++++++---------- .../FwsNormalChecklists.ts | 33 +++++++++- 2 files changed, 60 insertions(+), 36 deletions(-) diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts index e931ab14b2e..4465fd3091e 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts @@ -567,13 +567,6 @@ export class FwsCore { public readonly engine4Running = Subject.create(false); public readonly allBatteriesOff = Subject.create(false); - - public readonly dcEssOrDc2Powered = MappedSubject.create( - SubscribableMapFunctions.or(), - this.dcESSBusPowered, - this.dc2BusPowered, - ); - /* 26 - FIRE */ public readonly fduDiscreteWord = Arinc429Register.empty(); @@ -1056,8 +1049,6 @@ export class FwsCore { public readonly flightPhase910 = Subject.create(false); - private readonly previousFlightPhase = Subject.create(-1); - public readonly ldgInhibitTimer = new NXLogicConfirmNode(3); public readonly toInhibitTimer = new NXLogicConfirmNode(3); @@ -1097,15 +1088,13 @@ export class FwsCore { public readonly flightPhaseInhibitOverrideNode = new NXLogicMemoryNode(false); - private readonly shutDownFor40MinutesConfNode = new NXLogicConfirmNode(340); + public readonly manualCheckListReset = Subject.create(false); - private readonly shutDownFor40Minutes = Subject.create(false); + private readonly phase12ShutdownMemoryNode = new NXLogicMemoryNode(); - public readonly resetAllCl = MappedSubject.create( - SubscribableMapFunctions.or(), - this.startupCompleted, - this.shutDownFor40Minutes, - ); + private readonly shutDownFor50MinutesClResetConfNode = new NXLogicConfirmNode(3000); + + public readonly shutDownFor50MinutesCheckListReset = Subject.create(false); /** If one of the ADR's CAS is above V1 - 4kts, confirm for 0.3s */ public readonly v1SpeedConfirmNode = new NXLogicConfirmNode(0.3); @@ -1680,18 +1669,24 @@ export class FwsCore { FwsCore.AURAL_SC_INHIBIT_TIME, ); - this.dcEssOrDc2Powered.sub((v) => { - if (v) { - this.startupTimer.schedule(() => { - this.startupCompleted.set(true); - console.log('PseudoFWC startup completed.'); - }, FwsCore.FWC_STARTUP_TIME); - } else { - this.startupTimer.clear(); - this.startupCompleted.set(false); - console.log('PseudoFWC shut down.'); - } - }); + if (this.fwsNumber === 1) { + this.dcESSBusPowered.sub((v) => this.handlePowerChange(v)); + } else { + this.dc2BusPowered.sub((v) => this.handlePowerChange(v)); + } + } + + private handlePowerChange(powered: boolean) { + if (powered) { + this.startupTimer.schedule(() => { + this.startupCompleted.set(true); + console.log('PseudoFWC startup completed.'); + }, FwsCore.FWC_STARTUP_TIME); + } else { + this.startupTimer.clear(); + this.startupCompleted.set(false); + console.log('PseudoFWC shut down.'); + } } private registerKeyEvents() { @@ -1862,10 +1857,8 @@ export class FwsCore { // Inputs update this.flightPhaseEndedPulseNode.write(false, deltaTime); - - this.previousFlightPhase.set(this.fwcFlightPhase.get()); - this.fwcFlightPhase.set(SimVar.GetSimVarValue('L:A32NX_FWC_FLIGHT_PHASE', 'Enum')); + const phase3 = this.fwcFlightPhase.get() === 3; const phase6 = this.fwcFlightPhase.get() === 6; this.flightPhase3PulseNode.write(phase3, deltaTime); @@ -1885,9 +1878,11 @@ export class FwsCore { this.phase815MinConfNode.write(this.fwcFlightPhase.get() === 8, deltaTime); this.phase112.set(flightPhase112); - this.shutDownFor40Minutes.set( - this.shutDownFor40MinutesConfNode.write( - this.fwcFlightPhase.get() == 12 || (this.fwcFlightPhase.get() === 1 && this.previousFlightPhase.get() == 12), + this.phase12ShutdownMemoryNode.write(this.fwcFlightPhase.get() == 12, !this.phase112.get()); + + this.shutDownFor50MinutesCheckListReset.set( + this.shutDownFor50MinutesClResetConfNode.write( + !this.manualCheckListReset.get() && this.phase12ShutdownMemoryNode.read(), deltaTime, ), ); diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts index 0ca2414c6de..a54196f5f8c 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts @@ -1,7 +1,14 @@ // Copyright (c) 2024 FlyByWire Simulations // SPDX-License-Identifier: GPL-3.0 -import { MappedSubject, MapSubject, SimVarValueType, Subject, SubscribableMapEventType, SubscribableMapFunctions } from '@microsoft/msfs-sdk'; +import { + MappedSubject, + MapSubject, + SimVarValueType, + Subject, + SubscribableMapEventType, + SubscribableMapFunctions, +} from '@microsoft/msfs-sdk'; import { FwsEwdEvents } from 'instruments/src/MsfsAvionicsCommon/providers/FwsEwdPublisher'; import { FwsCore } from 'systems-host/systems/FlightWarningSystem/FwsCore'; import { EcamNormalProcedures } from 'instruments/src/MsfsAvionicsCommon/EcamMessages/NormalProcedures'; @@ -58,13 +65,34 @@ export class FwsNormalChecklists { this.selectedLine.sub((line) => this.pub.pub('fws_active_line', line + 1, true), true); // Start at second line, headline not selectable this.showFromLine.sub((line) => this.pub.pub('fws_show_from_line', line, true), true); - this.fws.resetAllCl.sub((v) => { + this.fws.startupCompleted.sub((v) => { if (v) { this.reset(null); } + }); + this.fws.shutDownFor50MinutesCheckListReset.sub((v) => { + if (v) { + this.reset(null); + } }); + this.fws.fwcFlightPhase.sub((phase) => { + if (phase !== 1) { + this.fws.manualCheckListReset.set(false); + } + }); + + MappedSubject.create(SubscribableMapFunctions.or(), this.fws.eng1Or2TakeoffPower, this.fws.eng3Or4TakeoffPower).sub( + (v) => { + if (v) { + this.reset( + this.getNormalProceduresKeysSorted().findIndex((i) => i === 1000005), // reset starting at line up, + ); + } + }, + ); + // Populate checklistState const keys = this.getNormalProceduresKeysSorted(); keys.forEach((k) => { @@ -274,6 +302,7 @@ export class FwsNormalChecklists { private reset(fromId: number | null) { if (fromId !== -1) { const ids = this.getNormalProceduresKeysSorted(); + this.fws.manualCheckListReset.set(fromId !== null); for (let id = fromId === null ? 0 : fromId + 1; id < ids.length; id++) { const idFollowing = ids[id]; const clFollowing = this.checklistState.getValue(idFollowing); From ddb2e3292194a8a18a44ac3dde250507f72dc3e1 Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sun, 1 Dec 2024 13:14:28 +0000 Subject: [PATCH 5/9] fix: remove flightphase inhibit of no mobile --- .../systems-host/systems/FlightWarningSystem/FwsMemos.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts index 115a5215756..cf7077b945f 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsMemos.ts @@ -500,7 +500,7 @@ export class FwsMemos { }, '335000003': { // NO MOBILE - flightPhaseInhib: [2, 9, 10], + flightPhaseInhib: [], simVarIsActive: this.fws.noMobileSwitchPosition.map((pos) => pos === 0), whichCodeToReturn: () => [0], codesToReturn: ['335000003'], From c62cf78b4c5ecd941d309edc7a00cc132376597b Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sun, 1 Dec 2024 13:15:13 +0000 Subject: [PATCH 6/9] docs: update changelog --- .github/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 62586caf764..ed75f969a9f 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -81,6 +81,7 @@ 1. [A32NX] Fixed APU fire detection - @tracernz (Mike) 1. [A380X/COND] Fix wasm crash during rapid decompression - @mjuhe (Miquel Juhe) 1. [A380X] Fix EWD avail. thrust fill area & PFD rudder trim visibility on ground - @flogross89 (floridude) +1. [A380X/FWS] Add automatic ECL checklist reset - @BravoMike99 (bruno_pt99) ## 0.12.0 From e9a44bb8597e3e20a1c1611f83155c94bfc677de Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sun, 1 Dec 2024 13:21:08 +0000 Subject: [PATCH 7/9] fix: use departure change id as starting point after GA --- .../systems/FlightWarningSystem/FwsNormalChecklists.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts index a54196f5f8c..0421d67b428 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts @@ -87,7 +87,7 @@ export class FwsNormalChecklists { (v) => { if (v) { this.reset( - this.getNormalProceduresKeysSorted().findIndex((i) => i === 1000005), // reset starting at line up, + this.getNormalProceduresKeysSorted().findIndex((i) => i === 1000006), // reset starting at departure change, ); } }, From 9d3d64b4186b9aa2e80405906091168753baeb2c Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Sun, 1 Dec 2024 13:30:36 +0000 Subject: [PATCH 8/9] docs: improve changelog wording --- .github/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index ed75f969a9f..1637a0935cb 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -81,7 +81,7 @@ 1. [A32NX] Fixed APU fire detection - @tracernz (Mike) 1. [A380X/COND] Fix wasm crash during rapid decompression - @mjuhe (Miquel Juhe) 1. [A380X] Fix EWD avail. thrust fill area & PFD rudder trim visibility on ground - @flogross89 (floridude) -1. [A380X/FWS] Add automatic ECL checklist reset - @BravoMike99 (bruno_pt99) +1. [A380X/FWS] Add automatic normal checklists reset on powerup, go around & shutdown - @BravoMike99 (bruno_pt99) ## 0.12.0 From 6a2547f5caccd728650a9695ccdcf94048b5b0cf Mon Sep 17 00:00:00 2001 From: BravoMike99 <119708186+BravoMike99@users.noreply.github.com> Date: Fri, 27 Dec 2024 16:42:59 +0000 Subject: [PATCH 9/9] fix fwc phase merge conflicts --- .../systems/systems-host/systems/FlightWarningSystem/FwsCore.ts | 2 +- .../systems/FlightWarningSystem/FwsNormalChecklists.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts index af8668a9b50..9d4cf36fa3b 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsCore.ts @@ -1863,7 +1863,7 @@ export class FwsCore { this.phase815MinConfNode.write(this.flightPhase.get() === 8, deltaTime); this.phase112.set(flightPhase112); - this.phase12ShutdownMemoryNode.write(this.fwcFlightPhase.get() == 12, !this.phase112.get()); + this.phase12ShutdownMemoryNode.write(this.flightPhase.get() == 12, !this.phase112.get()); this.shutDownFor50MinutesCheckListReset.set( this.shutDownFor50MinutesClResetConfNode.write( diff --git a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts index 0421d67b428..3d286135635 100644 --- a/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts +++ b/fbw-a380x/src/systems/systems-host/systems/FlightWarningSystem/FwsNormalChecklists.ts @@ -77,7 +77,7 @@ export class FwsNormalChecklists { } }); - this.fws.fwcFlightPhase.sub((phase) => { + this.fws.flightPhase.sub((phase) => { if (phase !== 1) { this.fws.manualCheckListReset.set(false); }