flybywiresim / aircraft

The A32NX & A380X Project are community driven open source projects to create free Airbus aircraft in Microsoft Flight Simulator that are as close to reality as possible.
https://flybywiresim.com
GNU General Public License v3.0
5.16k stars 1.12k forks source link

[A380X] - APPR PERF decision height boxes - wrong input logic #9114

Open ExampleWasTaken opened 1 month ago

ExampleWasTaken commented 1 month ago

Aircraft Version

Development

Build info

{
    "built": "2024-10-21T09:22:54+00:00",
    "ref": "refs/heads/master",
    "sha": "909ed7fe239e7d31f5f7e69c1cfa9a744a7a6a43",
    "actor": "Saschl",
    "event_name": "manual",
    "pretty_release_name": "master:909ed7fe",
    "version": "a380x-v0.12.0-dev.909ed7f"
}

Describe the bug

The following issues are present in relation to the input logic of the minima fields on the PERF APPR page.

  1. NONE, NO, NODH, NO DH are not accepted as valid entries for RADIO on the PERF APPR page. It also does not allow spaces, which is necessary to support NO DH as input.
  2. RADIO accepts 0 which should be out of range
  3. Both BARO and RADIO can be filled out at the same time

Expected behavior

  1. All above listed inputs should be accepted as valid entries.
  2. The RADIO field should not accept values <1
  3. Both fields should never be filled out at the same time.

Steps to reproduce

  1. Try to enter the above listed strings into the RADIO field.
  2. Try to enter 0 as decision height
  3. Try to fill out both fields without clearing the other first.

References (optional)

image

Additional info (optional)

No response

Discord Username (optional)

examplewastaken

thomasshrm commented 1 month ago

Hi, Not an MSFS developer but just trying to help developement team. In aircraft/fbw-a380x/src/systems/instruments/src/MFD/pages/FMS /MfdFmsPerf.tsx from line 2522 to 2530, it seems that we can configure RADIO with the value we want, even the value's more than 1ft. Proposal : dataHandlerDuringValidation={async (v) => { if (v === undefined) { SimVar.SetSimVarValue('L:AIRLINER_DECISION_HEIGHT', 'feet', -1); } else if (v === null) { SimVar.SetSimVarValue('L:AIRLINER_DECISION_HEIGHT', 'feet', -2); } else if (v > 1) { SimVar.SetSimVarValue('L:AIRLINER_DECISION_HEIGHT', 'feet', -1); } else { SimVar.SetSimVarValue('L:AIRLINER_DECISION_HEIGHT', 'feet', v); } }}