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

fix: enable transition from done phase to preflight phase #9664

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

Saschl
Copy link
Contributor

@Saschl Saschl commented Dec 15, 2024

Fixes #[issue_no]

Summary of Changes

Currently the plane never transitions to done phase, which prevented turnarounds from working properly as it was impossible to enter a new flightplan and performance data (the data is being cleared but the MFD fields are not editable). Added the logic to transition to preflight phase.

Not sure if this is the right way to approach this, suggestions welcome :)

Screenshots (if necessary)

References

Additional context

Discord username (if different from GitHub):

Testing instructions

  1. Take off from the runway with the Perf page open on the MFD. Make sure the V speeds become read only.
  2. Abort the takeoff, come to a halt and turn off the engines (ensure the APU is on so you still have power, to be on the safe side)
  3. After the engines are below 20% N2, the mfd should switch automatically to the status page.
  4. Switch to INIT or fuel/load or perf page again and make sure all the fields can be filled again.
  5. A full flight doing the same checks would be welcome as well of course but not mandatory

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, flybywire-aircraft-a380-842 (4K) or flybywire-aircraft-a380-842 (8K) download link at the bottom of the page

@@ -79,6 +87,7 @@ export class MfdUiService {

const parsedUri = this.parseUri(nextUri);
this.activeUri.set(parsedUri);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eventually, we could replace this with the publisher. Then we do not set this in two places.

@Saschl Saschl added the A380X Related to the A380X aircraft label Dec 16, 2024
@G-DRAW
Copy link

G-DRAW commented Dec 16, 2024

The above sounds very good. I have a few suggestions, during landing the FMS should also reset to the Status page automatically 30 seconds after landing.
APPR to DONE FMS Phase

@G-DRAW
Copy link

G-DRAW commented Dec 16, 2024

The FMS on the A380 can also transition from and to any flight phase. Hope this helps.
A380 FCOM Flight Phases
A380 FCOM Phase List
A380 FCOM Phase List 2
A380 FCOM Phase List 3
A380 FCOM Phase List 4
A380 FCOM Phase List 5
A380 FCOM Phase List 6
A380 FCOM Phase List 7
A380 FCOM Phase List 8

@G-DRAW
Copy link

G-DRAW commented Dec 17, 2024

#9498 (comment)

@Saschl
Copy link
Contributor Author

Saschl commented Dec 18, 2024

Thanks a lot for the input 👍 I think the missing switch to the status page on FMS2 can be addressed in another PR, as this one is meant to allow for turnarounds in the first place. We will look into that for sure

Copy link
Contributor

@flogross89 flogross89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@@ -139,6 +151,23 @@ export class FlightManagementComputer implements FmcInterface {
// TODO remove this cyclic dependency, isWaypointInUse should be moved to DataInterface
private dataManager: DataManager | null = null;

private readonly flightPhase = ConsumerSubject.create<FmgcFlightPhase>(null, this.flightPhaseManager.phase);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
private readonly flightPhase = ConsumerSubject.create<FmgcFlightPhase>(null, this.flightPhaseManager.phase);
private readonly flightPhase = ConsumerSubject.create<FmgcFlightPhase>(this.sub.on('fmgc_flight_phase'), this.flightPhaseManager.phase);

You can do this, if you pull private sub = this.bus.getSubscriber<FlightPhaseManagerEvents & MfdUIData>()
to the class methods, saves you two lines of setConsumer calls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A380X Related to the A380X aircraft
Projects
Status: 🟣 QA Review: Ready to Test
Development

Successfully merging this pull request may close these issues.

3 participants