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): ecam control panel (ecp) #9840

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@
1. [FMS] Fix approach ident only showing on ND when approach is being flown - @BravoMike99 (bruno_pt99)
1. [A380X/FWS] Add support for deferred procedures, abnormal (non-)sensed procedures - @flogross89 (floridude)
1. [A380X/FWS] Enable FWS failures (FWS 1/2, FWS 1+2, ECP, Audio Function) - @flogross89 (floridude)
1. [A32NX/ECP] Implemented realistic simulation of the ECAM control panel - @tracernz (Mike)

## 0.12.0

Expand Down
90 changes: 90 additions & 0 deletions fbw-a32nx/docs/a320-simvars.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@
- [Flight Augmentation Computer (FAC)](#flight-augmentation-computer-fac)
- [Flaps / Slats (ATA 27)](#flaps--slats-ata-27)
- [Flight Controls (ATA 27)](#flight-controls-ata-27)
- [Indication and Recording Systems (ATA 31)](#indication-and-recording-systems-ata-31)
- [ECP](#ecp)
- [ARINC429 Output Bus](#arinc429-output-bus)
- [Hardwired Discretes](#hardwired-discretes)
- [Landing Gear (ATA 32)](#landing-gear-ata-32)
- [ATC (ATA 34)](#atc-ata-34)
- [Radio Altimeter (ATA 34)](#radio-altimeter-ata-34)
Expand Down Expand Up @@ -3847,6 +3851,92 @@ In the variables below, {number} should be replaced with one item in the set: {
- Percent
- Trim wheel position in percent

## Indication and Recording Systems (ATA 31)

### ECP

Use the `A32NXEcpBusPublisher` and `A32NXEcpBusEvents` for these in A32NX code.

#### ARINC429 Output Bus

- `L:A32NX_ECP_WARNING_SWITCH_WORD`
- The ECP warning switch word containg button pressed state.
Transmitted to each FWC, DMC, TAWS, FDIMU, and ATSU.
- Arinc429<Discrete>
| Bit | Description |
|:---:|:---------------------------------:|
| 11 | CLR 1 |
| 13 | STS |
| 14 | RCL |
| 16 | CLR 2 |
| 17 | EMERGENCY CANCEL |
| 18 | TO CONFIG TEST |

- `L:A32NX_ECP_SYSTEM_SWITCH_WORD`
- The ECP system switch word containg button pressed state.
Transmitted to each FWC, DMC, TAWS, FDIMU, and ATSU.
- Arinc429<Discrete>
| Bit | Description |
|:---:|:---------------------------------:|
| 11 | ENG |
| 12 | BLEED |
| 13 | APU |
| 14 | HYD |
| 15 | ELEC |
| 17 | COND |
| 18 | PRESS |
| 19 | FUEL |
| 20 | FLT/CTL |
| 21 | DOOR |
| 22 | BRAKES |
| 23 | ALL |

- `L:A32NX_ECP_LIGHT_STATUS_WORD`
- The ECP light status word containg button light state.
Transmitted to each FWC, DMC, TAWS, FDIMU, and ATSU.
- Arinc429<Discrete>
| Bit | Description |
|:---:|:---------------------------------:|
| 11 | ENG |
| 12 | BLEED |
| 13 | APU |
| 14 | HYD |
| 15 | ELEC |
| 16 | STATUS |
| 17 | COND |
| 18 | PRESS |
| 19 | FUEL |
| 20 | FLT/CTL |
| 21 | DOOR |
| 22 | BRAKES |
| 23 | CLR 1 |
| 24 | CLR 2 |
| 26 | L. TEST |
| 27 | DIM |

#### Hardwired Discretes

- `L:A32NX_ECP_DISCRETE_OUT_STS`
- The hardwired discrete for STS button to each FWC.
- Boolean

- `L:A32NX_ECP_DISCRETE_OUT_RCL`
- The hardwired discrete for RCL button to each FWC.
- Boolean

- `L:A32NX_ECP_DISCRETE_OUT_CLR`
- The hardwired discrete for CLR button to each FWC.
- Boolean

- `L:A32NX_ECP_DISCRETE_OUT_EMER_CANC`
- The hardwired discrete for emergency cancel/audio suppression to each FWC and the TAWS.
- Boolean

- `L:A32NX_ECP_DISCRETE_OUT_ALL`
- The hardwired discrete for emergency cancel/audio suppression to each DMC.
- Boolean


## Landing Gear (ATA 32)

- A32NX_LGCIU_{number}_DISCRETE_WORD_1
Expand Down
205 changes: 205 additions & 0 deletions fbw-a32nx/docs/a32nx-input-events.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,205 @@
# A32NX Input Events

These input events represent the stable cockpit API for the A32NX. They should be preferred over localvars or any other data access in all cases.

## Notes on Maintenance

Please keep all IEs under the correct ATA chapter where they relate to aircraft systems, otherwise in the sim chapter, and in alphabetical order within sections.

## Contents

- [A32NX Input Events](#a32nx-input-events)
- [Notes on Maintenance](#notes-on-maintenance)
- [Contents](#contents)
- [31 - Indication and Recording Systems](#31---indication-and-recording-systems)
- [ECP Warning Input Events](#ecp-warning-input-events)
- [ECP System Input Events](#ecp-system-input-events)

## 31 - Indication and Recording Systems

### ECP Warning Input Events

- `B:A32NX_PED_ECP_CLR_1_PB`, `B:A32NX_PED_ECP_CLR_2_PB`
- This represents the CLR (clear) pushbuttons on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_CLR_{1|2}_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_CLR_{1|2}_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_CLR_{1|2}_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_CLR_{1|2}_PB_Release`: releases the button
- `B:A32NX_PED_ECP_CLR_{1|2}_PB_Set`: meaningless

- `B:A32NX_PED_ECP_STS_PB`
- This represents the STS (status) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_STS_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_STS_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_STS_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_STS_PB_Release`: releases the button
- `B:A32NX_PED_ECP_STS_PB_Set`: meaningless

- `B:A32NX_PED_ECP_RCL_PB`
- This represents the RCL (recall) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_RCL_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_RCL_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_RCL_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_RCL_PB_Release`: releases the button
- `B:A32NX_PED_ECP_RCL_PB_Set`: meaningless

- `B:A32NX_PED_ECP_EMER_CANCEL_PB`
- This represents the EMER CANC (emeregency cancel) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_EMER_CANCEL_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_EMER_CANCEL_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_EMER_CANCEL_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_EMER_CANCEL_PB_Release`: releases the button
- `B:A32NX_PED_ECP_EMER_CANCEL_PB_Set`: meaningless

- `B:A32NX_PED_ECP_EMER_CANCEL_COVER`
- This represents the transparent cover over the standby radio navigation pushbutton.
- Value: boolean indicating whether the cover is open.
- Bindings:
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Inc`: meaningless
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Close`: closes the cover
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Dec`: meaningless
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Open`: opens the cover
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Push`: meaningless
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Release`: meaningless
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Toggle`: toggles the cover open or closed
- `B:A32NX_PED_ECP_EMER_CANCEL_COVER_Set`: meaningless

- `B:A32NX_PED_ECP_TO_CONF_TEST_PB`
- This represents the T.O CONFIG (takeoff config test) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_TO_CONF_TEST_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_TO_CONF_TEST_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_TO_CONF_TEST_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_TO_CONF_TEST_PB_Release`: releases the button
- `B:A32NX_PED_ECP_TO_CONF_TEST_PB_Set`: meaningless

### ECP System Input Events

- `B:A32NX_PED_ECP_ENG_PB`
- This represents the ENG (engine page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_ENG_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_ENG_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_ENG_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_ENG_PB_Release`: releases the button
- `B:A32NX_PED_ECP_ENG_PB_Set`: meaningless

- `B:A32NX_PED_ECP_BLEED_PB`
- This represents the BLEED (bleed air page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_BLEED_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_BLEED_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_BLEED_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_BLEED_PB_Release`: releases the button
- `B:A32NX_PED_ECP_BLEED_PB_Set`: meaningless

- `B:A32NX_PED_ECP_APU_PB`
- This represents the APU (auxiliary power unit page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_APU_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_APU_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_APU_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_APU_PB_Release`: releases the button
- `B:A32NX_PED_ECP_APU_PB_Set`: meaningless

- `B:A32NX_PED_ECP_HYD_PB`
- This represents the HYD (hydraulics page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_HYD_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_HYD_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_HYD_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_HYD_PB_Release`: releases the button
- `B:A32NX_PED_ECP_HYD_PB_Set`: meaningless

- `B:A32NX_PED_ECP_ELEC_PB`
- This represents the ELEC (electrical page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_ELEC_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_ELEC_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_ELEC_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_ELEC_PB_Release`: releases the button
- `B:A32NX_PED_ECP_ELEC_PB_Set`: meaningless

- `B:A32NX_PED_ECP_COND_PB`
- This represents the COND (air conditioning page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_COND_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_COND_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_COND_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_COND_PB_Release`: releases the button
- `B:A32NX_PED_ECP_COND_PB_Set`: meaningless

- `B:A32NX_PED_ECP_PRESS_PB`
- This represents the PRESS (pressurisation page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_PRESS_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_PRESS_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_PRESS_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_PRESS_PB_Release`: releases the button
- `B:A32NX_PED_ECP_PRESS_PB_Set`: meaningless

- `B:A32NX_PED_ECP_FUEL_PB`
- This represents the FUEL (fuel page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_FUEL_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_FUEL_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_FUEL_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_FUEL_PB_Release`: releases the button
- `B:A32NX_PED_ECP_FUEL_PB_Set`: meaningless

- `B:A32NX_PED_ECP_FLT_CTL_PB`
- This represents the F CTL (flight control page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_FLT_CTL_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_FLT_CTL_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_FLT_CTL_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_FLT_CTL_PB_Release`: releases the button
- `B:A32NX_PED_ECP_FLT_CTL_PB_Set`: meaningless

- `B:A32NX_PED_ECP_DOOR_PB`
- This represents the DOOR (door page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_DOOR_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_DOOR_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_DOOR_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_DOOR_PB_Release`: releases the button
- `B:A32NX_PED_ECP_DOOR_PB_Set`: meaningless

- `B:A32NX_PED_ECP_BRAKES_PB`
- This represents the BRAKES (wheel/brake page) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_BRAKES_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_BRAKES_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_BRAKES_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_BRAKES_PB_Release`: releases the button
- `B:A32NX_PED_ECP_BRAKES_PB_Set`: meaningless

- `B:A32NX_PED_ECP_ALL_PB`
- This represents the ALL (cycle all system pages) pushbutton on the ECP.
- Value: boolean indicating whether the button is pressed.
- Bindings:
- `B:A32NX_PED_ECP_ALL_PB_Inc`: meaningless
- `B:A32NX_PED_ECP_ALL_PB_Dec`: meaningless
- `B:A32NX_PED_ECP_ALL_PB_Push`: pushes the button
- `B:A32NX_PED_ECP_ALL_PB_Release`: releases the button
- `B:A32NX_PED_ECP_ALL_PB_Set`: meaningless
Loading