Skip to content

Commit 9212424

Browse files
FoxtrotSierra6829tracernz
authored andcommitted
feat(efb): harmonize takeoff and landing performance calculators (#9938)
commit 717d95923a42882fc15293b39906f6185f7bf922 Author: FoxtrotSierra <github@florian-scheuner.de> Date: Mon Mar 24 13:26:20 2025 +0200 docs: move changelog entry commit 9169e7d66003e59d9b63469cf2a89a4bbdff258a Author: FoxtrotSierra <github@florian-scheuner.de> Date: Sat Mar 22 04:04:18 2025 +0200 docs: add changelog entry commit d7a44e9ec0310549144040a690315e1b28355dd8 Author: FoxtrotSierra <github@florian-scheuner.de> Date: Sat Mar 22 04:00:24 2025 +0200 fix: head and tailwind only for landing perf commit c1fc2e23b4e6375669b452315585efa27d90db42 Author: FoxtrotSierra <github@florian-scheuner.de> Date: Sat Mar 22 02:58:37 2025 +0200 fix: fetched wind velocity format commit 8dae7034b7cf3b24ab59137f56607356af538900 Author: FoxtrotSierra <github@florian-scheuner.de> Date: Sat Mar 22 02:45:13 2025 +0200 feat: runway autofill selection for landing commit 0079a42a9eddba3a41dc0629d2f6dd7083c1f950 Author: FoxtrotSierra <github@florian-scheuner.de> Date: Sat Mar 22 01:53:01 2025 +0200 feat: unified wind handling commit 2a4b32d3b646652ed0d7f9de886cd084e001aa2d Author: FoxtrotSierra <github@florian-scheuner.de> Date: Fri Mar 21 18:11:41 2025 +0200 feat: wind input filtering commit 1ac3a6728aa12c8d40f33a65ddf6d01935367453 Author: FoxtrotSierra <github@florian-scheuner.de> Date: Fri Mar 21 13:34:13 2025 +0200 feat: reorder performance parameters
1 parent 1ca7fc9 commit 9212424

File tree

7 files changed

+687
-518
lines changed

7 files changed

+687
-518
lines changed

.github/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@
196196
1. [A380X/FMC] Fixed FIX INFO temporary flightplan handling - @Benjozork (Benjamin Dupont)
197197
1. [A380X/OIS] Fix OIT brightness being incorrectly connected to RMP 2 and RMP 3 screen brightness - @heclak (Heclak)
198198
1. [A380X/OIS] OIT brightness will now be set automatically at spawn - @heclak (Heclak)
199+
1. [EFB/PERF] Harmonize takeoff and landing performance calculators - @FoxtrotSierra6829 (FoxtrotSierra)
199200

200201
## 0.12.0
201202

fbw-common/src/systems/instruments/src/EFB/Localization/data/en.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@
286286
"Performance": {
287287
"Data": "Data",
288288
"Landing": {
289+
"Airport": "Airport",
289290
"AirportIcao": "Airport ICAO",
290291
"ApproachSpeed": "Approach Speed",
291292
"ApproachSpeedUnit": "kts",
@@ -294,8 +295,10 @@
294295
"Clear": "Clear",
295296
"DropDownNo": "No",
296297
"DropDownYes": "Yes",
298+
"EnterManually": "Enter Manually",
297299
"FillDataFrom": "Fill data from",
298300
"FlapsConfiguration": "Flaps Configuration",
301+
"LandingWeight": "Landing Weight",
299302
"Low": "Low",
300303
"MaximumManual": "Maximum Manual",
301304
"Medium": "Medium",
@@ -304,8 +307,6 @@
304307
"OverweightProcedure": "Overweight Procedure",
305308
"Qnh": "QNH",
306309
"ReverseThrust": "Reverse Thrust",
307-
"RunwayAltitude": "Runway Elevation",
308-
"RunwayAltitudeUnit": "ft ASL",
309310
"RunwayCondition": "Runway Condition",
310311
"RunwayConditions": {
311312
"Dry": "Dry (6)",
@@ -315,6 +316,9 @@
315316
"MediumPoor": "Medium-Poor (2)",
316317
"Poor": "Poor (1)"
317318
},
319+
"Runway": "Runway",
320+
"RunwayElevation": "Runway Elevation",
321+
"RunwayElevationUnit": "ft AMSL",
318322
"RunwayHeading": "Runway Heading",
319323
"RunwayHeadingUnit": "°",
320324
"RunwayLda": "Runway LDA",
@@ -329,11 +333,8 @@
329333
"Title": "Landing",
330334
"UnitFt": "ft",
331335
"UnitMeter": "m",
332-
"Weight": "Weight",
333-
"WindDirection": "Wind Direction",
334-
"WindDirectionUnit": "°",
335-
"WindMagnitude": "Wind Magnitude",
336-
"WindMagnitudeUnit": "kts"
336+
"Wind": "Wind",
337+
"WindMagnitudeUnit": "kts or °/kts"
337338
},
338339
"SYNC": "SYNC",
339340
"Takeoff": {
@@ -376,8 +377,6 @@
376377
"Packs": "Packs",
377378
"Qnh": "QNH",
378379
"Runway": "Runway",
379-
"RunwayBearing": "Runway Bearing",
380-
"RunwayBearingUnit": "°",
381380
"RunwayCondition": "Runway Condition",
382381
"RunwayConditions": {
383382
"Dry": "Dry",
@@ -394,7 +393,9 @@
394393
"Contaminated100mmDrySnow": "Dry Snow - 100 mm/4\""
395394
},
396395
"RunwayElevation": "Runway Elevation",
397-
"RunwayElevationUnit": "ft",
396+
"RunwayElevationUnit": "ft AMSL",
397+
"RunwayHeading": "Runway Heading",
398+
"RunwayHeadingUnit": "°",
398399
"RunwayLengthUnitFt": "ft",
399400
"RunwayLengthUnitMeter": "m",
400401
"RunwaySlope": "Runway Slope",
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
export const WIND_MAGNITUDE_ONLY_REGEX = /^(TL|HD|T|H|\+|-)?(\d{1,2}(?:\.\d)?)$/;
2+
export const WIND_MAGNITUDE_AND_DIR_REGEX = /^(\d{1,3})\/(\d{1,2}(?:\.\d)?)$/;
3+
4+
export const isWindMagnitudeOnly = (input: string): boolean => {
5+
const magnitudeOnlyMatch = input.match(WIND_MAGNITUDE_ONLY_REGEX);
6+
return magnitudeOnlyMatch !== null && (magnitudeOnlyMatch[1] !== '' || input === '0');
7+
};
8+
9+
export const isWindMagnitudeAndDirection = (input: string): boolean => {
10+
const magnitudeOnlyMatch = input.match(WIND_MAGNITUDE_AND_DIR_REGEX);
11+
return magnitudeOnlyMatch !== null;
12+
};
13+
14+
export const isValidIcao = (icao: string): boolean => icao?.length === 4;

0 commit comments

Comments
 (0)