diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index fa8d548fb2c..83e51d4084f 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -115,6 +115,7 @@ 1. [A380X/MFD] Fixed the altitude prediction not rounding to the nearest 10 on the FPLN page - @bulenteroglu (senolitam) 1. [A380X/MFD] Use slashed zero as default font for FMS pages - @bulenteroglu (senolitam) 1. [A380X/ND] Remove leading zeros from terrain elevation display - @BravoMike99 (bruno_pt99) +1. [A380X/MFD] Fixed the crossing climb/descent speed limit pseudo-waypoint label on the A380X - @bulenteroglu (senolitam) 1. [A32NX/FWS] Fix autopilot instinctive disconnect button logic for 3D model - @flogross89 (floridude) 1. [A380X/EFIS] Fix VV pb indicator not turning on when TRK-FPA mode is selected - @heclak (Heclak) 1. [EFB] Added troubleshooting page, under about page, for advanced support - @tracernz (Mike) diff --git a/fbw-a32nx/src/systems/fmgc/src/flightplanning/A320AircraftConfig.ts b/fbw-a32nx/src/systems/fmgc/src/flightplanning/A320AircraftConfig.ts index fed392d3008..e5cbea3c801 100644 --- a/fbw-a32nx/src/systems/fmgc/src/flightplanning/A320AircraftConfig.ts +++ b/fbw-a32nx/src/systems/fmgc/src/flightplanning/A320AircraftConfig.ts @@ -28,6 +28,7 @@ const vnavConfig: VnavConfig = { VNAV_USE_LATCHED_DESCENT_MODE: false, IDLE_N1_MARGIN: 2, MAXIMUM_FUEL_ESTIMATE: 40000, + LIM_PSEUDO_WPT_LABEL: '(LIM)', }; const flightModelParams: FlightModelParameters = { diff --git a/fbw-a32nx/src/systems/fmgc/src/flightplanning/A380AircraftConfig.ts b/fbw-a32nx/src/systems/fmgc/src/flightplanning/A380AircraftConfig.ts index ec33f0fab8f..4dc5af16d3c 100644 --- a/fbw-a32nx/src/systems/fmgc/src/flightplanning/A380AircraftConfig.ts +++ b/fbw-a32nx/src/systems/fmgc/src/flightplanning/A380AircraftConfig.ts @@ -28,6 +28,7 @@ const vnavConfig: VnavConfig = { VNAV_USE_LATCHED_DESCENT_MODE: false, IDLE_N1_MARGIN: 3, MAXIMUM_FUEL_ESTIMATE: 250_000, + LIM_PSEUDO_WPT_LABEL: '(SPDLIM)', }; const flightModelParams: FlightModelParameters = { diff --git a/fbw-a32nx/src/systems/fmgc/src/flightplanning/AircraftConfigTypes.ts b/fbw-a32nx/src/systems/fmgc/src/flightplanning/AircraftConfigTypes.ts index 975bef42ffb..06075e873ce 100644 --- a/fbw-a32nx/src/systems/fmgc/src/flightplanning/AircraftConfigTypes.ts +++ b/fbw-a32nx/src/systems/fmgc/src/flightplanning/AircraftConfigTypes.ts @@ -63,6 +63,13 @@ export interface VnavConfig { * This value is in lbs. */ MAXIMUM_FUEL_ESTIMATE: number; + + /** + * Label used for pseudo-waypoints that mark where the aircraft crosses + * climb/descent speed limit altitudes. + * Configurable since different Airbus aircraft use different labels (e.g. A320 vs A380). + */ + LIM_PSEUDO_WPT_LABEL: '(LIM)' | '(SPDLIM)'; } /** Only covers aircraft specific configs, no debug switches */ diff --git a/fbw-a32nx/src/systems/fmgc/src/guidance/GuidanceController.ts b/fbw-a32nx/src/systems/fmgc/src/guidance/GuidanceController.ts index c5a975230df..0fdd561e0e7 100644 --- a/fbw-a32nx/src/systems/fmgc/src/guidance/GuidanceController.ts +++ b/fbw-a32nx/src/systems/fmgc/src/guidance/GuidanceController.ts @@ -306,7 +306,7 @@ export class GuidanceController { this.windProfileFactory, this.acConfig, ); - this.pseudoWaypoints = new PseudoWaypoints(flightPlanService, this, this.atmosphericConditions); + this.pseudoWaypoints = new PseudoWaypoints(flightPlanService, this, this.atmosphericConditions, this.acConfig); this.efisVectors = new EfisVectors(this.bus, this.flightPlanService, this, efisInterfaces); this.symbolConfig = acConfig.fmSymbolConfig; } diff --git a/fbw-a32nx/src/systems/fmgc/src/guidance/lnav/PseudoWaypoints.ts b/fbw-a32nx/src/systems/fmgc/src/guidance/lnav/PseudoWaypoints.ts index 5cab0d62d46..f6c87b663d3 100644 --- a/fbw-a32nx/src/systems/fmgc/src/guidance/lnav/PseudoWaypoints.ts +++ b/fbw-a32nx/src/systems/fmgc/src/guidance/lnav/PseudoWaypoints.ts @@ -16,11 +16,11 @@ import { LateralMode } from '@shared/autopilot'; import { FlightPlanService } from '@fmgc/flightplanning/FlightPlanService'; import { VerticalCheckpoint, VerticalCheckpointReason } from '@fmgc/guidance/vnav/profile/NavGeometryProfile'; import { AtmosphericConditions } from '@fmgc/guidance/vnav/AtmosphericConditions'; +import { AircraftConfig } from '@fmgc/flightplanning/AircraftConfigTypes'; const PWP_IDENT_TOC = '(T/C)'; const PWP_IDENT_STEP_CLIMB = '(S/C)'; const PWP_IDENT_STEP_DESCENT = '(S/D)'; -const PWP_IDENT_SPD_LIM = '(LIM)'; const PWP_IDENT_TOD = '(T/D)'; const PWP_IDENT_DECEL = '(DECEL)'; const PWP_IDENT_FLAP1 = '(FLAP1)'; @@ -82,6 +82,7 @@ export class PseudoWaypoints implements GuidanceComponent { private readonly flightPlanService: FlightPlanService, private readonly guidanceController: GuidanceController, private readonly atmosphericConditions: AtmosphericConditions, + private readonly acConfig: AircraftConfig, ) {} acceptVerticalProfile() { @@ -368,6 +369,9 @@ export class PseudoWaypoints implements GuidanceComponent { ): PseudoWaypoint | undefined { let [efisSymbolLla, distanceFromLegTermination, alongLegIndex] = [undefined, undefined, undefined]; + const PWP_IDENT_SPD_LIM = this.acConfig.vnavConfig.LIM_PSEUDO_WPT_LABEL; + const PWP_SPD_LIM_HEADER = PWP_IDENT_SPD_LIM === '(LIM)' ? '\xa0(SPD)' : undefined; + const isLatAutoControlArmedOrActive = this.guidanceController.vnavDriver.isLatAutoControlActive() || this.guidanceController.vnavDriver.isLatAutoControlArmedWithIntercept(); @@ -419,7 +423,7 @@ export class PseudoWaypoints implements GuidanceComponent { efisSymbolLla, distanceFromStart: checkpoint.distanceFromStart, displayedOnMcdu: true, - mcduHeader: '\xa0(SPD)', + mcduHeader: PWP_SPD_LIM_HEADER, flightPlanInfo: this.formatFlightPlanInfo(checkpoint), displayedOnNd: false, }; @@ -432,7 +436,7 @@ export class PseudoWaypoints implements GuidanceComponent { efisSymbolLla, distanceFromStart: checkpoint.distanceFromStart, displayedOnMcdu: true, - mcduHeader: '\xa0(SPD)', + mcduHeader: PWP_SPD_LIM_HEADER, flightPlanInfo: this.formatFlightPlanInfo(checkpoint), displayedOnNd: false, };