Skip to content

fix(gsx): Changes to support new Loader Behavior, Handlers and Service Cancellation#10560

Draft
Fragtality wants to merge 6 commits intoflybywiresim:masterfrom
Fragtality:gsx-changes-new-features
Draft

fix(gsx): Changes to support new Loader Behavior, Handlers and Service Cancellation#10560
Fragtality wants to merge 6 commits intoflybywiresim:masterfrom
Fragtality:gsx-changes-new-features

Conversation

@Fragtality
Copy link
Copy Markdown
Contributor

@Fragtality Fragtality commented Feb 19, 2026

Fixes: N/A - preventive maintenance

Summary of Changes

  • New Loader Behavior (released, live): They stay connected now after (Un-)Loading has finished.
    => Removed Code to close Cargo Doors (A380) after reaching 100%.
  • Custom Aircraft Handler Scripts (released, experimental feature): Python Files running inside GSX which can override certain Service Interactions. Like setting power Availability beyond our Control.
    => Added custom Handler Files overriding all available Handler Methods.
  • Service Cancellation (released, live): GSX Version 3.8.0 allows to cancel (stop) a Service earlier which comes with a new GSX Service State (7/completing).
    => Added new State to Enums in TS & Rust and checked Comparisons to Service States to be still semantically correct.

Along the Way I've made some further Optimizations:

  • Harmonized XML Conditions for Chocks (A32NX_GND_EQP_IS_VISIBLE) on A320 & A380
    • Included Engines 3 and 4 for A380
  • (TS/extra-host) Generalized GsxSync Base Class further
    • Added new Loader Attached Variables
    • Rewrote GSX Power Sync
    • Changed Power Sync to use (GSX) GPU Connection Variable instead of Service State
  • (TS/extra-host) Changed MSFS Power Sync
    • Syncing can be disabled via event
    • Added event to set ext avail state
    • Ensured that User Control via FlyPad is always given regardless of which Sync is active
  • (Rust/systems) Changed Payload Synch to finish on 1/available and 7/completing (besides 6/completed)
  • (Rust/systems) Boarding Complete sound is also triggered on 7/completing

Screenshots (if necessary)

References

Additional context

Discord username (if different from GitHub):

Testing instructions

WIP

Non-GSX:

  1. Check if behavior is still the same (GSX Sync has to be disabled)

GSX:

  1. Check if Power is synced as expected
  • Except Session-Start: Power is only avail when Jetway or GSX GPU is connected
  • No forceful Disconnection
  • Power Avail is removed during GSX Pushback
  1. Check if Avail State can always be overridden by the User in FlyPad
  2. Check if canceling a Service (Refuel, Board, Deboard) works without Problems (Fuel/Payload Sync should finish as normal, just earlier)
  3. Check if Cargo-Door Sync is working without Issues

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

@github-project-automation github-project-automation Bot moved this to 🟡 Code Review: Ready for Review in Quality Assurance Feb 19, 2026
@Fragtality
Copy link
Copy Markdown
Contributor Author

Discussion Point: Usage of the A32NX_HYD_NW_STRG_DISC_ECAM_MEMO Variable in the XML Condition.
I get that it was added to remove the Chocks automatically when using the EFB Pushback. BUT: It is not an universal Indicator for "Pushback is active" since the Tug can already be connected (and Pin inserted) when Boarding is still ongoing. Which is possible with GSX. And GSX' Bypass Pin State is also synchronized to correctly trigger that Memo.
So in the End, the Chocks are already removed when the Tug is attached while Boarding. Without checking if the Aircraft is secured through the Parking Brake.

@Fragtality Fragtality marked this pull request as draft February 20, 2026 21:24
// disable ext power when aircraft starts moving
if (v > 0.3 && this.anyGPUAvail()) {
this.toggleGPU();
this.setEXTpower(false);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should the p be capitalised?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I just thought it should be for camel case and consistency

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I didn't name it ... so maybe? 😅

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🟡 Code Review: Ready for Review

Development

Successfully merging this pull request may close these issues.

2 participants