Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(a32nx): takeoff performance calculator #8678

Merged
merged 46 commits into from
Jun 28, 2024

Conversation

tracernz
Copy link
Member

@tracernz tracernz commented Jun 15, 2024

Fixes #3393
Fixes #4444

Summary of Changes

  • Moves the performance calculators out of fbw-common into the aircraft. The calculator interface is designed to be generic, and the EFB UI pages should handle any aircraft types we have. Aircraft provide their calculators to the EFB through a Context. The pages will not appear in the EFB UI if no calculator is provided by the aircraft.
  • Implements a complete takeoff performance calculator for dry, wet, and contaminated runways, roughly equivalent to the FlySmart+ Takeoff app, in the EFB. The calculator does not consider obstacles as we have no obstacle database available.

Notes:

  • The takeoff calculator is structured closely following the takeoff calculation documentation so it remains maintainable as that document evolves. It might not be the optimal code structure for other reasons, but this one overrides them all.

The takeoff performance model is developed and maintained by @donstim. Huge thanks. Also a big thanks to everyone who helped with development of that model.

TODO: Check out if anything needs done for localisations.

Screenshots (if necessary)

References

Additional context

The takeoff calculator is in shared rather than EFB specifically because I intend to implement takeoff performance uplink in future (#8667) and it may also be useful/extended for TOS2. Note that TO perf uplink in the FMS does not uplink a single perf result (e.g. from the EFB), but rather a series of results for the selected runways and the intent is to implement like that as in the real thing.

Discord username (if different from GitHub):

Testing instructions

Test the general usability and buginess, and any questionable results. The takeoff model has been validated on a wide range of scenarios so it's mostly about the UI and interactions, and rejecting invalid cases.

How to download the PR for QA

Every new commit to this PR will cause new A32NX and A380X artifacts to be created, built, and uploaded.

  1. Make sure you are signed in to GitHub
  2. Click on the Checks tab on the PR
  3. On the left side, find and click on the PR Build tab
  4. Click on either flybywire-aircraft-a320-neo or flybywire-aircraft-a380-842 download link at the bottom of the page

@tracernz tracernz added this to the v0.12.0 milestone Jun 15, 2024
@tracernz tracernz requested a review from 2hwk June 25, 2024 12:05
@xmudrii
Copy link

xmudrii commented Jun 27, 2024

Non-QA Team Report (asked by @tracernz)

Discord: xmudrii
Object of testing: #8678
Tier of Testing: 2
Date: 27/6/2024

Testing Process:

  • Spawned at a ramp, turned on EFB, opened the calculator page
  • Tried to calculate takeoff performance for different:
    • airports (e.g. LYBE, LGTS, LGAV, LYPG, EDDM, EDDF...)
    • runaways and intersections (different TORA, too high and too low values such as 4000m and 1200m)
    • runway conditions and weather
    • aircraft configuration (FLEX or TOGA, packs on/off, all anti-ice options)
  • Tried to calculate takeoff performance for impossible takeoff profiles
  • Tried different abnormal values (too high/low temperature, wind, runway parameters)
  • Did several full flights from different airports and configurations using calculations provided by the EFB
  • Ensured that EFB is fully functional after adding the new feature and that other calculators are working

Negatives:

  • There are some issues with the flyPadOS that has been reported on Discord. A follow-up issue will be created later

Testing Results:
Passed

Conclusions:
LGTM

@alepouna
Copy link
Member

QA Report

Discord: alepouna
Object of testing: #8678
Tier of Testing: 1
Date: 27/6/2024

Testing Process:

  • Spawn at a gate, runway and test various data configurations, all good
  • Attempt to "break" the system by using abnormal & erroneous values, all good
  • Attempt to calculate values for impossible take off conditions, all good

Testing Results:
Passed

@tracernz tracernz enabled auto-merge (squash) June 28, 2024 20:42
@tracernz tracernz merged commit 5c88ab8 into flybywiresim:master Jun 28, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: ✔️ Done
Development

Successfully merging this pull request may close these issues.

Takeoff calculations on EFB. [REQUEST] V1/VR/V2 speed calculation
6 participants