diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index caeec63caf2..841e5985941 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -76,7 +76,9 @@ 1. [FLIGHTMODEL] Fixes some crosswind issues - @donstim (donbikes) 1. [LIGHTS] Movement of landing lights now requires power and position is output into LVAR - @Maximilian-Reuter 1. [CDU] Fix auto weight and balance import on INIT B during GSX boarding not using the target values - @Maximilian-Reuter -2. [FAC] Improve sideslip estimation - @lukecologne (luke) +1. [FAC] Improve sideslip estimation - @lukecologne (luke) +1. [FWC] Implement overspeed VMO/MMO warning - @tracernz (Mike) +1. [MISC] Fixed wrong msfs plane acceleration during reverser use causing autobrake wrong brake inputs - @Crocket63 (crocket) ## 0.11.0 diff --git a/fbw-a32nx/docs/a320-simvars.md b/fbw-a32nx/docs/a320-simvars.md index 2ea945efa42..f5dff2651b6 100644 --- a/fbw-a32nx/docs/a320-simvars.md +++ b/fbw-a32nx/docs/a320-simvars.md @@ -1649,6 +1649,10 @@ In the variables below, {number} should be replaced with one item in the set: { - Arinc429Word - The computed airspeed (CAS). +- A32NX_ADIRS_ADR_{number}_MAX_AIRSPEED + - Arinc429Word + - The max allowable airspeed (CAS), considering VMO and MMO. + - A32NX_ADIRS_ADR_{number}_MACH - Arinc429Word - The Mach number (M). @@ -1673,6 +1677,30 @@ In the variables below, {number} should be replaced with one item in the set: { - Arinc429Word - The angle of attack (α) of the aircraft +- A32NX_ADIRS_ADR_{number}_DISCRETE_WORD_1 + - Arinc429Word + - Indicates state of the ADR + Bit | Meaning + --- | --- + 0 | ICING_DETECTOR_HEAT (not yet implemented) + 1 | PITOT_HEAT (not yet implemented) + 2 | ADR_FAULT + 3 | RIGHT_STATIC_HEAT (not yet implemented) + 4 | LEFT_STATIC_HEAT (not yet implemented) + 5 | TAT_HEAT (not yet implemented) + 6 | AOA_SENSOR_1_FAULT (not yet implemented) + 7 | AOA_SENSOR_2_FAULT (not yet implemented) + 8 | OVERSPEED_WARNING + 10 | AOA_UNIQUE (not yet implemented) + 11 | VMO_MMO_1 (not yet implemented) + 12 | VMO_MMO_2 (not yet implemented) + 13 | VMO_MMO_3 (not yet implemented) + 14 | VMO_MMO_4 (not yet implemented) + 15 | ALTERNATE_SSEC_A (not yet implemented) + 16 | ALTERNATE_SSEC_B (not yet implemented) + 17 | BARO_PORT_A (not yet implemented) + 18 | ZERO_MACH_IGNORE_SSEC (not yet implemented) + - A32NX_ADIRS_IR_{number}_PITCH - Arinc429Word - The pitch angle of the aircraft. diff --git a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/aircraft.cfg b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/aircraft.cfg index bb3bb2ba634..856d6810b27 100644 --- a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/aircraft.cfg +++ b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/aircraft.cfg @@ -72,8 +72,8 @@ model = "" ; model folder panel = "" ; panel folder sound = "" ; sound folder texture = "" ; texture folder -kb_checklists = "Boeing747-400_check" ; Procedures/Checklist sibling file name -kb_reference = "Boeing747-400_ref" ; Reference information sibling file name +kb_checklists = "" ; Procedures/Checklist sibling file name +kb_reference = "" ; Reference information sibling file name description = "TT:AIRCRAFT.DESCRIPTION" ; Variation description. wip_indicator = 0 ; know if the variation is good to go or still WIP : -1=Disabled, 0=Rough, 1=1st Pass, 2=Finished ui_manufacturer = "FlyByWire Simulations" ; e.g. Boeing, Cessna @@ -86,11 +86,10 @@ ui_certified_ceiling = 39800 ; service ceiling / max certified operating altitud ui_max_range = 3500 ; max distance the aircraft can fly between take-off and landing in (NM) ui_autonomy = 7 ; max duration the aircraft can fly between take-off and landing in (Hrs) ui_fuel_burn_rate = 5300 ; average fuel consumption per hour (lbs/hr) - reminder: fuel density is ~6.7lbs per US gallon -atc_id = "ASX320" ; tail number -atc_id_enable = 0 ; enable tail number -atc_airline = "" ; airline name -atc_flight_number = "1123" ; flight number -atc_heavy = 1 ; heavy? +atc_id = "FBW320" ; tail number +atc_airline = "Fly By Wire" ; airline name +atc_flight_number = "320" ; flight number +atc_heavy = 0 ; atc_parking_types = "GATE,RAMP,CARGO" ; "ANY" / "RAMP" / "CARGO" / "MIL_CARGO" / "MIL_COMBAT" / "GATE" / "DOCK" atc_parking_codes = "" ; Comma separated and may be as small as one character each atc_id_color = "" ; color for the tail number : i.e. "#ffff00ff" diff --git a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/sound/sound.xml b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/sound/sound.xml index fe4c8d502ea..1927b61bc40 100644 --- a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/sound/sound.xml +++ b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/SimObjects/AirPlanes/FlyByWire_A320_NEO/sound/sound.xml @@ -1901,21 +1901,21 @@ - + - + - + @@ -2038,7 +2038,7 @@ - + @@ -2056,7 +2056,7 @@ - + @@ -2074,7 +2074,7 @@ - + @@ -2092,64 +2092,64 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -2346,54 +2346,54 @@ - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - + + + + @@ -2572,8 +2572,8 @@ - - + + diff --git a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js index 5fb1aa00b2b..8ab34e35e5b 100644 --- a/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js +++ b/fbw-a32nx/src/base/flybywire-aircraft-a320-neo/html_ui/Pages/VCockpit/Instruments/Airliners/FlyByWire_A320_Neo/FMC/A32NX_FMCMainDisplay.js @@ -4600,7 +4600,7 @@ class FMCMainDisplay extends BaseAirliners { } isPdFormat(s) { - const pd = s.match(/^([^\/]+)\/([0-9]{1,3}(\.[0-9])?)$/); + const pd = s.match(/^([^\/]+)\/([\-\+]?[0-9]{1,3}(\.[0-9])?)$/); return pd !== null && this.isPlaceFormat(pd[1]); } diff --git a/fbw-a32nx/src/systems/instruments/src/Common/EWDMessages.tsx b/fbw-a32nx/src/systems/instruments/src/Common/EWDMessages.tsx index eee42ae0f98..97444e4aca9 100644 --- a/fbw-a32nx/src/systems/instruments/src/Common/EWDMessages.tsx +++ b/fbw-a32nx/src/systems/instruments/src/Common/EWDMessages.tsx @@ -357,6 +357,8 @@ const EWDMessages = { '320019503': '\x1b<5m -GPWS SYS...........OFF', '340014001': '\x1b<4m\x1b4mNAV\x1bm RA 1 FAULT', '340015001': '\x1b<4m\x1b4mNAV\x1bm RA 2 FAULT', + '340017001': '\x1b<2m\x1b4mOVER SPEED\x1bm', + '340017002': '\x1b<2m -VMO/MMO........350/.82', '340050001': '\x1b<4m\x1b4mNAV\x1bm TCAS FAULT', '340050701': '\x1b<4m\x1b4mNAV\x1bm TCAS STBY', '340021001': '\x1b<2m\x1b4mOVERSPEED\x1bm', diff --git a/fbw-a32nx/src/systems/instruments/src/EWD/PseudoFWC.ts b/fbw-a32nx/src/systems/instruments/src/EWD/PseudoFWC.ts index 5ea94ddf761..45a44747148 100644 --- a/fbw-a32nx/src/systems/instruments/src/EWD/PseudoFWC.ts +++ b/fbw-a32nx/src/systems/instruments/src/EWD/PseudoFWC.ts @@ -567,6 +567,10 @@ export class PseudoFWC { private readonly height2Failed = Subject.create(false); + private adr3OverspeedWarning = new NXLogicMemoryNode(false, false); + + private readonly overspeedWarning = Subject.create(false); + private readonly flapsIndex = Subject.create(0); /** ENGINE AND THROTTLE */ @@ -1049,6 +1053,21 @@ export class PseudoFWC { const height2: Arinc429Word = Arinc429Word.fromSimVarValue('L:A32NX_RA_2_RADIO_ALTITUDE'); this.height1Failed.set(height1.isFailureWarning()); this.height2Failed.set(height2.isFailureWarning()); + // overspeed + const adr3Cas = Arinc429Word.fromSimVarValue('L:A32NX_ADIRS_ADR_3_COMPUTED_AIRSPEED'); + const adr3MaxCas = Arinc429Word.fromSimVarValue('L:A32NX_ADIRS_ADR_3_MAX_AIRSPEED'); + let overspeedWarning = this.adr3OverspeedWarning.write( + adr3Cas.isNormalOperation() && adr3MaxCas.isNormalOperation() && adr3Cas.value > (adr3MaxCas.value + 8), + this.aircraftOnGround.get() || !(adr3Cas.isNormalOperation() && adr3MaxCas.isNormalOperation()) || adr3Cas.value < (adr3MaxCas.value + 4), + ); + const adr1Discrete1 = Arinc429Word.fromSimVarValue('L:A32NX_ADIRS_ADR_1_DISCRETE_WORD_1'); + const adr2Discrete1 = Arinc429Word.fromSimVarValue('L:A32NX_ADIRS_ADR_2_DISCRETE_WORD_1'); + if (!(adr1Discrete1.isNormalOperation() || adr1Discrete1.isFunctionalTest()) || !(adr2Discrete1.isNormalOperation() || adr2Discrete1.isFunctionalTest())) { + const adr3Discrete1 = Arinc429Word.fromSimVarValue('L:A32NX_ADIRS_ADR_3_DISCRETE_WORD_1'); + overspeedWarning ||= adr3Discrete1.getBitValueOr(9, false); + } + overspeedWarning ||= adr1Discrete1.getBitValueOr(9, false) || adr2Discrete1.getBitValueOr(9, false); + this.overspeedWarning.set(overspeedWarning); /* LANDING GEAR AND LIGHTS */ @@ -1881,6 +1900,17 @@ export class PseudoFWC { side: 'LEFT', }, // 34 - NAVIGATION & SURVEILLANCE + 3400170: { // OVER SPEED VMO/MMO + flightPhaseInhib: [2, 3, 4, 8, 9, 10], + simVarIsActive: this.overspeedWarning, + whichCodeToReturn: () => [0, 1], + codesToReturn: ['340017001', '340017002'], + memoInhibit: () => false, + failure: 3, + sysPage: -1, + side: 'LEFT', + cancel: false, + }, 3400210: { // OVERSPEED FLAPS FULL flightPhaseInhib: [2, 3, 4, 8, 9, 10], simVarIsActive: MappedSubject diff --git a/fbw-a32nx/src/wasm/fadec_a320/build.sh b/fbw-a32nx/src/wasm/fadec_a320/build.sh index 3b622a947a1..08374a9227c 100755 --- a/fbw-a32nx/src/wasm/fadec_a320/build.sh +++ b/fbw-a32nx/src/wasm/fadec_a320/build.sh @@ -63,6 +63,11 @@ wasm-ld \ --export malloc \ --export free \ --export __wasm_call_ctors \ + --export mallinfo \ + --export mchunkit_begin \ + --export mchunkit_next \ + --export get_pages_state \ + --export mark_decommit_pages \ --export-table \ --gc-sections \ -lc++ -lc++abi \ diff --git a/fbw-a32nx/src/wasm/fbw_a320/build.sh b/fbw-a32nx/src/wasm/fbw_a320/build.sh index 1d5897a9056..40679ef6e1c 100755 --- a/fbw-a32nx/src/wasm/fbw_a320/build.sh +++ b/fbw-a32nx/src/wasm/fbw_a320/build.sh @@ -156,6 +156,11 @@ wasm-ld \ --export malloc \ --export free \ --export __wasm_call_ctors \ + --export mallinfo \ + --export mchunkit_begin \ + --export mchunkit_next \ + --export get_pages_state \ + --export mark_decommit_pages \ --export-table \ --gc-sections \ ${WASMLD_ARGS} \ diff --git a/fbw-a32nx/src/wasm/systems/a320_systems/src/hydraulic/mod.rs b/fbw-a32nx/src/wasm/systems/a320_systems/src/hydraulic/mod.rs index e8e77183d26..bb718400220 100644 --- a/fbw-a32nx/src/wasm/systems/a320_systems/src/hydraulic/mod.rs +++ b/fbw-a32nx/src/wasm/systems/a320_systems/src/hydraulic/mod.rs @@ -4184,7 +4184,6 @@ impl A320AutobrakeController { || (self.left_brake_pedal_input > Ratio::new::(53.) && self.right_brake_pedal_input > Ratio::new::(53.)) } - _ => false, } } @@ -4214,7 +4213,6 @@ impl A320AutobrakeController { self.deceleration_governor.time_engaged().as_secs_f64(), ), AutobrakeMode::MAX => Self::MAX_MODE_DECEL_TARGET_MS2, - _ => Self::OFF_MODE_DECEL_TARGET_MS2, }) } diff --git a/fbw-a32nx/src/wasm/systems/a320_systems/src/lib.rs b/fbw-a32nx/src/wasm/systems/a320_systems/src/lib.rs index 6756a3374d0..58bfa0a56ef 100644 --- a/fbw-a32nx/src/wasm/systems/a320_systems/src/lib.rs +++ b/fbw-a32nx/src/wasm/systems/a320_systems/src/lib.rs @@ -24,9 +24,9 @@ use electrical::{ use hydraulic::{A320Hydraulic, A320HydraulicOverheadPanel}; use navigation::A320RadioAltimeters; use power_consumption::A320PowerConsumption; -use systems::enhanced_gpwc::EnhancedGroundProximityWarningComputer; use systems::simulation::InitContext; -use uom::si::{f64::Length, length::nautical_mile}; +use systems::{enhanced_gpwc::EnhancedGroundProximityWarningComputer, shared::MachNumber}; +use uom::si::{f64::Length, length::nautical_mile, quantities::Velocity, velocity::knot}; use systems::{ air_starter_unit::AirStarterUnit, @@ -80,7 +80,11 @@ pub struct A320 { impl A320 { pub fn new(context: &mut InitContext) -> A320 { A320 { - adirs: AirDataInertialReferenceSystem::new(context), + adirs: AirDataInertialReferenceSystem::new( + context, + Velocity::new::(350.), + MachNumber(0.82), + ), adirs_overhead: AirDataInertialReferenceSystemOverheadPanel::new(context), air_conditioning: A320AirConditioning::new(context), apu: AuxiliaryPowerUnitFactory::new_aps3200( diff --git a/fbw-a32nx/src/wasm/systems/a320_systems_wasm/src/reversers.rs b/fbw-a32nx/src/wasm/systems/a320_systems_wasm/src/reversers.rs index decfda0bf90..838031c6315 100644 --- a/fbw-a32nx/src/wasm/systems/a320_systems_wasm/src/reversers.rs +++ b/fbw-a32nx/src/wasm/systems/a320_systems_wasm/src/reversers.rs @@ -3,10 +3,21 @@ use std::error::Error; use msfs::sim_connect; use msfs::{sim_connect::SimConnect, sim_connect::SIMCONNECT_OBJECT_ID_USER}; -use systems_wasm::aspects::{MsfsAspectBuilder, ObjectWrite, VariablesToObject}; +use systems_wasm::aspects::{ExecuteOn, MsfsAspectBuilder, ObjectWrite, VariablesToObject}; use systems_wasm::{set_data_on_sim_object, Variable}; pub(super) fn reversers(builder: &mut MsfsAspectBuilder) -> Result<(), Box> { + // We recreate a long accel including the reverser accel that we pass to systems (else MSFS acceleration is not consistent with ingame acceleration when we modify plane velocity) + builder.map_many( + ExecuteOn::PreTick, + vec![ + Variable::aircraft("ACCELERATION BODY Z", "Feet per second squared", 0), + Variable::aspect("REVERSER_DELTA_ACCEL"), + ], + |values| values[0] + values[1], + Variable::aspect("ACCELERATION_BODY_Z_WITH_REVERSER"), + ); + builder.variables_to_object(Box::new(ReverserThrust { velocity_z: 0., angular_acc_y: 0., diff --git a/fbw-a380x/docs/a380-simvars.md b/fbw-a380x/docs/a380-simvars.md index 772d1dff5d5..b5bc2daf508 100644 --- a/fbw-a380x/docs/a380-simvars.md +++ b/fbw-a380x/docs/a380-simvars.md @@ -14,6 +14,7 @@ - [Auxiliary Power Unit ATA 49](#auxiliary-power-unit-ata-49) - [Hydraulics](#hydraulics) - [Sound Variables](#sound-variables) + - [Autobrakes](#autobrakes) ## Uncategorized @@ -696,3 +697,38 @@ - A380X_SOUND_COCKPIT_WINDOW_RATIO - Number - Ratio between 0-1 of the cockpit windows being physically open + +## Autobrakes + +- A32NX_AUTOBRAKES_SELECTED_MODE + - Number + - Indicates position of the autobrake selection knob + - | State | Number | + |--------|--------| + | DISARM | 0 | + | BTV | 1 | + | LOW | 2 | + | L2 | 3 | + | L3 | 4 | + | HIGH | 5 | + +- A32NX_AUTOBRAKES_ARMED_MODE + - Number + - Indicates actual armed mode of autobrake system + - | State | Number | + |--------|--------| + | DISARM | 0 | + | BTV | 1 | + | LOW | 2 | + | L2 | 3 | + | L3 | 4 | + | HIGH | 5 | + | RTO | 6 | + +- A32NX_AUTOBRAKES_DISARM_KNOB_REQ + - Boolean + - True when autobrake knob solenoid resets knob position to DISARM + +- A32NX_OVHD_AUTOBRK_RTO_ARM_IS_PRESSED + - Boolean + - RTO autobrake button is pressed diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/Climb.flt b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/Climb.flt index aee140fe9e9..c96ba809598 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/Climb.flt +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/Climb.flt @@ -298,6 +298,7 @@ XMLVAR_KNOB_OVHD_CABINPRESS_LDGELEV=10.5 XMLVAR_RMP_L_On=1 XMLVAR_RMP_R_On=1 XMLVAR_SWITCH_OVHD_CABINPRESS_MANVSCTL=37.5 +A32NX_AUTOBRAKES_ARMED_MODE=0 [Gauges.0] KollsmanSetting=29.921342849731445313 diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/cameras.cfg b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/cameras.cfg index b9cd2a060a5..d2939f6e1ba 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/cameras.cfg +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/cameras.cfg @@ -8,6 +8,10 @@ minor =0 [VIEWS] eyepoint = 44.2, -1.72, 4.15 ; (feet) longitudinal, lateral, vertical distance from reference datum +[CAMERA_RAY_NODE_COLLISION] +; EFB auto-unfocus +node.1 = ModelDefinition:Interior#Name:SCREEN_EFB + ;===================== CAMERADEFINITION ===================== [CAMERADEFINITION.0] diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_COCKPIT.xml b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_COCKPIT.xml index 463911a17ff..771c704ab81 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_COCKPIT.xml +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_COCKPIT.xml @@ -110,10 +110,45 @@ (L:A380X_EFIS_L_LS_BUTTON_IS_ON) (>L:BTN_LS_1_FILTER_ACTIVE) (L:A380X_EFIS_R_LS_BUTTON_IS_ON) (>L:BTN_LS_2_FILTER_ACTIVE) - (L:A380X_EFIS_L_ACTIVE_FILTER) (>L:A32NX_EFIS_L_OPTION) - (L:A380X_EFIS_R_ACTIVE_FILTER) (>L:A32NX_EFIS_R_OPTION) + (L:A380X_EFIS_L_ACTIVE_FILTER) 0 == if{ + 3 (>L:A32NX_EFIS_L_OPTION) + } + + (L:A380X_EFIS_L_ACTIVE_FILTER) 1 == if{ + 2 (>L:A32NX_EFIS_L_OPTION) + } + + (L:A380X_EFIS_L_ACTIVE_FILTER) 2 == if{ + 4 (>L:A32NX_EFIS_L_OPTION) + } + + (L:A380X_EFIS_L_ARPT_BUTTON_IS_ON) 1 == if{ + 5 (>L:A32NX_EFIS_L_OPTION) + } - (L:A32NX_AUTOBRAKES_ARMED_MODE) (>L:A380X_KNOB_SWITCHING_BRK_Position) + (L:A380X_EFIS_L_CSTR_BUTTON_IS_ON) 1 == if{ + 1 (>L:A32NX_EFIS_L_OPTION) + } + + (L:A380X_EFIS_R_ACTIVE_FILTER) 0 == if{ + 3 (>L:A32NX_EFIS_R_OPTION) + } + + (L:A380X_EFIS_R_ACTIVE_FILTER) 1 == if{ + 2 (>L:A32NX_EFIS_R_OPTION) + } + + (L:A380X_EFIS_R_ACTIVE_FILTER) 2 == if{ + 4 (>L:A32NX_EFIS_R_OPTION) + } + + (L:A380X_EFIS_R_ARPT_BUTTON_IS_ON) 1 == if{ + 5 (>L:A32NX_EFIS_R_OPTION) + } + + (L:A380X_EFIS_R_CSTR_BUTTON_IS_ON) 1 == if{ + 1 (>L:A32NX_EFIS_R_OPTION) + } (O:PrevPot7Value) s0 (A:LIGHT POTENTIOMETER:7, Percent over 100) s1 @@ -2094,18 +2129,6 @@ - - PUSH_BKRFAN_IMPORTED - BRKFAN - L:A32NX_BRAKE_FAN_BTN_PRESSED - False - (L:A32NX_BRAKES_HOT, Bool) - (L:A32NX_BRAKE_FAN, Bool) - (L:A32NX_ELEC_AC_2_BUS_IS_POWERED, Bool) - %((L:A32NX_BRAKE_FAN_BTN_PRESSED, Bool))%{if}Turn OFF brake - fan%{else}Turn ON brake fan%{end} - - lever_landing_gear LEVER_LANDINGGEAR @@ -2136,57 +2159,6 @@ False (L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED, Bool) - - DECAL_LANDING_INDICATOR - - - PUSH_AUTOBKR_LO - 1 (>L:A32NX_OVHD_AUTOBRK_LOW_ON_IS_PRESSED) - 0 (>L:A32NX_OVHD_AUTOBRK_LOW_ON_IS_PRESSED) - mpb1on - mpb1off - (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) - (L:A32NX_AUTOBRAKES_DECEL_LIGHT, Bool) (L:A32NX_AUTOBRAKES_ARMED_MODE, - Number) 1 == and - (L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 1 == - - False - False - False - Auto brake LOW - - - PUSH_AUTOBKR_MED - 1 (>L:A32NX_OVHD_AUTOBRK_MED_ON_IS_PRESSED) - 0 (>L:A32NX_OVHD_AUTOBRK_MED_ON_IS_PRESSED) - mpb1on - mpb1off - (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) - (L:A32NX_AUTOBRAKES_DECEL_LIGHT, Bool) (L:A32NX_AUTOBRAKES_ARMED_MODE, - Number) 2 == and - (L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 2 == - - False - False - False - Auto brake MEDIUM - - - PUSH_AUTOBKR_MAX - 1 (>L:A32NX_OVHD_AUTOBRK_MAX_ON_IS_PRESSED) - 0 (>L:A32NX_OVHD_AUTOBRK_MAX_ON_IS_PRESSED) - mpb1on - mpb1off - (L:A32NX_ELEC_AC_1_BUS_IS_POWERED, Bool) - (L:A32NX_AUTOBRAKES_DECEL_LIGHT, Bool) (L:A32NX_AUTOBRAKES_ARMED_MODE, - Number) 3 == and - (L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 3 == - - False - False - False - Auto brake MAX - SWITCH_AUTOBKR_ASKID Antiskid_Switch @@ -2966,7 +2938,7 @@ lswitch - + SWITCH_OVHD_EXTLT_LANDL SWITCH_OVHD_EXTLT_LANDL @@ -2979,41 +2951,6 @@ Retractable - - - - 7.7 - 2 - 18 - 2 - - - - - SWITCH_OVHD_EXTLT_LANDR - SWITCH_OVHD_EXTLT_LANDR - LANDING_Light_R - 3 - 2 - TT:COCKPIT.TOOLTIPS.LANDING_LIGHT_R_OFF - TT:COCKPIT.TOOLTIPS.LANDING_LIGHT_R_ON - TT:COCKPIT.TOOLTIPS.LANDING_LIGHT_R_RETRACT - Retractable - - - - - - 7.3 - 3 - 19 - 3 - - SWITCH_OVHD_EXTLT_WING @@ -3053,7 +2990,10 @@ (>K:2:ELECTRICAL_BUS_TO_CIRCUIT_CONNECTION_TOGGLE) } - + + + SWITCH + ASOBO_LIGHTING_Switch_Light_Landing_Template SWITCH_OVHD_EXTLT_NOSE LIGHTING_Switch_Light_Double SWITCH_OVHD_EXTLT_NOSE @@ -3065,7 +3005,8 @@ TT:COCKPIT.TOOLTIPS.NOSE_LIGHT_SET_TAXI TT:COCKPIT.TOOLTIPS.NOSE_LIGHT_SET_OFF TwoSimvars - + + (L:LIGHTING_LANDING_1, Number) 0 == if{ ! } 1 r (>K:2:TAXI_LIGHTS_SET) lswitch @@ -6722,7 +6663,7 @@ - (L:XMLVar_HOSE0815:VISIBILITY , bool) 0 == + (L:XMLVar_HOSE0815:VISIBILITY , bool) 1 == @@ -6734,6 +6675,20 @@ + + + (L:XMLVar_HOSE0816:VISIBILITY , bool) 0 == + + + + + + (M:Event) 'LeftSingle' scmp 0 == if{ (L:XMLVar_HOSE0816:VISIBILITY , bool) ! (>L:XMLVar_HOSE0816:VISIBILITY , bool) } + LeftSingle + Hand + + + diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_EXTERIOR.xml b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_EXTERIOR.xml index 09660364f79..02a3a218d38 100755 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_EXTERIOR.xml +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/A380_EXTERIOR.xml @@ -14,6 +14,7 @@ + @@ -116,7 +117,7 @@ - + b_tire_key LANDINGGEAR_Back_Wheel1_Still_Right LANDINGGEAR_Back_Wheel2_Still_Right @@ -409,6 +410,36 @@ Both + + + + + + ANIM_DOOR_M1L + 20 + (L:ANIM_DOOR_M1L) 100 * + + + + + + + + ANIM_DOOR_M2L + 20 + (L:ANIM_DOOR_M2L) 100 * + + + + + + + + ANIM_DOOR_M3L + 20 + (L:ANIM_DOOR_M3L) 100 * + + @@ -418,10 +449,66 @@ 20 (L:ANIM_DOOR_M4L) 100 * - - 9 - door_rear - + + + + + + + ANIM_DOOR_M5L + 20 + (L:ANIM_DOOR_M5L) 100 * + + + + + + + + ANIM_DOOR_M1R + 20 + (L:ANIM_DOOR_M1R) 100 * + + + + + + + + ANIM_DOOR_M2R + 20 + (L:ANIM_DOOR_M2R) 100 * + + + + + + + + ANIM_DOOR_M3R + 20 + (L:ANIM_DOOR_M3R) 100 * + + + + + + + + ANIM_DOOR_M4R + 20 + (L:ANIM_DOOR_M4R) 100 * + + + + + + + + ANIM_DOOR_M5R + 20 + (L:ANIM_DOOR_M5R) 100 * + @@ -657,39 +744,27 @@ - + 1 - N1_1_anim N1_1_anim - PROP_STILL_LEFT - - + 2 - N1_2_anim N1_2_anim - PROP_STILL_LEFT - - + 3 - N1_3_anim N1_3_anim - PROP_STILL_LEFT - - + 4 - N1_4_anim N1_4_anim - PROP_STILL_LEFT - diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/engines.xml b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/engines.xml new file mode 100644 index 00000000000..3d18135d349 --- /dev/null +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/engines.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/interactive-parts.xml b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/interactive-parts.xml index 031328e28a0..543948b6b5b 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/interactive-parts.xml +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/interactive-parts.xml @@ -557,14 +557,11 @@ - (L:FO_SLIDING_WINDOW) ! (>L:FO_SLIDING_WINDOW) - Open or Close FO Sliding Window @@ -580,14 +577,11 @@ - (L:CPT_SLIDING_WINDOW) ! (>L:CPT_SLIDING_WINDOW) - Open or Close CPT Sliding Window @@ -744,7 +738,7 @@ Open or Close Landing Gear Pins Compartment - + diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/legacy/generated/A32NX_Interior_FCU.xml b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/legacy/generated/A32NX_Interior_FCU.xml index 1d6153eb57e..c3fd7624ebe 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/legacy/generated/A32NX_Interior_FCU.xml +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/legacy/generated/A32NX_Interior_FCU.xml @@ -218,9 +218,9 @@ AUTOPILOT_Knob_Heading AUTOPILOT_Knob_Heading#SUFFIX_ID# - %((L:A32NX_TRK_FPA_MODE_ACTIVE, bool))%{if}TT:COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_TRK_TUNING_LEFT%{else}TT:COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_LEFT%{end} + %((L:A32NX_TRK_FPA_MODE_ACTIVE, bool))%{if}TT:COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_TRK_TUNING_LEFT%{else}TT:A380X.COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_LEFT%{end} TurnLeft - %((L:A32NX_TRK_FPA_MODE_ACTIVE, bool))%{if}TT:COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_TRK_TUNING_RIGHT%{else}TT:COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_RIGHT%{end} + %((L:A32NX_TRK_FPA_MODE_ACTIVE, bool))%{if}TT:COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_TRK_TUNING_RIGHT%{else}TT:A380X.COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_RIGHT%{end} TurnRight Hand autopilot_knob_push_button_on diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/mip.xml b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/mip.xml index 762662f2070..cf59a34453a 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/mip.xml +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/model/behaviour/mip.xml @@ -25,14 +25,29 @@ #NODE_ID# turnknob - 4 + 6 Horizontal Curved L - A380X_#NODE_ID#_Position + A32NX_AUTOBRAKES_SELECTED_MODE 0 0 1 + 1000 + TT:A380X.TOOLTIPS.AUTOBRAKE_TOOLTIP + 0 + .2 + .4 + .6 + .8 + 1 + TT:A380X.TOOLTIPS.AUTOBRAKE_DISARM + TT:A380X.TOOLTIPS.AUTOBRAKE_BTV + TT:A380X.TOOLTIPS.AUTOBRAKE_LO + TT:A380X.TOOLTIPS.AUTOBRAKE_2 + TT:A380X.TOOLTIPS.AUTOBRAKE_3 + TT:A380X.TOOLTIPS.AUTOBRAKE_HI + (L:A32NX_AUTOBRAKES_DISARM_KNOB_REQ) 1 == @@ -89,27 +104,19 @@ PUSH_RTO_ARM - ARM RTO + TT:A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_RTO - (L:A32NX_AUTOBRAKES_ARMED_MODE, Number) 3 == - 1 (>L:A32NX_OVHD_AUTOBRK_MAX_ON_IS_PRESSED) - 0 (>L:A32NX_OVHD_AUTOBRK_MAX_ON_IS_PRESSED) + (L:A32NX_AUTOBRAKES_RTO_ARMED) + 1 (>L:A32NX_OVHD_AUTOBRK_RTO_ARM_IS_PRESSED) + 0 (>L:A32NX_OVHD_AUTOBRK_RTO_ARM_IS_PRESSED) KNOB_SWITCHING_BRK KNOB_SWITCHING_BRK - AUTO BRK SELECTOR - Set auto brake to DISARM - Set auto brake to LO - Set auto brake to 3 - Set auto brake to HI - (>K:A32NX.AUTOBRAKE_SET_DISARM) - (>K:A32NX.AUTOBRAKE_SET_LO) - (>K:A32NX.AUTOBRAKE_SET_MED) - (>K:A32NX.AUTOBRAKE_SET_MAX) + (>L:A32NX_AUTOBRAKES_DISARM_KNOB_REQ) 1 == diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/runway.FLT b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/runway.FLT index da7203e2561..1ec18cffcb7 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/runway.FLT +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/runway.FLT @@ -247,7 +247,6 @@ A32NX_APU_AUTOEXITING_RESET = 0 A32NX_APU_AUTOEXITING_TEST_OK = 0 A32NX_APU_AUTOEXITING_TEST_ON = 0 A32NX_ATT_HDG_SWITCHING_KNOB=1 -A32NX_AUTOBRAKES_ARMED_MODE=3 A32NX_AVIONICS_COMPLT_ON = 0 A32NX_AVIONICS_STARTUP_SOUNDS_INHIBIT=1 A32NX_BARO_BRIGHTNESS=0.75 @@ -438,6 +437,7 @@ XMLVAR_SWITCH_OVHD_CABINPRESS_MANVSCTL=37.5 XMLVAR_SWITCH_OVHD_INTLT_EMEREXIT_Position=1 XMLVAR_SWITCH_OVHD_INTLT_NOSMOKING_Position=1 XMLVAR_SWITCH_OVHD_INTLT_SEATBELT_Position=1 +A32NX_AUTOBRAKES_ARMED_MODE=6 [Gauges.0] KollsmanSetting=29.921342849731445313 diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/systems.cfg b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/systems.cfg index 9816610ba84..03ad0ad97eb 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/systems.cfg +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/systems.cfg @@ -63,195 +63,212 @@ minor = 0 ; - To unpower AC ESS, push ESS FEED button to ALTN, BUS TIE to OFF and GEN 2 to OFF. This will also unpower AC BUS 2. ; - To unpower DC 1, DC 2, DC BAT, go to failures in the EFB and fail all TRs. -lightdef.0=Type:3#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-5.000000#EffectFile:LIGHT_A32NX_NavigationRed#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_NavigationRed#Node:LIGHT_ASOBO_NavigationRed -lightdef.1=Type:3#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,5.000000#EffectFile:LIGHT_A32NX_NavigationGreen#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_NavigationGreen#Node:LIGHT_ASOBO_NavigationGreen -lightdef.2=Type:3#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,180.000000#EffectFile:LIGHT_A32NX_NavigationWhite#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_NavigationTailRight#Node:LIGHT_ASOBO_NavigationTail -lightdef.4=Type:1#Index:1#LocalPosition:-11.500000,0.000000,12.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A32NX_BeaconTop_Wing#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop -lightdef.5=Type:1#Index:1#LocalPosition:-11.500000,0.000000,12.000000#LocalRotation:0.000000,0.000000,135.000000#EffectFile:LIGHT_A32NX_BeaconTop_Wing#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop -lightdef.6=Type:1#Index:1#LocalPosition:-11.500000,0.000000,11.750000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconTop#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop -lightdef.7=Type:1#Index:1#LocalPosition:-11.500000,0.000000,60.000000#LocalRotation:-90.000000,1.000000,2.000000#EffectFile:LIGHT_A32NX_BeaconTopWide#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop -lightdef.8=Type:1#Index:1#LocalPosition:-25.000000,0.000000,12.000000#LocalRotation:-12.000000,180.000000,180.000000#EffectFile:LIGHT_A32NX_BeaconTop_Rear#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop -lightdef.9=Type:1#Index:2#LocalPosition:-3.400000,0.000000,-3.100000#LocalRotation:30.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly -lightdef.41=Type:1#Index:2#LocalPosition:-3.400000,0.000000,-3.100000#LocalRotation:-30.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly -lightdef.42=Type:1#Index:2#LocalPosition:-3.400000,0.000000,-3.100000#LocalRotation:-30.000000,90.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly -lightdef.43=Type:1#Index:2#LocalPosition:-3.400000,0.000000,-3.100000#LocalRotation:-30.000000,-90.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly -lightdef.10=Type:1#Index:2#LocalPosition:-3.400000,0.000000,-7.000000#LocalRotation:90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconBelly_Ambient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly -lightdef.11=Type:1#Index:2#LocalPosition:4.500000,-13.000000,-2.500000#LocalRotation:90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconBelly_Engine#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly -lightdef.12=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,60.000000#EffectFile:LIGHT_A32NX_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingLeftOuter#Node:LIGHT_ASOBO_StrobeWingLeftOuter -lightdef.13=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,70.000000#EffectFile:LIGHT_A32NX_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingLeftOuter#Node:LIGHT_ASOBO_StrobeWingLeftOuter -lightdef.14=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,70.000000#EffectFile:LIGHT_A32NX_StrobeFX#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingLeftOuter#Node:LIGHT_ASOBO_StrobeWingLeftOuter -lightdef.15=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-60.000000#EffectFile:LIGHT_A32NX_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingRightOuter#Node:LIGHT_ASOBO_StrobeWingRightOuter -lightdef.16=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-70.000000#EffectFile:LIGHT_A32NX_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingRightOuter#Node:LIGHT_ASOBO_StrobeWingRightOuter -lightdef.17=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-70.000000#EffectFile:LIGHT_A32NX_StrobeFX#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingRightOuter#Node:LIGHT_ASOBO_StrobeWingRightOuter -lightdef.18=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,180.000000#EffectFile:LIGHT_A32NX_StrobeTail#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeTail#Node:LIGHT_ASOBO_StrobeTail_LH -lightdef.19=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,180.000000#EffectFile:LIGHT_A32NX_StrobeTail#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeTail#Node:LIGHT_ASOBO_StrobeTail_RH -lightdef.20=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-60.00000,0.000000,-90.000000#EffectFile:LIGHT_A32NX_LogoLight#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LogoLeft -lightdef.21=Type:9#Index:1#LocalPosition:-70.599998,-12.300000,8.900000#LocalRotation:-60.000000,0.000000,-70.000000#EffectFile:LIGHT_A32NX_LogoLightVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LogoLeft -lightdef.23=Type:9#Index:1#LocalPosition:-70.849998,-12.300000,8.650000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_LogoLightAmbient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LogoLeft -lightdef.24=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-60.00000,0.000000,90.000000#EffectFile:LIGHT_A32NX_LogoLight#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LogoRight -lightdef.25=Type:9#Index:2#LocalPosition:-70.599998,12.300000,8.900000#LocalRotation:-60.000000,0.000000,70.000000#EffectFile:LIGHT_A32NX_LogoLightVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LogoRight -lightdef.26=Type:9#Index:2#LocalPosition:-70.849998,12.300000,8.650000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_LogoLightAmbient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LogoRight -lightdef.27=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:5.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TaxiLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_Taxi -lightdef.28=Type:6#Index:1#LocalPosition:27.400000,0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TaxiAmbient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_Taxi -lightdef.29=Type:6#Index:1#LocalPosition:27.400000,0.570000,-2.350000#LocalRotation:45.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TaxiTOAmbientGnd#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_Taxi -lightdef.30=Type:6#Index:1#LocalPosition:27.400000,0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_Taxi -lightdef.31=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TakeOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TakeOff -lightdef.32=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TakeOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TakeOff -lightdef.33=Type:5#Index:1#LocalPosition:27.400000,-0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TaxiTOAmbientGnd#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TakeOff_Ambient -lightdef.34=Type:5#Index:1#LocalPosition:27.400000,-0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TakeOff -lightdef.35=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,40.000000#EffectFile:LIGHT_A32NX_RunwayTurnOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffLeft#Node:LIGHT_ASOBO_RunwayTurnOffLeft -lightdef.36=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,40.000000#EffectFile:LIGHT_A32NX_RunwayTurnOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffLeft#Node:LIGHT_ASOBO_RunwayTurnOffLeft -lightdef.37=Type:6#Index:2#LocalPosition:27.400000,-0.600000,-4.400000#LocalRotation:0.000000,0.000000,40.000000#EffectFile:LIGHT_A32NX_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_RunwayTurnOffLeft -lightdef.38=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A32NX_RunwayTurnOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffRight#Node:LIGHT_ASOBO_RunwayTurnOffRight -lightdef.39=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A32NX_RunwayTurnOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffRight#Node:LIGHT_ASOBO_RunwayTurnOffRight -lightdef.40=Type:6#Index:3#LocalPosition:27.400000,0.600000,-4.400000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A32NX_RunwayTurnOffAmbient#PotentiometerIndex:1#Node:LIGHT_ASOBO_RunwayTurnOffRight -lightdef.48=Type:6#Index:3#LocalPosition:27.400000,0.600000,-4.400000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A32NX_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_RunwayTurnOffRight -lightdef.49=Type:6#Index:3#LocalPosition:27.400000,0.000000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_RunwayTurnOffAmbientGnd#PotentiometerIndex:1#Node:nlg_lower_fwd_link -lightdef.50=Type:5#Index:2#LocalPosition:-10.000000,-7.600000,-0.840000#LocalRotation:2.000000,0.000000,5.000000#EffectFile:LIGHT_A32NX_LandingLarge#PotentiometerIndex:50#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LandingLeft -lightdef.51=Type:5#Index:2#LocalPosition:-10.000000,-7.600000,-0.700000#LocalRotation:2.000000,0.000000,5.000000#EffectFile:LIGHT_A32NX_LandingLargeVol#PotentiometerIndex:50#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LandingLeft -lightdef.52=Type:5#Index:2#LocalPosition:-12.000000,-7.600000,-2.000000#LocalRotation:-6.000000,0.000000,18.000000#EffectFile:LIGHT_A32NX_LandingAmbientLarge#PotentiometerIndex:50#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LandingLeft -lightdef.53=Type:5#Index:2#LocalPosition:-12.000000,-7.600000,-2.000000#LocalRotation:6.000000,0.000000,40.000000#EffectFile:LIGHT_A32NX_LandingAmbientMedium#PotentiometerIndex:50#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LandingLeft -lightdef.54=Type:5#Index:2#LocalPosition:0.500000,-7.600000,-8.000000#LocalRotation:-25.000000,0.000000,90.000000#EffectFile:LIGHT_A32NX_LandingAmbientSmall#PotentiometerIndex:0#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LandingLeft -lightdef.55=Type:5#Index:2#LocalPosition:4.500000,-7.600000,-8.000000#LocalRotation:-25.000000,0.000000,90.000000#EffectFile:LIGHT_A32NX_LandingAmbientSmall#PotentiometerIndex:50#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LandingLeft -lightdef.56=Type:5#Index:2#LocalPosition:-10.000000,-7.700000,-0.700000#LocalRotation:60.000000,30.000000,0.000000#EffectFile:LIGHT_A32NX_LandingAmbientGnd#PotentiometerIndex:50#Node:LIGHT_ASOBO_LandingLeft -lightdef.57=Type:5#Index:3#LocalPosition:-10.000000,7.600000,-0.840000#LocalRotation:2.000000,0.000000,-5.000000#EffectFile:LIGHT_A32NX_LandingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LandingRight -lightdef.58=Type:5#Index:3#LocalPosition:-10.000000,7.600000,-0.700000#LocalRotation:2.000000,0.000000,-5.000000#EffectFile:LIGHT_A32NX_LandingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LandingRight -lightdef.59=Type:5#Index:3#LocalPosition:-12.000000,7.600000,-2.000000#LocalRotation:-6.000000,0.000000,-18.000000#EffectFile:LIGHT_A32NX_LandingAmbientLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LandingRight -lightdef.60=Type:5#Index:3#LocalPosition:-12.000000,7.600000,-2.000000#LocalRotation:6.000000,0.000000,-40.000000#EffectFile:LIGHT_A32NX_LandingAmbientMedium#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Landingright#Node:LIGHT_ASOBO_LandingRight -lightdef.61=Type:5#Index:3#LocalPosition:0.500000,7.600000,-8.000000#LocalRotation:-25.000000,0.000000,-90.000000#EffectFile:LIGHT_A32NX_LandingAmbientSmall#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LandingRight -lightdef.62=Type:5#Index:3#LocalPosition:4.500000,7.600000,-8.000000#LocalRotation:-25.000000,0.000000,-90.000000#EffectFile:LIGHT_A32NX_LandingAmbientSmall#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LandingRight -lightdef.63=Type:5#Index:3#LocalPosition:-10.000000,7.700000,-0.700000#LocalRotation:60.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_LandingAmbientGnd#PotentiometerIndex:1#Node:LIGHT_ASOBO_LandingRight -lightdef.64=Type:8#Index:1#LocalPosition:15.570000,-6.500000,4.580000#LocalRotation:2.000000,0.000000,145.000000#EffectFile:LIGHT_A32NX_WingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingLeft#Node:LIGHT_ASOBO_WingLeft -lightdef.65=Type:8#Index:1#LocalPosition:15.570000,-6.500000,4.580000#LocalRotation:-5.000000,0.000000,180.000000#EffectFile:LIGHT_A32NX_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingLeft#Node:LIGHT_ASOBO_WingLeft -lightdef.66=Type:8#Index:2#LocalPosition:15.570000,6.500000,4.580000#LocalRotation:2.000000,0.000000,180.000000#EffectFile:LIGHT_A32NX_WingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingRight#Node:LIGHT_ASOBO_WingRight -lightdef.67=Type:8#Index:2#LocalPosition:15.570000,6.500000,4.580000#LocalRotation:-5.000000,5.000000,-180.000000#EffectFile:LIGHT_A32NX_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingRight#Node:LIGHT_ASOBO_WingRight -lightdef.68=Type:4#Index:8#LocalPosition:36.000000,0.000000,6.600000#LocalRotation:-75.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveAmbientL#PotentiometerIndex:86 -lightdef.69=Type:4#Index:8#LocalPosition:36.000000,-2.000000,8.300000#LocalRotation:0.000000,0.000000,-90.000000#EffectFile:LIGHT_A32NX_EmissiveAccent#PotentiometerIndex:86 -lightdef.70=Type:4#Index:8#LocalPosition:36.900002,2.000000,8.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A32NX_EmissiveAccent#PotentiometerIndex:86 -lightdef.71=Type:4#Index:8#LocalPosition:37.200001,-0.420000,7.810000#LocalRotation:112.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:86 -lightdef.72=Type:4#Index:8#LocalPosition:37.200001,0.375000,7.810000#LocalRotation:112.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:86 -lightdef.73=Type:4#Index:8#LocalPosition:36.500000,-1.050000,8.060000#LocalRotation:112.000000,0.000000,7.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:86 -lightdef.74=Type:4#Index:8#LocalPosition:34.000000,0.000000,7.700000#LocalRotation:-70.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveAmbientL#PotentiometerIndex:86 -lightdef.75=Type:4#Index:8#LocalPosition:33.000000,0.000000,9.700000#LocalRotation:45.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveAccent#PotentiometerIndex:86 -lightdef.76=Type:12#Index:5#LocalPosition:38.513000,-0.650000,6.245000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:84 -lightdef.77=Type:12#Index:5#LocalPosition:38.513000,-0.900000,6.245000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:84 -lightdef.78=Type:12#Index:5#LocalPosition:38.513000,0.650000,6.245000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:84 -lightdef.79=Type:12#Index:5#LocalPosition:38.513000,0.900000,6.245000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:84 -lightdef.80=Type:12#Index:5#LocalPosition:38.500000,-0.420000,6.187000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:84 -lightdef.81=Type:12#Index:5#LocalPosition:38.505001,0.000000,6.193000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:84 -lightdef.82=Type:12#Index:5#LocalPosition:38.500000,0.420000,6.180000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:84 -lightdef.83=Type:12#Index:5#LocalPosition:38.509998,-0.250000,6.230000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:84 -lightdef.84=Type:12#Index:5#LocalPosition:38.000000,-0.670000,6.150000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveAmbientS#PotentiometerIndex:84 -lightdef.85=Type:12#Index:5#LocalPosition:38.000000,-0.210000,6.150000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveAmbientS#PotentiometerIndex:84 -lightdef.86=Type:12#Index:5#LocalPosition:38.509998,0.260000,6.230000#LocalRotation:-167.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:84 -lightdef.87=Type:12#Index:5#LocalPosition:37.985001,0.340000,6.150000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveAmbientS#PotentiometerIndex:84 -lightdef.88=Type:12#Index:5#LocalPosition:38.000000,0.670000,6.150000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveAmbientS#PotentiometerIndex:84 -lightdef.89=Type:4#Index:7#LocalPosition:39.032001,-2.675000,5.570000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.90=Type:4#Index:7#LocalPosition:39.032001,-2.550000,5.570000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.91=Type:4#Index:7#LocalPosition:39.032001,-2.410000,5.570000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.92=Type:4#Index:7#LocalPosition:38.990002,-2.550000,5.440000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:85 -lightdef.93=Type:4#Index:7#LocalPosition:39.032001,2.675000,5.570000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.94=Type:4#Index:7#LocalPosition:39.032001,2.550000,5.570000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.95=Type:4#Index:7#LocalPosition:39.032001,2.410000,5.570000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.96=Type:4#Index:7#LocalPosition:38.990002,2.550000,5.440000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:85 -lightdef.97=Type:4#Index:7#LocalPosition:38.900002,-0.610000,5.140000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:85 -lightdef.98=Type:4#Index:7#LocalPosition:38.984001,0.600000,5.450000#LocalRotation:-163.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.99=Type:4#Index:9#LocalPosition:38.500000,0.000000,4.360000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.100=Type:4#Index:9#LocalPosition:38.500000,-0.300000,4.360000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.101=Type:4#Index:9#LocalPosition:38.500000,0.300000,4.360000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.102=Type:4#Index:9#LocalPosition:38.400002,-0.300000,4.354000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.103=Type:4#Index:9#LocalPosition:38.259998,-0.350000,4.326000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.104=Type:4#Index:9#LocalPosition:38.070000,-0.300000,4.284000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:85 -lightdef.105=Type:4#Index:9#LocalPosition:37.777000,-0.672000,4.216000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.106=Type:4#Index:9#LocalPosition:37.514999,-0.672000,4.159000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.107=Type:4#Index:9#LocalPosition:37.514999,-0.500000,4.159000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.108=Type:4#Index:9#LocalPosition:37.430000,-0.420000,4.150000#LocalRotation:-104.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.109=Type:4#Index:9#LocalPosition:37.299999,-0.730000,4.110000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.110=Type:4#Index:9#LocalPosition:37.000000,-0.730000,4.028000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.111=Type:4#Index:9#LocalPosition:37.180000,-0.500000,4.066000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.112=Type:4#Index:9#LocalPosition:36.930000,-0.730000,4.012000#LocalRotation:-100.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.113=Type:4#Index:9#LocalPosition:36.930000,-0.880000,4.012000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.114=Type:4#Index:9#LocalPosition:37.020000,-0.480000,4.012000#LocalRotation:-98.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:85 -lightdef.115=Type:4#Index:9#LocalPosition:36.560001,-0.520000,3.977000#LocalRotation:-90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.116=Type:4#Index:9#LocalPosition:36.400002,-0.460000,3.977000#LocalRotation:-90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.117=Type:4#Index:9#LocalPosition:36.560001,0.000000,3.979000#LocalRotation:-90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.118=Type:4#Index:9#LocalPosition:36.560001,0.120000,3.979000#LocalRotation:-90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.119=Type:4#Index:9#LocalPosition:36.250000,-0.100000,3.979000#LocalRotation:-90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.120=Type:4#Index:9#LocalPosition:36.599998,0.460000,3.977000#LocalRotation:-90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveS#PotentiometerIndex:85 -lightdef.121=Type:4#Index:9#LocalPosition:37.029999,0.000000,4.037000#LocalRotation:-103.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.122=Type:4#Index:9#LocalPosition:37.029999,-0.090000,4.037000#LocalRotation:-103.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.123=Type:4#Index:9#LocalPosition:37.029999,0.090000,4.037000#LocalRotation:-103.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.124=Type:4#Index:9#LocalPosition:36.930000,0.250000,4.012000#LocalRotation:-100.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.125=Type:4#Index:9#LocalPosition:36.930000,0.640000,4.012000#LocalRotation:-100.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.126=Type:4#Index:9#LocalPosition:37.180000,0.500000,4.066000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.127=Type:4#Index:9#LocalPosition:37.514999,0.672000,4.159000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveHardM#PotentiometerIndex:85 -lightdef.128=Type:4#Index:9#LocalPosition:37.777000,0.672000,4.216000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.129=Type:4#Index:9#LocalPosition:37.514999,0.500000,4.159000#LocalRotation:-102.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.130=Type:4#Index:9#LocalPosition:37.430000,0.420000,4.150000#LocalRotation:-104.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_EmissiveM#PotentiometerIndex:85 -lightdef.131=Type:10#Index:1#LocalPosition:34.799999,-1.700000,8.700000#LocalRotation:70.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7 -lightdef.132=Type:10#Index:1#LocalPosition:34.799999,-1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7 -lightdef.133=Type:10#Index:2#LocalPosition:34.799999,1.700000,8.700000#LocalRotation:70.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7 -lightdef.134=Type:10#Index:2#LocalPosition:34.799999,1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7 -lightdef.135=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:-110.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_Pedestal#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL -lightdef.136=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_PedestalAmbient#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL - -lightdef.137=Type:12#Index:3#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:285.000000,0.000000,30.000000#EffectFile:LIGHT_A32NX_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH1F -lightdef.138=Type:12#Index:3#LocalPosition:38.970001,-0.600000,6.200000#LocalRotation:-25.000000,0.000000,20.000000#EffectFile:LIGHT_A32NX_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH2F -lightdef.139=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:-15.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH3F -lightdef.140=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:40.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodCenter#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_C1F -lightdef.141=Type:12#Index:4#LocalPosition:38.970001,2.600000,5.870000#LocalRotation:-15.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH3F -lightdef.142=Type:12#Index:4#LocalPosition:38.970001,2.600000,5.870000#LocalRotation:-25.000000,0.000000,20.000000#EffectFile:LIGHT_A32NX_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH2F -lightdef.143=Type:12#Index:4#LocalPosition:38.970001,2.600000,5.870000#LocalRotation:285.000000,0.000000,-30.000000#EffectFile:LIGHT_A32NX_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH1F - -lightdef.144=Type:12#Index:4#LocalPosition:38.799999,2.580000,5.780000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH1A -lightdef.145=Type:12#Index:3#LocalPosition:38.799999,-2.580000,5.780000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH2A -lightdef.146=Type:12#Index:4#LocalPosition:38.799999,2.580000,5.780000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH3A -lightdef.147=Type:12#Index:3#LocalPosition:38.750000,0.000000,5.800000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodAmbientCenter#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_C1H -lightdef.148=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH3A -lightdef.149=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH2A -lightdef.150=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH1A - -lightdef.151=Type:12#Index:1#LocalPosition:38.500000,-1.825000,5.980000#LocalRotation:104.000000,0.000000,90.000000#EffectFile:LIGHT_A32NX_ScreenOrange#PotentiometerIndex:10 -lightdef.152=Type:12#Index:2#LocalPosition:38.500000,1.760000,5.980000#LocalRotation:104.000000,0.000000,90.000000#EffectFile:LIGHT_A32NX_ScreenOrange#PotentiometerIndex:11 -lightdef.153=Type:4#Index:3#LocalPosition:37.000000,-4.000000,5.100000#LocalRotation:90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_Console#PotentiometerIndex:8 -lightdef.154=Type:4#Index:6#LocalPosition:37.000000,4.000000,5.100000#LocalRotation:90.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_Console#PotentiometerIndex:9 -lightdef.155=Type:4#Index:5#LocalPosition:35.000000,0.960000,9.000000#LocalRotation:110.000000,90.000000,0.000000#EffectFile:LIGHT_A32NX_CockpitSpotNarrow#PotentiometerIndex:97 -lightdef.156=Type:4#Index:5#LocalPosition:34.487999,-1.160000,9.040000#LocalRotation:110.000000,90.000000,0.000000#EffectFile:LIGHT_A32NX_CockpitSpotNarrow#PotentiometerIndex:96 -lightdef.157=Type:13#Index:0#LocalPosition:36.500000,0.000000,6.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_AmbientColdDark#PotentiometerIndex:1 -lightdef.158=Type:8#Index:1#LocalPosition:15.570000,-6.500000,4.580000#LocalRotation:5.000000,0.000000,140.000000#EffectFile:LIGHT_A32NX_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingLeft#Node:LIGHT_ASOBO_WingLeft2 -lightdef.159=Type:8#Index:2#LocalPosition:15.570000,6.500000,4.580000#LocalRotation:5.000000,0.000000,-140.000000#EffectFile:LIGHT_A32NX_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingRight#Node:LIGHT_ASOBO_WingRight2 -lightdef.160=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TakeOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TakeOff2 -lightdef.161=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TakeOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff2#Node:LIGHT_ASOBO_TakeOff2 -lightdef.163=Type:5#Index:1#LocalPosition:27.400000,-0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TaxiTOAmbientGnd#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff2#Node:LIGHT_ASOBO_TakeOff2 -lightdef.164=Type:5#Index:1#LocalPosition:27.400000,-0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff2#Node:LIGHT_ASOBO_TakeOff2 -lightdef.165=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TakeOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TakeOff3 -lightdef.166=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TakeOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TakeOff3 -lightdef.168=Type:5#Index:1#LocalPosition:27.400000,-0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_TaxiTOAmbientGnd#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TakeOff3 -lightdef.169=Type:5#Index:1#LocalPosition:27.400000,-0.570000,-2.350000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TakeOff3 - -lightdef.170=Type:1#Index:1#LocalPosition:-11.500000,0.000000,12.000000#LocalRotation:0.000000,0.000000,-135.000000#EffectFile:LIGHT_A32NX_BeaconTop_Wing#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop2 -lightdef.171=Type:1#Index:1#LocalPosition:-11.500000,0.000000,12.000000#LocalRotation:0.000000,0.000000,135.000000#EffectFile:LIGHT_A32NX_BeaconTop_Wing#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop2 -lightdef.172=Type:1#Index:1#LocalPosition:-11.500000,0.000000,11.750000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_BeaconTop#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop2 -lightdef.173=Type:1#Index:1#LocalPosition:-11.500000,0.000000,60.000000#LocalRotation:-90.000000,1.000000,2.000000#EffectFile:LIGHT_A32NX_BeaconTopWide#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop2 -lightdef.174=Type:1#Index:1#LocalPosition:-25.000000,0.000000,12.000000#LocalRotation:-12.000000,180.000000,180.000000#EffectFile:LIGHT_A32NX_BeaconTop_Rear#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop2 - -lightdef.175=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:10.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_Pedestal#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL_FWD -lightdef.176=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A32NX_PedestalAmbient#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL_FWD +; NAVIGATION LIGHTS +lightdef.10=Type:3#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-5.000000#EffectFile:LIGHT_A380X_NavigationRed#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_NavigationRed#Node:LIGHT_ASOBO_NavigationRed +lightdef.11=Type:3#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,5.0000000#EffectFile:LIGHT_A380X_NavigationGreen#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_NavigationGreen#Node:LIGHT_ASOBO_NavigationGreen +lightdef.12=Type:3#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,180.00000#EffectFile:LIGHT_A380X_NavigationWhite#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_NavigationTailRight#Node:LIGHT_ASOBO_NavigationTail +lightdef.13=Type:3#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,200.000000#EffectFile:LIGHT_A380X_NavigationWhite#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Obstruction_LH#Node:LIGHT_AMBIENT_OBSTRUCTION_LH +lightdef.14=Type:3#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,160.00000#EffectFile:LIGHT_A380X_NavigationWhite#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Obstruction_RH#Node:LIGHT_AMBIENT_OBSTRUCTION_RH +lightdef.13=Type:3#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.0000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Obstruction_LH#Node:LIGHT_ASOBO_OBSTRUCTION_LH +lightdef.14=Type:3#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.0000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Obstruction_RH#Node:LIGHT_ASOBO_OBSTRUCTION_RH + +; BEACON TOP +lightdef.20=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-20.00000,0.000000,0.0000000#EffectFile:LIGHT_A380X_BeaconTop_Front#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_AMBIENT_BeaconTop +lightdef.21=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,90.000000#EffectFile:LIGHT_A380X_BeaconTop_Left#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_AMBIENT_BeaconTop +lightdef.22=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,-90.00000#EffectFile:LIGHT_A380X_BeaconTop_Right#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_AMBIENT_BeaconTop +lightdef.23=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-20.00000,1.000000,180.00000#EffectFile:LIGHT_A380X_BeaconTop_Rear#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_AMBIENT_BeaconTop +lightdef.24=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,0.0000000#EffectFile:LIGHT_A380X_BeaconGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_ASOBO_BeaconTop +lightdef.25=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,100.00000#EffectFile:LIGHT_A380X_BeaconTop_Wing#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_AMBIENT_BeaconTop + +lightdef.26=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-20.00000,0.000000,0.0000000#EffectFile:LIGHT_A380X_BeaconTop_Front#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop2#Node:LIGHT_AMBIENT_BeaconTop2 +lightdef.27=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,90.000000#EffectFile:LIGHT_A380X_BeaconTop_Left#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop2#Node:LIGHT_AMBIENT_BeaconTop2 +lightdef.28=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,-90.00000#EffectFile:LIGHT_A380X_BeaconTop_Right#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop2#Node:LIGHT_AMBIENT_BeaconTop2 +lightdef.29=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-20.00000,1.000000,180.00000#EffectFile:LIGHT_A380X_BeaconTop_Rear#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop2#Node:LIGHT_AMBIENT_BeaconTop2 +lightdef.30=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,0.0000000#EffectFile:LIGHT_A380X_BeaconGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop2#Node:LIGHT_ASOBO_BeaconTop2 +lightdef.31=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,-100.0000#EffectFile:LIGHT_A380X_BeaconTop_Wing#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconTop#Node:LIGHT_AMBIENT_BeaconTop2 + +; BEACON BELLY +lightdef.32=Type:1#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:30.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly +lightdef.33=Type:1#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-30.00000,0.000000,0.000000#EffectFile:LIGHT_A380X_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly +lightdef.34=Type:1#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-15.00000,0.000000,90.00000#EffectFile:LIGHT_A380X_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly +lightdef.35=Type:1#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,90.00000#EffectFile:LIGHT_A380X_BeaconBelly#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly +lightdef.36=Type:1#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:90.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_BeaconBelly_Ambient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly +lightdef.37=Type:1#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:90.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_BeaconBelly_Engine#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly +lightdef.38=Type:1#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.0000000,0.000000,0.000000#EffectFile:LIGHT_A380X_BeaconGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_BeaconBelly#Node:LIGHT_ASOBO_BeaconBelly + +; STROBE LIGHTS +lightdef.40=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,60.000000#EffectFile:LIGHT_A380X_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingLeftOuter#Node:LIGHT_ASOBO_StrobeWingLeftOuter +lightdef.41=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,70.000000#EffectFile:LIGHT_A380X_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingLeftOuter#Node:LIGHT_ASOBO_StrobeWingLeftOuter +lightdef.42=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,70.000000#EffectFile:LIGHT_A380X_StrobeFX#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingLeftOuter#Node:LIGHT_ASOBO_StrobeWingLeftOuter + +lightdef.43=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-60.00000#EffectFile:LIGHT_A380X_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingRightOuter#Node:LIGHT_ASOBO_StrobeWingRightOuter +lightdef.44=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-70.00000#EffectFile:LIGHT_A380X_StrobeWing#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingRightOuter#Node:LIGHT_ASOBO_StrobeWingRightOuter +lightdef.45=Type:2#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-70.00000#EffectFile:LIGHT_A380X_StrobeFX#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeWingRightOuter#Node:LIGHT_ASOBO_StrobeWingRightOuter + +lightdef.46=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,180.00000#EffectFile:LIGHT_A380X_StrobeTail#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeTail#Node:LIGHT_ASOBO_StrobeTail_LH +lightdef.47=Type:2#Index:0#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,180.00000#EffectFile:LIGHT_A380X_StrobeTail#PotentiometerIndex:24#EmMesh:LIGHT_ASOBO_StrobeTail#Node:LIGHT_ASOBO_StrobeTail_RH + +; LOGO LIGHTS (NEW) +lightdef.50=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-60.00000,0.000000,-90.000000#EffectFile:LIGHT_A380X_LogoLight#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_AFT_LH +lightdef.51=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-60.000000,0.000000,-70.000000#EffectFile:LIGHT_A380X_LogoLightVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_AFT_LH +lightdef.52=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_LogoLightAmbient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_AFT_LH +lightdef.53=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_AFT_LH + +lightdef.54=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-60.00000,0.000000,90.000000#EffectFile:LIGHT_A380X_LogoLight#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_AFT_RH +lightdef.55=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-60.000000,0.000000,70.000000#EffectFile:LIGHT_A380X_LogoLightVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_AFT_RH +lightdef.56=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_LogoLightAmbient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_AFT_RH +lightdef.57=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_AFT_RH + +lightdef.60=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-80.00000,0.000000,-30.000000#EffectFile:LIGHT_A380X_LogoLight#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_FWD_LH +lightdef.61=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-55.000000,0.000000,-50.000000#EffectFile:LIGHT_A380X_LogoLightVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_FWD_LH +lightdef.62=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_LogoLightAmbient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_FWD_LH +lightdef.63=Type:9#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoLeft#Node:LIGHT_ASOBO_LOGO_FWD_LH + +lightdef.64=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-80.00000,0.000000,30.000000#EffectFile:LIGHT_A380X_LogoLight#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_FWD_RH +lightdef.65=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-55.000000,0.000000,50.000000#EffectFile:LIGHT_A380X_LogoLightVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_FWD_RH +lightdef.66=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_LogoLightAmbient#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_FWD_RH +lightdef.67=Type:9#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LogoRight#Node:LIGHT_ASOBO_LOGO_FWD_RH + +; TAXI LIGHTS (NEW) +lightdef.70=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:5.00000,0.000000,90.000000#EffectFile:LIGHT_A380X_TaxiLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_TAXI_WING_LH +lightdef.71=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-10.00000#EffectFile:LIGHT_A380X_TaxiAmbientLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_AMBIENT_TAXI_WING_LH +lightdef.73=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.0000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_TAXI_WING_LH + +lightdef.74=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:5.00000,0.000000,90.000000#EffectFile:LIGHT_A380X_TaxiLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_TAXI_WING_RH +lightdef.75=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-10.00000#EffectFile:LIGHT_A380X_TaxiAmbientLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_AMBIENT_TAXI_WING_RH +lightdef.77=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.0000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_Taxi#Node:LIGHT_ASOBO_TAXI_WING_RH + +; TAKE OFF LIGHTS (NEW) +lightdef.80=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-1.00000,0.000000,0.000000#EffectFile:LIGHT_A380X_Taxi_NLG#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TAKEOFF_1 +lightdef.81=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TaxiVol_NLG#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TAKEOFF_1 +lightdef.82=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TaxiTOAmbientGnd#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TAKEOFF_1 +lightdef.83=Type:6#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff#Node:LIGHT_ASOBO_TAKEOFF_1 + +lightdef.84=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TakeOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TAKEOFF_3 +lightdef.85=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TakeOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff2#Node:LIGHT_ASOBO_TAKEOFF_3 +lightdef.86=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TaxiTOAmbientGnd#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff2#Node:LIGHT_ASOBO_TAKEOFF_3 +lightdef.87=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff2#Node:LIGHT_ASOBO_TAKEOFF_3 + +lightdef.88=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TakeOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TAKEOFF_2 +lightdef.89=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TakeOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TAKEOFF_2 +lightdef.90=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_TaxiTOAmbientGnd#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TAKEOFF_2 +lightdef.91=Type:5#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_TakeOff3#Node:LIGHT_ASOBO_TAKEOFF_2 + +; RUNWAY TURN OFF LIGHTS (NEW) +lightdef.100=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,40.000000#EffectFile:LIGHT_A380X_RunwayTurnOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffLeft#Node:LIGHT_ASOBO_TURNOFF_LH +lightdef.101=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,40.000000#EffectFile:LIGHT_A380X_RunwayTurnOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffLeft#Node:LIGHT_ASOBO_TURNOFF_LH +lightdef.102=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-40.00000#EffectFile:LIGHT_A380X_RunwayTurnOffAmbient#PotentiometerIndex:1#Node:LIGHT_ASOBO_TURNOFF_LH +lightdef.103=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,40.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_TURNOFF_LH + +lightdef.104=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A380X_RunwayTurnOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffRight#Node:LIGHT_ASOBO_TURNOFF_RH +lightdef.105=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A380X_RunwayTurnOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffRight#Node:LIGHT_ASOBO_TURNOFF_RH +lightdef.106=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A380X_RunwayTurnOffAmbient#PotentiometerIndex:1#Node:LIGHT_ASOBO_TURNOFF_RH +lightdef.107=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-40.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_TURNOFF_RH + +lightdef.108=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,50.000000#EffectFile:LIGHT_A380X_RunwayTurnOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffLeft#Node:LIGHT_ASOBO_TAXI_CAM_FWD_LH +lightdef.109=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,50.000000#EffectFile:LIGHT_A380X_RunwayTurnOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffLeft#Node:LIGHT_ASOBO_TAXI_CAM_FWD_LH +lightdef.110=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,50.000000#EffectFile:LIGHT_A380X_RunwayTurnOffAmbient#PotentiometerIndex:1#Node:LIGHT_ASOBO_TAXI_CAM_FWD_LH +lightdef.111=Type:6#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,50.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_TAXI_CAM_FWD_LH + +lightdef.112=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,-50.000000#EffectFile:LIGHT_A380X_RunwayTurnOff#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffRight#Node:LIGHT_ASOBO_TAXI_CAM_FWD_RH +lightdef.113=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,-50.000000#EffectFile:LIGHT_A380X_RunwayTurnOffVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_RunwayTurnOffRight#Node:LIGHT_ASOBO_TAXI_CAM_FWD_RH +lightdef.114=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,-50.000000#EffectFile:LIGHT_A380X_RunwayTurnOffAmbient#PotentiometerIndex:1#Node:LIGHT_ASOBO_TAXI_CAM_FWD_RH +lightdef.115=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:15.000000,0.000000,-50.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_TAXI_CAM_FWD_RH + +lightdef.116=Type:6#Index:3#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_RunwayTurnOffAmbientGnd#PotentiometerIndex:1#Node:nlg_lower_fwd_link + +; LANDING LIGHTS (NEW) +lightdef.120=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LAND_1_LH +lightdef.121=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LAND_1_LH +lightdef.122=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-10.00000#EffectFile:LIGHT_A380X_LandingAmbientLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_AMBIENT_LAND_1_LH +lightdef.127=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_LAND_1_LH + +lightdef.128=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LAND_1_RH +lightdef.129=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LAND_1_RH +lightdef.130=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,10.000000#EffectFile:LIGHT_A380X_LandingAmbientLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_AMBIENT_LAND_1_RH +lightdef.135=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_LAND_1_RH + +lightdef.136=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LAND_2_LH +lightdef.137=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_ASOBO_LAND_2_LH +lightdef.138=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-10.00000#EffectFile:LIGHT_A380X_LandingAmbientLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingLeft#Node:LIGHT_AMBIENT_LAND_2_LH +lightdef.143=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_LAND_2_LH + +lightdef.144=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LAND_2_RH +lightdef.145=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_LandingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_ASOBO_LAND_2_RH +lightdef.146=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,10.000000#EffectFile:LIGHT_A380X_LandingAmbientLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_LandingRight#Node:LIGHT_AMBIENT_LAND_2_RH +lightdef.151=Type:5#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,90.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_LAND_2_RH + + +; WING LIGHTS (NEW) +lightdef.160=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-5.00000,0.000000,145.000000#EffectFile:LIGHT_A380X_WingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingLeft#Node:LIGHT_ASOBO_SCAN_WING_LH +lightdef.161=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:-5.00000,0.000000,145.000000#EffectFile:LIGHT_A380X_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingLeft#Node:LIGHT_ASOBO_SCAN_WING_LH +lightdef.162=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,145.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_WING_LH +lightdef.163=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,190.000000#EffectFile:LIGHT_A380X_LandingAmbientMedium#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_WING_LH + +lightdef.164=Type:8#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-145.000000#EffectFile:LIGHT_A380X_WingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingRight#Node:LIGHT_ASOBO_SCAN_WING_RH +lightdef.165=Type:8#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-145.000000#EffectFile:LIGHT_A380X_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingRight#Node:LIGHT_ASOBO_SCAN_WING_RH +lightdef.166=Type:8#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-145.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_WING_RH +lightdef.167=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-190.000000#EffectFile:LIGHT_A380X_LandingAmbientMedium#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_WING_RH + +lightdef.168=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,145.000000#EffectFile:LIGHT_A380X_WingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingLeft#Node:LIGHT_ASOBO_SCAN_ENG_LH +lightdef.169=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,145.000000#EffectFile:LIGHT_A380X_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingLeft#Node:LIGHT_ASOBO_SCAN_ENG_LH +lightdef.170=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,145.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_ENG_LH +lightdef.171=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,190.000000#EffectFile:LIGHT_A380X_LandingAmbientMedium#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_ENG_LH + +lightdef.172=Type:8#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-145.000000#EffectFile:LIGHT_A380X_WingLarge#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingRight#Node:LIGHT_ASOBO_SCAN_ENG_RH +lightdef.173=Type:8#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-145.000000#EffectFile:LIGHT_A380X_WingLargeVol#PotentiometerIndex:1#EmMesh:LIGHT_ASOBO_WingRight#Node:LIGHT_ASOBO_SCAN_ENG_RH +lightdef.174=Type:8#Index:2#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-145.000000#EffectFile:LIGHT_A380X_DaylightGlare#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_ENG_RH +lightdef.175=Type:8#Index:1#LocalPosition:0.000000,0.000000,0.000000#LocalRotation:0.000000,0.000000,-190.000000#EffectFile:LIGHT_A380X_LandingAmbientMedium#PotentiometerIndex:1#Node:LIGHT_ASOBO_SCAN_ENG_RH + + +; MIP LIGHTS +lightdef.180=Type:12#Index:3#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:275.000000,10.000000,25.000000#EffectFile:LIGHT_A380X_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH1F +lightdef.181=Type:12#Index:3#LocalPosition:38.970001,-0.600000,6.200000#LocalRotation:-30.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH2F +lightdef.182=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:-15.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH3F +lightdef.183=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:40.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodCenter#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_C1F +lightdef.184=Type:12#Index:4#LocalPosition:38.970001,2.600000,5.870000#LocalRotation:-15.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH3F +lightdef.185=Type:12#Index:3#LocalPosition:38.970001,-0.600000,6.200000#LocalRotation:-30.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH2F +lightdef.186=Type:12#Index:3#LocalPosition:38.970001,-0.600000,6.200000#LocalRotation:275.000000,10.000000,-42.000000#EffectFile:LIGHT_A380X_MainPanelFloodEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH1F +lightdef.187=Type:12#Index:4#LocalPosition:38.799999,2.580000,5.780000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH1A +lightdef.188=Type:12#Index:3#LocalPosition:38.799999,-2.580000,5.780000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH2A +lightdef.189=Type:12#Index:4#LocalPosition:38.799999,2.580000,5.780000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_LH3A +lightdef.190=Type:12#Index:3#LocalPosition:38.750000,0.000000,5.800000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodAmbientCenter#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_C1H +lightdef.191=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH3A +lightdef.192=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH2A +lightdef.193=Type:12#Index:4#LocalPosition:38.970001,0.700000,6.200000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_MainPanelFloodAmbientEnd#PotentiometerIndex:83#Node:MAIN_PNL_FLOOD_LT_RH1A + + +; OVHD LIGHT +lightdef.200=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:10.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_Pedestal#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL_FWD +lightdef.201=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_PedestalAmbient#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL_FWD ; CPT / F/O TABLE LT -lightdef.177 = Type:12#Index:1#LocalPosition:38.5,-1.825,5.98#LocalRotation:-10,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:10#Node:LIGHTS_Glareshield_Front_1 ; CPT TABLE LT -lightdef.179 = Type:12#Index:2#LocalPosition:38.5,1.76,5.98#LocalRotation:-10,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:11#Node:LIGHTS_Glareshield_Front_2 ; F/O TABLE LT +lightdef.210 = Type:12#Index:1#LocalPosition:38.5,-1.825,5.98#LocalRotation:-10,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:10#Node:LIGHTS_Glareshield_Front_1 ; CPT TABLE LT +lightdef.211 = Type:12#Index:2#LocalPosition:38.5,1.76,5.98#LocalRotation:-10,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:11#Node:LIGHTS_Glareshield_Front_2 ; F/O TABLE LT ; AMBIENT LT -lightdef.181 = Type:10#Index:1#LocalPosition:34.8,-1.7,8.7#LocalRotation:0,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_R ; AMBIENT FLOOD -lightdef.182 = Type:10#Index:1#LocalPosition:34.8,-1.0,3.7#LocalRotation:0,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_R ; AMBIENT AMBIENT -lightdef.183 = Type:10#Index:1#LocalPosition:34.8,-1.7,8.7#LocalRotation:0,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_L ; AMBIENT FLOOD -lightdef.184 = Type:10#Index:1#LocalPosition:34.8,-1.0,3.7#LocalRotation:0,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_L ; AMBIENT AMBIENT -lightdef.185 = Type:10#Index:1#LocalPosition:34.8,-1.7,8.7#LocalRotation:0,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_AFT ; AMBIENT FLOOD -lightdef.186 = Type:10#Index:1#LocalPosition:34.8,-1.0,3.7#LocalRotation:0,0,0#EffectFile:LIGHT_A32NX_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_AFT ; AMBIENT AMBIENT - -lightdef.187 = Type:4#Index:5#LocalPosition:35,0.96,9#LocalRotation:110,90,0#EffectFile:LIGHT_A32NX_CockpitSpotNarrow#PotentiometerIndex:97#Node:LIGHT_OVHD_READINGLLT ; CPT READING LT -lightdef.188 = Type:4#Index:5#LocalPosition:34.488,-1.16,9.04#LocalRotation:110,90,0#EffectFile:LIGHT_A32NX_CockpitSpotNarrow#PotentiometerIndex:96#Node:LIGHT_OVHD_READINGLTR ; FO READING LT +lightdef.220 = Type:10#Index:1#LocalPosition:34.8,-1.7,8.7#LocalRotation:0,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_R ; AMBIENT FLOOD +lightdef.221 = Type:10#Index:1#LocalPosition:34.8,-1.0,3.7#LocalRotation:0,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_R ; AMBIENT AMBIENT +lightdef.222 = Type:10#Index:1#LocalPosition:34.8,-1.7,8.7#LocalRotation:0,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_L ; AMBIENT FLOOD +lightdef.223 = Type:10#Index:1#LocalPosition:34.8,-1.0,3.7#LocalRotation:0,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_L ; AMBIENT AMBIENT +lightdef.224 = Type:10#Index:1#LocalPosition:34.8,-1.7,8.7#LocalRotation:0,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_AFT ; AMBIENT FLOOD +lightdef.225 = Type:10#Index:1#LocalPosition:34.8,-1.0,3.7#LocalRotation:0,0,0#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:LIGHTS_Overhead_AFT ; AMBIENT AMBIENT + +lightdef.226 = Type:4#Index:5#LocalPosition:35,0.96,9#LocalRotation:110,90,0#EffectFile:LIGHT_A380X_CockpitSpotNarrow#PotentiometerIndex:97#Node:LIGHT_OVHD_READINGLLT ; CPT READING LT +lightdef.227 = Type:4#Index:5#LocalPosition:34.488,-1.16,9.04#LocalRotation:110,90,0#EffectFile:LIGHT_A380X_CockpitSpotNarrow#PotentiometerIndex:96#Node:LIGHT_OVHD_READINGLTR ; FO READING LT + +; CABIN LIGHT PEC +lightdef.230=Type:10#Index:1#LocalPosition:34.799999,-1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:CABIN_LIGHT_LH_1 +lightdef.231=Type:10#Index:1#LocalPosition:34.799999,-1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:CABIN_LIGHT_LH_2 +lightdef.232=Type:10#Index:1#LocalPosition:34.799999,-1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:CABIN_LIGHT_LH_3 +lightdef.233=Type:10#Index:1#LocalPosition:34.799999,-1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:CABIN_LIGHT_LH_4 +lightdef.234=Type:10#Index:1#LocalPosition:34.799999,-1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:CABIN_LIGHT_LH_5 +lightdef.235=Type:10#Index:1#LocalPosition:34.799999,-1.000000,3.700000#LocalRotation:270.000000,500.000000,0.000000#EffectFile:LIGHT_A380X_CockpitSpotLarge#PotentiometerIndex:7#Node:CABIN_LIGHT_LH_6 + +; PEDESTAL LIGHT +lightdef.240=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:-110.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_Pedestal#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL +lightdef.241=Type:11#Index:1#LocalPosition:38.970001,-2.600000,5.870000#LocalRotation:0.000000,0.000000,0.000000#EffectFile:LIGHT_A380X_PedestalAmbient#PotentiometerIndex:76#Node:LIGHT_OVHD_TOPEDESTAL + [BRAKES] parking_brake = 0 ; BrakeTypes enum diff --git a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/taxi.flt b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/taxi.flt index db19b41f9ca..65907b5875f 100644 --- a/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/taxi.flt +++ b/fbw-a380x/src/base/flybywire-aircraft-a380-842/SimObjects/AirPlanes/FlyByWire_A380_842/taxi.flt @@ -410,6 +410,7 @@ XMLVAR_SWITCH_OVHD_CABINPRESS_MANVSCTL=37.5 XMLVAR_SWITCH_OVHD_INTLT_EMEREXIT_Position=1 XMLVAR_SWITCH_OVHD_INTLT_NOSMOKING_Position=1 XMLVAR_SWITCH_OVHD_INTLT_SEATBELT_Position=1 +A32NX_AUTOBRAKES_ARMED_MODE=0 [Gauges.0] KollsmanSetting=29.921342849731445313 diff --git a/fbw-a380x/src/localization/msfs/en-US.locPak b/fbw-a380x/src/localization/msfs/en-US.locPak index 0e95486e17a..e638a46f917 100644 --- a/fbw-a380x/src/localization/msfs/en-US.locPak +++ b/fbw-a380x/src/localization/msfs/en-US.locPak @@ -17,14 +17,20 @@ "A380X.LOADING.TIPS.A380_007": "The volume of all three decks (including the cargo hold) is 1,570 m3. This is enough space for 35 million ping-pong balls.", "A380X.LOADING.TIPS.A380_008": "The maximum design load on the 6-wheel body gear is 260 tonnes - equivalent to 200 VW Golfs", "A380X.LOADING.TIPS.A380_009": "The engine's 116 inch (2.95 m) diameter fan blades suck in over one and a quarter tons of air every second", - + "A380X.COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_LEFT": "Adjust selected heading to the left (%((A:AUTOPILOT HEADING LOCK DIR:1,degrees))%!d!°)", + "A380X.COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_RIGHT": "Adjust selected heading to the right (%((A:AUTOPILOT HEADING LOCK DIR:1,degrees))%!d!°)", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_RTO": "Arm rejected take-off autobrake (RTO)", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_TOOLTIP": "Auto brake selector", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_DISARM": "Set auto brake to DISARM", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_LO": "Set auto brake to LO", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_BTV": "Set auto brake to brake-to-vacate (BTV)", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_2": "Set auto brake to 2", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_3": "Set auto brake to 3", + "A380X.COCKPIT.TOOLTIPS.AUTOBRAKE_HI": "Set auto brake to HI", "A380X.TOOLTIPS.STATE_ESS": "ESS", "A380X.TOOLTIPS.STATE_APU": "APU", "A380X.TOOLTIPS.BAT_SELECTOR_TITLE": "Battery Voltage Selector", "A380X.TOOLTIPS.BAT_SELECTOR_ACTION": "Select the battery voltage to display", - - "COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_LEFT": "Adjust selected heading to the left (%((A:AUTOPILOT HEADING LOCK DIR:1,degrees))%!d!°)", - "COCKPIT.TOOLTIPS.AUTOPILOT_PANEL_HDG_TUNING_RIGHT": "Adjust selected heading to the right (%((A:AUTOPILOT HEADING LOCK DIR:1,degrees))%!d!°)" } } } diff --git a/fbw-a380x/src/systems/instruments/src/PFD/FMA.tsx b/fbw-a380x/src/systems/instruments/src/PFD/FMA.tsx index 38c251b343a..f384a7bf68b 100644 --- a/fbw-a380x/src/systems/instruments/src/PFD/FMA.tsx +++ b/fbw-a380x/src/systems/instruments/src/PFD/FMA.tsx @@ -242,16 +242,22 @@ class A2Cell extends DisplayComponent<{ bus:EventBus }> { this.text.set(''); break; case 1: - this.text.set('BRK LO '); + this.text.set('BTV '); break; case 2: - this.text.set('BRK MED '); + this.text.set('BRK LO '); break; case 3: - // MAX will be shown in 3rd row - this.text.set(''); + this.text.set('BRK 2 '); + break; + case 4: + this.text.set('BRK 3 '); + break; + case 5: + this.text.set('BRK HI '); break; default: + this.text.set(''); break; } }); @@ -431,15 +437,27 @@ class A1A2Cell extends ShowForSecondsComponent { if (this.autoBrakeActive) { switch (this.autoBrakeMode) { case 1: - text = 'BRK LO'; + text = 'BTV'; this.displayModeChangedPath(); break; case 2: - text = 'BRK MED'; + text = 'BRK LO'; this.displayModeChangedPath(); break; case 3: - text = 'BRK MAX'; + text = 'BRK 2 '; + this.displayModeChangedPath(); + break; + case 4: + text = 'BRK 3 '; + this.displayModeChangedPath(); + break; + case 5: + text = 'BRK HI '; + this.displayModeChangedPath(); + break; + case 6: + text = 'BRK RTO'; this.displayModeChangedPath(); break; default: @@ -538,8 +556,8 @@ class A3Cell extends DisplayComponent { } private handleAutobrakeMode() { - if (this.autobrakeMode === 3 && !this.AB3Message) { - this.textSub.set('BRK MAX'); + if (this.autobrakeMode === 6 && !this.AB3Message) { + this.textSub.set('BRK RTO'); this.classSub.set('FontMediumSmaller MiddleAlign Cyan'); } else { this.textSub.set(''); diff --git a/fbw-a380x/src/wasm/fadec_a380/build.sh b/fbw-a380x/src/wasm/fadec_a380/build.sh index daca4967623..c06fdb76fd4 100755 --- a/fbw-a380x/src/wasm/fadec_a380/build.sh +++ b/fbw-a380x/src/wasm/fadec_a380/build.sh @@ -63,6 +63,11 @@ wasm-ld \ --export malloc \ --export free \ --export __wasm_call_ctors \ + --export mallinfo \ + --export mchunkit_begin \ + --export mchunkit_next \ + --export get_pages_state \ + --export mark_decommit_pages \ --export-table \ --gc-sections \ -lc++ -lc++abi \ diff --git a/fbw-a380x/src/wasm/fbw_a380/build.sh b/fbw-a380x/src/wasm/fbw_a380/build.sh index c6021b9de3d..3f5d5429b1b 100755 --- a/fbw-a380x/src/wasm/fbw_a380/build.sh +++ b/fbw-a380x/src/wasm/fbw_a380/build.sh @@ -150,6 +150,11 @@ wasm-ld \ --export malloc \ --export free \ --export __wasm_call_ctors \ + --export mallinfo \ + --export mchunkit_begin \ + --export mchunkit_next \ + --export get_pages_state \ + --export mark_decommit_pages \ --export-table \ --gc-sections \ ${WASMLD_ARGS} \ diff --git a/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.cpp b/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.cpp index bf995684220..65e6ee58f28 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.cpp +++ b/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.cpp @@ -765,6 +765,8 @@ void FlyByWireInterface::setupLocalVariables() { idElecDcEssBusPowered = std::make_unique("A32NX_ELEC_108PH_BUS_IS_POWERED"); idElecDcEhaBusPowered = std::make_unique("A32NX_ELEC_247PP_BUS_IS_POWERED"); idElecDc1BusPowered = std::make_unique("A32NX_ELEC_DC_1_BUS_IS_POWERED"); + idRatContactorClosed = std::make_unique("A32NX_ELEC_CONTACTOR_5XE_IS_CLOSED"); + idRatPosition = std::make_unique("A32NX_RAT_STOW_POSITION"); idHydYellowSystemPressure = std::make_unique("A32NX_HYD_YELLOW_SYSTEM_1_SECTION_PRESSURE"); idHydGreenSystemPressure = std::make_unique("A32NX_HYD_GREEN_SYSTEM_1_SECTION_PRESSURE"); @@ -1379,6 +1381,8 @@ bool FlyByWireInterface::updatePrim(double sampleTime, int primIndex) { prims[primIndex].modelInputs.in.discrete_inputs.ir_3_on_fo = false; prims[primIndex].modelInputs.in.discrete_inputs.adr_3_on_capt = false; prims[primIndex].modelInputs.in.discrete_inputs.adr_3_on_fo = false; + prims[primIndex].modelInputs.in.discrete_inputs.rat_deployed = primIndex == 0 ? idRatPosition->get() > 0.9 : false; + prims[primIndex].modelInputs.in.discrete_inputs.rat_contactor_closed = primIndex == 0 ? idRatContactorClosed->get() : false; prims[primIndex].modelInputs.in.discrete_inputs.pitch_trim_up_pressed = primIndex == 1 ? false : pitchTrimInput.pitchTrimSwitchUp; prims[primIndex].modelInputs.in.discrete_inputs.pitch_trim_down_pressed = primIndex == 1 ? false : pitchTrimInput.pitchTrimSwitchDown; prims[primIndex].modelInputs.in.discrete_inputs.green_low_pressure = !idHydGreenPressurised->get(); @@ -1601,6 +1605,8 @@ bool FlyByWireInterface::updateSec(double sampleTime, int secIndex) { secs[secIndex].modelInputs.in.discrete_inputs.rudder_trim_reset_pressed = secIndex == 1 ? false : rudderTrimInput.rudderTrimReset; secs[secIndex].modelInputs.in.discrete_inputs.pitch_trim_up_pressed = secIndex == 1 ? false : pitchTrimInput.pitchTrimSwitchUp; secs[secIndex].modelInputs.in.discrete_inputs.pitch_trim_down_pressed = secIndex == 1 ? false : pitchTrimInput.pitchTrimSwitchDown; + secs[secIndex].modelInputs.in.discrete_inputs.rat_deployed = secIndex == 0 ? idRatPosition->get() > 0.9 : false; + secs[secIndex].modelInputs.in.discrete_inputs.rat_contactor_closed = secIndex == 0 ? idRatContactorClosed->get() : false; secs[secIndex].modelInputs.in.discrete_inputs.green_low_pressure = !idHydGreenPressurised->get(); secs[secIndex].modelInputs.in.discrete_inputs.yellow_low_pressure = !idHydYellowPressurised->get(); diff --git a/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.h b/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.h index 9eb6beca6c4..8af171062f5 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.h +++ b/fbw-a380x/src/wasm/fbw_a380/src/FlyByWireInterface.h @@ -566,6 +566,8 @@ class FlyByWireInterface { std::unique_ptr idElecDcEssBusPowered; std::unique_ptr idElecDcEhaBusPowered; std::unique_ptr idElecDc1BusPowered; + std::unique_ptr idRatContactorClosed; + std::unique_ptr idRatPosition; std::unique_ptr idHydYellowSystemPressure; std::unique_ptr idHydGreenSystemPressure; diff --git a/fbw-a380x/src/wasm/fbw_a380/src/interface/SimConnectInterface.cpp b/fbw-a380x/src/wasm/fbw_a380/src/interface/SimConnectInterface.cpp index 7e4a55d1590..7a2973a8335 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/interface/SimConnectInterface.cpp +++ b/fbw-a380x/src/wasm/fbw_a380/src/interface/SimConnectInterface.cpp @@ -2343,6 +2343,9 @@ void SimConnectInterface::processEventWithOneParam(const DWORD eventId, const DW case Events::AUTO_THROTTLE_DISCONNECT: { simInputThrottles.ATHR_disconnect = 1; std::cout << "WASM: event triggered: AUTO_THROTTLE_DISCONNECT" << std::endl; + + // Re emitting masked event for autobrake disconnection + execute_calculator_code("(>K:A32NX.AUTO_THROTTLE_DISCONNECT)", nullptr, nullptr, nullptr); break; } diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.cpp b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.cpp index d6c081bde0a..dc6ae12d42b 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.cpp +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.cpp @@ -152,8 +152,6 @@ A380PitchNormalLaw::Parameters_A380PitchNormalLaw_T A380PitchNormalLaw::A380Pitc 0.0, - 0.0, - 2.0, 0.0, @@ -220,6 +218,8 @@ A380PitchNormalLaw::Parameters_A380PitchNormalLaw_T A380PitchNormalLaw::A380Pitc 0.0, + 0.0, + -30.0, -30.0, @@ -373,32 +373,6 @@ A380PitchNormalLaw::Parameters_A380PitchNormalLaw_T A380PitchNormalLaw::A380Pitc 0.0, - 1.0, - - 0.017453292519943295, - - 0.017453292519943295, - - 0.017453292519943295, - - 100.0, - - 0.1019367991845056, - - - { 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0 }, - - - { 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0 }, - - 2000.0, - - 100.0, - - 0.51444444444444448, - - 1.0, - -30.0, 1.0, @@ -435,12 +409,38 @@ A380PitchNormalLaw::Parameters_A380PitchNormalLaw_T A380PitchNormalLaw::A380Pitc { -1.0, 0.0, 1.0 }, + 0.017453292519943295, + + 0.017453292519943295, + + + { 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0 }, + + + { 100.0, 150.0, 200.0, 250.0, 300.0, 350.0, 400.0 }, + + 2000.0, + + 100.0, + + 0.51444444444444448, + + 1.0, + + 0.017453292519943295, + + 100.0, + + 0.1019367991845056, + { 13.5, 13.5 }, { 0.0, 350.0 }, + 1.0, + { 0.5, 0.5 }, @@ -967,7 +967,6 @@ void A380PitchNormalLaw::reset(void) { real_T rtb_nz_limit_up_g; real_T rtb_nz_limit_lo_g; - real_T rtb_in_flare; A380PitchNormalLaw_DWork.Delay_DSTATE = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_InitialCondition; A380PitchNormalLaw_DWork.Delay_DSTATE_n = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_InitialCondition; A380PitchNormalLaw_DWork.Delay_DSTATE_c = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_InitialCondition; @@ -1007,13 +1006,12 @@ void A380PitchNormalLaw::reset(void) A380PitchNormalLaw_B.in_flight = 0.0; A380PitchNormalLaw_DWork.on_ground_time = 0.0; A380PitchNormalLaw_DWork.in_flight_time = 0.0; + A380PitchNormalLaw_DWork.is_active_c8_A380PitchNormalLaw = 0U; + A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_NO_ACTIVE_CHILD; A380PitchNormalLaw_DWork.is_active_c2_A380PitchNormalLaw = 0U; A380PitchNormalLaw_DWork.is_c2_A380PitchNormalLaw = A380PitchNormalLaw_IN_NO_ACTIVE_CHILD; - rtb_in_flare = 0.0; A380PitchNormalLaw_DWork.is_active_c9_A380PitchNormalLaw = 0U; A380PitchNormalLaw_DWork.is_c9_A380PitchNormalLaw = A380PitchNormalLaw_IN_NO_ACTIVE_CHILD; - A380PitchNormalLaw_DWork.is_active_c8_A380PitchNormalLaw = 0U; - A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_NO_ACTIVE_CHILD; A380PitchNormalLaw_DWork.is_active_c7_A380PitchNormalLaw = 0U; A380PitchNormalLaw_DWork.is_c7_A380PitchNormalLaw = A380PitchNormalLaw_IN_NO_ACTIVE_CHILD; rtb_nz_limit_up_g = 0.0; @@ -1065,33 +1063,31 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In { real_T rtb_nz_limit_up_g; real_T rtb_nz_limit_lo_g; - real_T rtb_in_flare; real_T ca; real_T rtb_Bias_o; real_T rtb_Cos; real_T rtb_Divide; - real_T rtb_Divide1_e; - real_T rtb_Divide_a0; real_T rtb_Divide_an; - real_T rtb_Divide_b4; + real_T rtb_Divide_bq; + real_T rtb_Divide_c; real_T rtb_Divide_cq; - real_T rtb_Divide_kq; + real_T rtb_Divide_ho; + real_T rtb_Divide_k; real_T rtb_Divide_l; - real_T rtb_Divide_m; real_T rtb_Divide_o; - real_T rtb_Divide_o2; + real_T rtb_Gain; real_T rtb_Gain1; - real_T rtb_Gain1_gs; - real_T rtb_Gain1_h; - real_T rtb_Gain1_l; + real_T rtb_Gain1_e; + real_T rtb_Gain1_ft; real_T rtb_Gain5_gq; real_T rtb_Gain_av; real_T rtb_Gain_bs; - real_T rtb_Gain_cb; + real_T rtb_Gain_f; real_T rtb_Gain_ll; - real_T rtb_Gain_lv; real_T rtb_Gain_nu; real_T rtb_Gain_ot; + real_T rtb_Gain_px; + real_T rtb_Loaddemand2; real_T rtb_ManualSwitch; real_T rtb_Product1_ck; real_T rtb_Product1_dm; @@ -1099,16 +1095,15 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In real_T rtb_Product_kz; real_T rtb_Product_n3; real_T rtb_Saturation_ix; - real_T rtb_Sum10; real_T rtb_Sum1_n; real_T rtb_Sum_ma; - real_T rtb_Y_bc; real_T rtb_Y_d; - real_T rtb_Y_em; - real_T rtb_Y_f2; + real_T rtb_Y_ej; real_T rtb_Y_i; - real_T rtb_Y_my; - real_T rtb_Y_o2; + real_T rtb_Y_je; + real_T rtb_Y_mt; + real_T rtb_Y_n; + real_T rtb_Y_p; real_T rtb_alpha_err_gain; real_T rtb_eta_trim_deg_rate_limit_lo_deg_s; real_T rtb_eta_trim_deg_rate_limit_up_deg_s; @@ -1116,15 +1111,11 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In real_T rtb_qk_gain; real_T rtb_uDLookupTable; real_T rtb_v_target; - int32_T rtb_in_rotation; - boolean_T rtb_OR; - boolean_T rtb_eta_trim_deg_should_freeze; - if (A380PitchNormalLaw_rtP.ManualSwitch_CurrentSetting == 1) { - rtb_ManualSwitch = A380PitchNormalLaw_rtP.Constant1_Value; - } else { - rtb_ManualSwitch = A380PitchNormalLaw_rtP.Constant_Value; - } - + real_T rtb_y; + real_T rtb_y_c; + int32_T rtb_in_flare; + boolean_T rtb_AND; + boolean_T rtb_NOT; if (A380PitchNormalLaw_DWork.is_active_c3_A380PitchNormalLaw == 0U) { A380PitchNormalLaw_DWork.is_active_c3_A380PitchNormalLaw = 1U; A380PitchNormalLaw_DWork.is_c3_A380PitchNormalLaw = A380PitchNormalLaw_IN_Ground; @@ -1175,111 +1166,104 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In } } + if (A380PitchNormalLaw_DWork.is_active_c8_A380PitchNormalLaw == 0U) { + A380PitchNormalLaw_DWork.is_active_c8_A380PitchNormalLaw = 1U; + A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_manual; + } else { + switch (A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw) { + case A380PitchNormalLaw_IN_automatic: + if (A380PitchNormalLaw_B.in_flight == 0.0) { + A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_reset; + } else if (*rtu_In_tracking_mode_on) { + A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_tracking; + } + break; + + case A380PitchNormalLaw_IN_manual: + if (A380PitchNormalLaw_B.in_flight != 0.0) { + A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_automatic; + } + break; + + case A380PitchNormalLaw_IN_reset: + if ((A380PitchNormalLaw_B.in_flight == 0.0) && (*rtu_In_eta_trim_deg == 0.0)) { + A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_manual; + } + break; + + default: + if (!*rtu_In_tracking_mode_on) { + A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_automatic; + } + break; + } + } + + if (A380PitchNormalLaw_rtP.ManualSwitch_CurrentSetting == 1) { + rtb_ManualSwitch = A380PitchNormalLaw_rtP.Constant1_Value; + } else { + rtb_ManualSwitch = A380PitchNormalLaw_rtP.Constant_Value; + } + if (A380PitchNormalLaw_DWork.is_active_c2_A380PitchNormalLaw == 0U) { A380PitchNormalLaw_DWork.is_active_c2_A380PitchNormalLaw = 1U; A380PitchNormalLaw_DWork.is_c2_A380PitchNormalLaw = A380PitchNormalLaw_IN_Ground; - rtb_in_flare = 0.0; + rtb_in_flare = 0; } else { switch (A380PitchNormalLaw_DWork.is_c2_A380PitchNormalLaw) { case A380PitchNormalLaw_IN_Flare_Active_Reduce: if (A380PitchNormalLaw_B.in_flight == 0.0) { A380PitchNormalLaw_DWork.is_c2_A380PitchNormalLaw = A380PitchNormalLaw_IN_Ground; - rtb_in_flare = 0.0; + rtb_in_flare = 0; } else if ((A380PitchNormalLaw_B.in_flight == 1.0) && (*rtu_In_H_radio_ft > 100.0) && (rtb_ManualSwitch == 0.0)) { A380PitchNormalLaw_DWork.is_c2_A380PitchNormalLaw = A380PitchNormalLaw_IN_Flight; - rtb_in_flare = 0.0; + rtb_in_flare = 0; } else { - rtb_in_flare = 1.0; + rtb_in_flare = 1; } break; case A380PitchNormalLaw_IN_Flight: if ((*rtu_In_H_radio_ft <= 100.0) || (rtb_ManualSwitch == 1.0)) { A380PitchNormalLaw_DWork.is_c2_A380PitchNormalLaw = A380PitchNormalLaw_IN_Flare_Active_Reduce; - rtb_in_flare = 1.0; + rtb_in_flare = 1; } else { - rtb_in_flare = 0.0; + rtb_in_flare = 0; } break; default: if ((A380PitchNormalLaw_B.in_flight == 1.0) && (*rtu_In_H_radio_ft > 100.0) && (rtb_ManualSwitch == 0.0)) { A380PitchNormalLaw_DWork.is_c2_A380PitchNormalLaw = A380PitchNormalLaw_IN_Flight; - rtb_in_flare = 0.0; + rtb_in_flare = 0; } else { - rtb_in_flare = 0.0; + rtb_in_flare = 0; } break; } } + rtb_NOT = !*rtu_In_any_ap_engaged; + rtb_AND = ((rtb_in_flare != 0) && rtb_NOT); if (A380PitchNormalLaw_DWork.is_active_c9_A380PitchNormalLaw == 0U) { A380PitchNormalLaw_DWork.is_active_c9_A380PitchNormalLaw = 1U; A380PitchNormalLaw_DWork.is_c9_A380PitchNormalLaw = A380PitchNormalLaw_IN_running; - rtb_eta_trim_deg_should_freeze = false; + rtb_NOT = false; } else if (A380PitchNormalLaw_DWork.is_c9_A380PitchNormalLaw == A380PitchNormalLaw_IN_frozen) { - if ((rtb_in_flare == 0.0) && (*rtu_In_nz_g < 1.25) && (*rtu_In_nz_g > 0.5) && (std::abs(*rtu_In_Phi_deg) <= 30.0)) { + if ((!rtb_AND) && (*rtu_In_nz_g < 1.25) && (*rtu_In_nz_g > 0.5) && (std::abs(*rtu_In_Phi_deg) <= 30.0)) { A380PitchNormalLaw_DWork.is_c9_A380PitchNormalLaw = A380PitchNormalLaw_IN_running; - rtb_eta_trim_deg_should_freeze = false; + rtb_NOT = false; } else { - rtb_eta_trim_deg_should_freeze = true; + rtb_NOT = true; } - } else if ((rtb_in_flare != 0.0) || (*rtu_In_nz_g >= 1.25) || (*rtu_In_nz_g <= 0.5) || (std::abs(*rtu_In_Phi_deg) > - 30.0)) { + } else if (rtb_AND || (*rtu_In_nz_g >= 1.25) || (*rtu_In_nz_g <= 0.5) || (std::abs(*rtu_In_Phi_deg) > 30.0)) { A380PitchNormalLaw_DWork.is_c9_A380PitchNormalLaw = A380PitchNormalLaw_IN_frozen; - rtb_eta_trim_deg_should_freeze = true; + rtb_NOT = true; } else { - rtb_eta_trim_deg_should_freeze = false; - } - - rtb_ManualSwitch = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_Gain * *rtu_In_qk_deg_s; - rtb_Divide = (rtb_ManualSwitch - A380PitchNormalLaw_DWork.Delay_DSTATE) / *rtu_In_time_dt; - rtb_Gain1 = A380PitchNormalLaw_rtP.Gain1_Gain * *rtu_In_Theta_deg; - rtb_Cos = std::cos(rtb_Gain1); - rtb_Gain1 = A380PitchNormalLaw_rtP.Gain1_Gain_l * *rtu_In_Phi_deg; - rtb_Divide1_e = rtb_Cos / std::cos(rtb_Gain1); - rtb_Gain1_h = A380PitchNormalLaw_rtP.Gain1_Gain_e * *rtu_In_qk_deg_s; - rtb_Gain_av = *rtu_In_nz_g - rtb_Divide1_e; - rtb_Y_em = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data, - A380PitchNormalLaw_rtP.uDLookupTable_tableData, 6U); - rtb_v_target = *rtu_In_V_tas_kn; - rtb_Gain_ot = *rtu_In_V_ias_kn; - rtb_Divide_an = *rtu_In_flaps_handle_index; - rtb_Gain1_gs = *rtu_In_VLS_kn; - rtb_Gain_cb = A380PitchNormalLaw_rtP.Gain_Gain_a * *rtu_In_delta_eta_pos; - if (A380PitchNormalLaw_DWork.is_active_c8_A380PitchNormalLaw == 0U) { - A380PitchNormalLaw_DWork.is_active_c8_A380PitchNormalLaw = 1U; - A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_manual; - } else { - switch (A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw) { - case A380PitchNormalLaw_IN_automatic: - if (A380PitchNormalLaw_B.in_flight == 0.0) { - A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_reset; - } else if (*rtu_In_tracking_mode_on) { - A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_tracking; - } - break; - - case A380PitchNormalLaw_IN_manual: - if (A380PitchNormalLaw_B.in_flight != 0.0) { - A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_automatic; - } - break; - - case A380PitchNormalLaw_IN_reset: - if ((A380PitchNormalLaw_B.in_flight == 0.0) && (*rtu_In_eta_trim_deg == 0.0)) { - A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_manual; - } - break; - - default: - if (!*rtu_In_tracking_mode_on) { - A380PitchNormalLaw_DWork.is_c8_A380PitchNormalLaw = A380PitchNormalLaw_IN_automatic; - } - break; - } + rtb_NOT = false; } + rtb_Gain = A380PitchNormalLaw_rtP.Gain_Gain * *rtu_In_delta_eta_pos; if (A380PitchNormalLaw_DWork.is_active_c7_A380PitchNormalLaw == 0U) { A380PitchNormalLaw_DWork.is_active_c7_A380PitchNormalLaw = 1U; A380PitchNormalLaw_DWork.is_c7_A380PitchNormalLaw = A380PitchNormalLaw_IN_ground; @@ -1364,38 +1348,38 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In A380PitchNormalLaw_RateLimiter(rtb_Sum_ma, A380PitchNormalLaw_rtP.RateLimiterVariableTs_up, A380PitchNormalLaw_rtP.RateLimiterVariableTs_lo, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition, &rtb_Y_o2, &A380PitchNormalLaw_DWork.sf_RateLimiter); + A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition, &rtb_Y_ej, &A380PitchNormalLaw_DWork.sf_RateLimiter); if (A380PitchNormalLaw_DWork.is_active_c6_A380PitchNormalLaw == 0U) { A380PitchNormalLaw_DWork.is_active_c6_A380PitchNormalLaw = 1U; A380PitchNormalLaw_DWork.is_c6_A380PitchNormalLaw = A380PitchNormalLaw_IN_OFF; - rtb_in_rotation = 0; + rtb_in_flare = 0; } else if (A380PitchNormalLaw_DWork.is_c6_A380PitchNormalLaw == A380PitchNormalLaw_IN_OFF) { - if ((rtb_Y_o2 < 1.0) && (*rtu_In_V_tas_kn > 70.0) && ((*rtu_In_thrust_lever_1_pos >= 35.0) || + if ((rtb_Y_ej < 1.0) && (*rtu_In_V_tas_kn > 70.0) && ((*rtu_In_thrust_lever_1_pos >= 35.0) || (*rtu_In_thrust_lever_2_pos >= 35.0))) { A380PitchNormalLaw_DWork.is_c6_A380PitchNormalLaw = A380PitchNormalLaw_IN_ON; - rtb_in_rotation = 1; + rtb_in_flare = 1; } else { - rtb_in_rotation = 0; + rtb_in_flare = 0; } - } else if ((rtb_Y_o2 == 1.0) || (*rtu_In_H_radio_ft > 400.0) || ((*rtu_In_V_tas_kn < 70.0) && + } else if ((rtb_Y_ej == 1.0) || (*rtu_In_H_radio_ft > 400.0) || ((*rtu_In_V_tas_kn < 70.0) && ((*rtu_In_thrust_lever_1_pos < 35.0) || (*rtu_In_thrust_lever_2_pos < 35.0)))) { A380PitchNormalLaw_DWork.is_c6_A380PitchNormalLaw = A380PitchNormalLaw_IN_OFF; - rtb_in_rotation = 0; + rtb_in_flare = 0; } else { - rtb_in_rotation = 1; + rtb_in_flare = 1; } - if (rtb_in_rotation > A380PitchNormalLaw_rtP.Saturation1_UpperSat) { + if (rtb_in_flare > A380PitchNormalLaw_rtP.Saturation1_UpperSat) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation1_UpperSat; - } else if (rtb_in_rotation < A380PitchNormalLaw_rtP.Saturation1_LowerSat) { + } else if (rtb_in_flare < A380PitchNormalLaw_rtP.Saturation1_LowerSat) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation1_LowerSat; } else { - rtb_Sum_ma = rtb_in_rotation; + rtb_Sum_ma = rtb_in_flare; } A380PitchNormalLaw_RateLimiter(rtb_Sum_ma, A380PitchNormalLaw_rtP.RateLimiterVariableTs1_up, A380PitchNormalLaw_rtP.RateLimiterVariableTs1_lo, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs1_InitialCondition, &rtb_Y_bc, + A380PitchNormalLaw_rtP.RateLimiterVariableTs1_InitialCondition, &rtb_Y_mt, &A380PitchNormalLaw_DWork.sf_RateLimiter_p); A380PitchNormalLaw_RateLimiter(rtb_nz_limit_up_g, A380PitchNormalLaw_rtP.RateLimiterVariableTs2_up, A380PitchNormalLaw_rtP.RateLimiterVariableTs2_lo, rtu_In_time_dt, @@ -1403,91 +1387,105 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In &A380PitchNormalLaw_DWork.sf_RateLimiter_c); A380PitchNormalLaw_RateLimiter(rtb_nz_limit_lo_g, A380PitchNormalLaw_rtP.RateLimiterVariableTs3_up, A380PitchNormalLaw_rtP.RateLimiterVariableTs3_lo, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs3_InitialCondition, &rtb_Y_d, &A380PitchNormalLaw_DWork.sf_RateLimiter_n); - A380PitchNormalLaw_RateLimiter(rtb_in_flare, A380PitchNormalLaw_rtP.RateLimiterVariableTs4_up, + A380PitchNormalLaw_rtP.RateLimiterVariableTs3_InitialCondition, &rtb_Y_je, + &A380PitchNormalLaw_DWork.sf_RateLimiter_n); + A380PitchNormalLaw_RateLimiter(static_cast(rtb_AND), A380PitchNormalLaw_rtP.RateLimiterVariableTs4_up, A380PitchNormalLaw_rtP.RateLimiterVariableTs4_lo, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs4_InitialCondition, &rtb_Gain1, + A380PitchNormalLaw_rtP.RateLimiterVariableTs4_InitialCondition, &rtb_ManualSwitch, &A380PitchNormalLaw_DWork.sf_RateLimiter_l); - A380PitchNormalLaw_eta_trim_limit_lofreeze(rtu_In_eta_trim_deg, rtu_In_high_aoa_prot_active, &rtb_Y_my, + A380PitchNormalLaw_eta_trim_limit_lofreeze(rtu_In_eta_trim_deg, rtu_In_high_aoa_prot_active, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_eta_trim_limit_lofreeze); if (*rtu_In_high_aoa_prot_active) { - *rty_Out_eta_trim_limit_lo = rtb_Y_my; + *rty_Out_eta_trim_limit_lo = rtb_Y_n; } else { *rty_Out_eta_trim_limit_lo = A380PitchNormalLaw_rtP.Constant3_Value; } - A380PitchNormalLaw_eta_trim_limit_lofreeze(rtu_In_eta_trim_deg, rtu_In_high_speed_prot_active, &rtb_Y_my, + A380PitchNormalLaw_eta_trim_limit_lofreeze(rtu_In_eta_trim_deg, rtu_In_high_speed_prot_active, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_eta_trim_limit_upfreeze); if (*rtu_In_high_speed_prot_active) { - *rty_Out_eta_trim_limit_up = rtb_Y_my; + *rty_Out_eta_trim_limit_up = rtb_Y_n; } else { *rty_Out_eta_trim_limit_up = A380PitchNormalLaw_rtP.Constant2_Value; } - if (rtb_Divide_an == 5.0) { - rtb_in_rotation = 25; + rtb_Gain1 = *rtu_In_V_ias_kn; + rtb_Gain_ot = *rtu_In_flaps_handle_index; + rtb_Gain_px = *rtu_In_VLS_kn; + if (rtb_Gain_ot == 5.0) { + rtb_in_flare = 25; } else { - rtb_in_rotation = 30; + rtb_in_flare = 30; } - A380PitchNormalLaw_RateLimiter(static_cast(rtb_in_rotation) - std::fmin(5.0, std::fmax(0.0, 5.0 - (rtb_Gain_ot - - (rtb_Gain1_gs + 5.0)) * 0.25)), A380PitchNormalLaw_rtP.RateLimiterVariableTs6_up, + A380PitchNormalLaw_RateLimiter(static_cast(rtb_in_flare) - std::fmin(5.0, std::fmax(0.0, 5.0 - (rtb_Gain1 - + (rtb_Gain_px + 5.0)) * 0.25)), A380PitchNormalLaw_rtP.RateLimiterVariableTs6_up, A380PitchNormalLaw_rtP.RateLimiterVariableTs6_lo, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs6_InitialCondition, &rtb_Y_my, - &A380PitchNormalLaw_DWork.sf_RateLimiter_o); - rtb_Y_i = A380PitchNormalLaw_rtP.Gain1_Gain_m * *rtu_In_Theta_deg; - rtb_Gain1_l = A380PitchNormalLaw_rtP.Gain2_Gain * rtb_Y_my - rtb_Y_i; + A380PitchNormalLaw_rtP.RateLimiterVariableTs6_InitialCondition, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_RateLimiter_o); + rtb_Loaddemand2 = A380PitchNormalLaw_rtP.Gain1_Gain * *rtu_In_Theta_deg; + rtb_Gain1 = A380PitchNormalLaw_rtP.Gain1_Gain_c * *rtu_In_Theta_deg; + rtb_Cos = std::cos(rtb_Gain1); + rtb_Gain1 = A380PitchNormalLaw_rtP.Gain1_Gain_l * *rtu_In_Phi_deg; + rtb_Y_d = rtb_Cos / std::cos(rtb_Gain1); + rtb_Y_p = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data, + A380PitchNormalLaw_rtP.uDLookupTable_tableData, 6U); + rtb_v_target = *rtu_In_V_tas_kn; + rtb_Gain1 = A380PitchNormalLaw_rtP.Gain1_Gain_e * *rtu_In_qk_deg_s; + rtb_Gain_av = *rtu_In_nz_g - rtb_Y_d; + rtb_Gain1_e = A380PitchNormalLaw_rtP.Gain2_Gain * rtb_Y_n - rtb_Loaddemand2; if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation3_UpperSat) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation3_UpperSat; } else if (rtb_v_target < A380PitchNormalLaw_rtP.Saturation3_LowerSat) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation3_LowerSat; } - if (rtb_Gain1_l > A380PitchNormalLaw_rtP.Saturation1_UpperSat_i) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation1_UpperSat_i; - } else if (rtb_Gain1_l < A380PitchNormalLaw_rtP.Saturation1_LowerSat_h) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation1_LowerSat_h; + if (rtb_Gain1_e > A380PitchNormalLaw_rtP.Saturation1_UpperSat_i) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation1_UpperSat_i; + } else if (rtb_Gain1_e < A380PitchNormalLaw_rtP.Saturation1_LowerSat_h) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation1_LowerSat_h; } - rtb_Y_em = (A380PitchNormalLaw_rtP.Gain_Gain * A380PitchNormalLaw_rtP.Vm_currentms_Value * rtb_Gain1_h + rtb_Gain_av) - - (rtb_Y_em / (A380PitchNormalLaw_rtP.Gain5_Gain * rtb_v_target) + A380PitchNormalLaw_rtP.Bias_Bias) * - ((rtb_Divide1_e + look1_binlxpw(rtb_Gain1_l, A380PitchNormalLaw_rtP.Loaddemand1_bp01Data, - A380PitchNormalLaw_rtP.Loaddemand1_tableData, 2U)) - rtb_Divide1_e); - rtb_Y_f2 = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.PLUT_bp01Data, A380PitchNormalLaw_rtP.PLUT_tableData, + rtb_Y_i = (A380PitchNormalLaw_rtP.Gain_Gain_c * A380PitchNormalLaw_rtP.Vm_currentms_Value * rtb_Gain1 + rtb_Gain_av) - + (rtb_Y_p / (A380PitchNormalLaw_rtP.Gain5_Gain * rtb_v_target) + A380PitchNormalLaw_rtP.Bias_Bias) * ((rtb_Y_d + + look1_binlxpw(rtb_Gain1_e, A380PitchNormalLaw_rtP.Loaddemand1_bp01Data, A380PitchNormalLaw_rtP.Loaddemand1_tableData, + 2U)) - rtb_Y_d); + rtb_Y_p = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.PLUT_bp01Data, A380PitchNormalLaw_rtP.PLUT_tableData, 1U); - rtb_Product1_dm = rtb_Y_em * rtb_Y_f2; - rtb_Y_f2 = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.DLUT_bp01Data, A380PitchNormalLaw_rtP.DLUT_tableData, + rtb_Product1_dm = rtb_Y_i * rtb_Y_p; + rtb_Gain1 = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_Gain * *rtu_In_qk_deg_s; + rtb_Divide = (rtb_Gain1 - A380PitchNormalLaw_DWork.Delay_DSTATE) / *rtu_In_time_dt; + rtb_Y_p = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.DLUT_bp01Data, A380PitchNormalLaw_rtP.DLUT_tableData, 1U); - rtb_Gain1_h = rtb_Y_em * rtb_Y_f2 * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain; - rtb_Divide_o = (rtb_Gain1_h - A380PitchNormalLaw_DWork.Delay_DSTATE_n) / *rtu_In_time_dt; + rtb_Gain_px = rtb_Y_i * rtb_Y_p * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain; + rtb_Divide_o = (rtb_Gain_px - A380PitchNormalLaw_DWork.Delay_DSTATE_n) / *rtu_In_time_dt; rtb_Gain_ot = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_Gain * *rtu_In_V_tas_kn; rtb_Divide_an = (rtb_Gain_ot - A380PitchNormalLaw_DWork.Delay_DSTATE_c) / *rtu_In_time_dt; - A380PitchNormalLaw_LagFilter(rtb_Divide_an, A380PitchNormalLaw_rtP.LagFilter_C1, rtu_In_time_dt, &rtb_Y_my, + A380PitchNormalLaw_LagFilter(rtb_Divide_an, A380PitchNormalLaw_rtP.LagFilter_C1, rtu_In_time_dt, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_LagFilter_k); - if (rtb_Y_my > A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat) { - rtb_Divide_a0 = A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat; - } else if (rtb_Y_my < A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat) { - rtb_Divide_a0 = A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat; + if (rtb_Y_n > A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat) { + rtb_Divide_bq = A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat; + } else if (rtb_Y_n < A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat) { + rtb_Divide_bq = A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat; } else { - rtb_Divide_a0 = rtb_Y_my; + rtb_Divide_bq = rtb_Y_n; } rtb_Gain5_gq = std::fmin(*rtu_In_spoilers_left_pos, *rtu_In_spoilers_right_pos); - A380PitchNormalLaw_WashoutFilter(rtb_Gain5_gq, A380PitchNormalLaw_rtP.WashoutFilter_C1, rtu_In_time_dt, &rtb_Y_my, + A380PitchNormalLaw_WashoutFilter(rtb_Gain5_gq, A380PitchNormalLaw_rtP.WashoutFilter_C1, rtu_In_time_dt, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_WashoutFilter_k); - rtb_Y_em = look1_binlxpw(*rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1, + rtb_Y_p = look1_binlxpw(*rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1, A380PitchNormalLaw_rtP.ScheduledGain_Table, 3U); - if (rtb_Y_my > A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat) { - rtb_Y_my = A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat; - } else if (rtb_Y_my < A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat) { - rtb_Y_my = A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat; + if (rtb_Y_n > A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat) { + rtb_Y_n = A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat; + } else if (rtb_Y_n < A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat) { + rtb_Y_n = A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat; } - rtb_Product_kz = rtb_Y_my * rtb_Y_em; + rtb_Product_kz = rtb_Y_n * rtb_Y_p; rtb_Divide_an = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_Gain_i * *rtu_In_qk_deg_s; rtb_Divide_cq = (rtb_Divide_an - A380PitchNormalLaw_DWork.Delay_DSTATE_l) / *rtu_In_time_dt; - rtb_Gain1_gs = A380PitchNormalLaw_rtP.Gain1_Gain_o * *rtu_In_qk_deg_s; - rtb_Y_f2 = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data_o, + rtb_Gain1_ft = A380PitchNormalLaw_rtP.Gain1_Gain_o * *rtu_In_qk_deg_s; + rtb_Y_i = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data_o, A380PitchNormalLaw_rtP.uDLookupTable_tableData_e, 6U); rtb_v_target = *rtu_In_V_tas_kn; if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation3_UpperSat_a) { @@ -1496,44 +1494,44 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_v_target = A380PitchNormalLaw_rtP.Saturation3_LowerSat_l; } - rtb_Y_f2 = (A380PitchNormalLaw_rtP.Gain_Gain_al * A380PitchNormalLaw_rtP.Vm_currentms_Value_e * rtb_Gain1_gs + - rtb_Gain_av) - (rtb_Y_f2 / (A380PitchNormalLaw_rtP.Gain5_Gain_d * rtb_v_target) + - A380PitchNormalLaw_rtP.Bias_Bias_a) * (rtb_Sum_ma - rtb_Divide1_e); - rtb_Y_em = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.PLUT_bp01Data_b, + rtb_Y_i = (A380PitchNormalLaw_rtP.Gain_Gain_a * A380PitchNormalLaw_rtP.Vm_currentms_Value_e * rtb_Gain1_ft + + rtb_Gain_av) - (rtb_Y_i / (A380PitchNormalLaw_rtP.Gain5_Gain_d * rtb_v_target) + + A380PitchNormalLaw_rtP.Bias_Bias_a) * (rtb_Sum_ma - rtb_Y_d); + rtb_Y_p = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.PLUT_bp01Data_b, A380PitchNormalLaw_rtP.PLUT_tableData_b, 1U); - rtb_Product1_ck = rtb_Y_f2 * rtb_Y_em; - rtb_Y_em = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.DLUT_bp01Data_h, + rtb_Product1_ck = rtb_Y_i * rtb_Y_p; + rtb_Y_p = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.DLUT_bp01Data_h, A380PitchNormalLaw_rtP.DLUT_tableData_p, 1U); - rtb_Gain1_gs = rtb_Y_f2 * rtb_Y_em * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_j; - rtb_Divide_l = (rtb_Gain1_gs - A380PitchNormalLaw_DWork.Delay_DSTATE_k) / *rtu_In_time_dt; + rtb_Gain1_ft = rtb_Y_i * rtb_Y_p * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_j; + rtb_Divide_l = (rtb_Gain1_ft - A380PitchNormalLaw_DWork.Delay_DSTATE_k) / *rtu_In_time_dt; rtb_Gain_bs = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_Gain_e * *rtu_In_V_tas_kn; - rtb_Divide_m = (rtb_Gain_bs - A380PitchNormalLaw_DWork.Delay_DSTATE_d) / *rtu_In_time_dt; - A380PitchNormalLaw_LagFilter(rtb_Divide_m, A380PitchNormalLaw_rtP.LagFilter_C1_p, rtu_In_time_dt, &rtb_Y_my, + rtb_Sum_ma = (rtb_Gain_bs - A380PitchNormalLaw_DWork.Delay_DSTATE_d) / *rtu_In_time_dt; + A380PitchNormalLaw_LagFilter(rtb_Sum_ma, A380PitchNormalLaw_rtP.LagFilter_C1_p, rtu_In_time_dt, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_LagFilter_g3); - if (rtb_Y_my > A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat_j) { - rtb_Gain_lv = A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat_j; - } else if (rtb_Y_my < A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat_e) { - rtb_Gain_lv = A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat_e; + if (rtb_Y_n > A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat_j) { + rtb_Gain_f = A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat_j; + } else if (rtb_Y_n < A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat_e) { + rtb_Gain_f = A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat_e; } else { - rtb_Gain_lv = rtb_Y_my; + rtb_Gain_f = rtb_Y_n; } - A380PitchNormalLaw_WashoutFilter(rtb_Gain5_gq, A380PitchNormalLaw_rtP.WashoutFilter_C1_n, rtu_In_time_dt, &rtb_Y_my, + A380PitchNormalLaw_WashoutFilter(rtb_Gain5_gq, A380PitchNormalLaw_rtP.WashoutFilter_C1_n, rtu_In_time_dt, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_WashoutFilter_c); - rtb_Y_em = look1_binlxpw(*rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1_n, + rtb_Y_p = look1_binlxpw(*rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1_n, A380PitchNormalLaw_rtP.ScheduledGain_Table_b, 3U); - if (rtb_Y_my > A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_g) { - rtb_Y_my = A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_g; - } else if (rtb_Y_my < A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_j) { - rtb_Y_my = A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_j; + if (rtb_Y_n > A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_g) { + rtb_Y_n = A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_g; + } else if (rtb_Y_n < A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_j) { + rtb_Y_n = A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_j; } - rtb_Product_n3 = rtb_Y_my * rtb_Y_em; + rtb_Product_n3 = rtb_Y_n * rtb_Y_p; A380PitchNormalLaw_RateLimiter_h(rtu_In_delta_eta_pos, A380PitchNormalLaw_rtP.RateLimiterVariableTs2_up_m, A380PitchNormalLaw_rtP.RateLimiterVariableTs2_lo_k, rtu_In_time_dt, A380PitchNormalLaw_rtP.RateLimiterVariableTs2_InitialCondition_f, &rtb_Sum_ma, &A380PitchNormalLaw_DWork.sf_RateLimiter_nx); - rtb_Divide_m = (*rtu_In_alpha_max - *rtu_In_alpha_prot) * rtb_Sum_ma; + rtb_y_c = (*rtu_In_alpha_max - *rtu_In_alpha_prot) * rtb_Sum_ma; if ((!A380PitchNormalLaw_DWork.pY_not_empty) || (!A380PitchNormalLaw_DWork.pU_not_empty)) { A380PitchNormalLaw_DWork.pU = *rtu_In_alpha_deg; A380PitchNormalLaw_DWork.pU_not_empty = true; @@ -1541,38 +1539,38 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In A380PitchNormalLaw_DWork.pY_not_empty = true; } - rtb_Sum10 = *rtu_In_time_dt * A380PitchNormalLaw_rtP.LagFilter1_C1; - ca = rtb_Sum10 / (rtb_Sum10 + 2.0); - A380PitchNormalLaw_DWork.pY = (2.0 - rtb_Sum10) / (rtb_Sum10 + 2.0) * A380PitchNormalLaw_DWork.pY + (*rtu_In_alpha_deg - * ca + A380PitchNormalLaw_DWork.pU * ca); + rtb_Sum_ma = *rtu_In_time_dt * A380PitchNormalLaw_rtP.LagFilter1_C1; + ca = rtb_Sum_ma / (rtb_Sum_ma + 2.0); + A380PitchNormalLaw_DWork.pY = (2.0 - rtb_Sum_ma) / (rtb_Sum_ma + 2.0) * A380PitchNormalLaw_DWork.pY + + (*rtu_In_alpha_deg * ca + A380PitchNormalLaw_DWork.pU * ca); A380PitchNormalLaw_DWork.pU = *rtu_In_alpha_deg; - rtb_Sum10 = A380PitchNormalLaw_DWork.pY - *rtu_In_alpha_prot; - ca = std::fmax(std::fmax(0.0, *rtu_In_Theta_deg - 22.5), std::fmax(0.0, (std::abs(*rtu_In_Phi_deg) - 3.0) / 6.0)); - A380PitchNormalLaw_WashoutFilter(ca, A380PitchNormalLaw_rtP.WashoutFilter_C1_b, rtu_In_time_dt, &rtb_Sum_ma, + ca = A380PitchNormalLaw_DWork.pY - *rtu_In_alpha_prot; + rtb_y = std::fmax(std::fmax(0.0, *rtu_In_Theta_deg - 22.5), std::fmax(0.0, (std::abs(*rtu_In_Phi_deg) - 3.0) / 6.0)); + A380PitchNormalLaw_WashoutFilter(rtb_y, A380PitchNormalLaw_rtP.WashoutFilter_C1_b, rtu_In_time_dt, &rtb_Sum_ma, &A380PitchNormalLaw_DWork.sf_WashoutFilter_h); - rtb_Y_f2 = (rtb_Divide_m - rtb_Sum10) - rtb_Sum_ma; - rtb_Divide_m = A380PitchNormalLaw_rtP.Subsystem1_Gain * rtb_Y_f2; - rtb_Sum10 = (rtb_Divide_m - A380PitchNormalLaw_DWork.Delay_DSTATE_f) / *rtu_In_time_dt; - rtb_Y_em = *rtu_In_time_dt * A380PitchNormalLaw_rtP.Subsystem1_C1; - rtb_Saturation_ix = rtb_Y_em + A380PitchNormalLaw_rtP.Constant_Value_f; - A380PitchNormalLaw_DWork.Delay1_DSTATE = 1.0 / rtb_Saturation_ix * (A380PitchNormalLaw_rtP.Constant_Value_f - rtb_Y_em) - * A380PitchNormalLaw_DWork.Delay1_DSTATE + (rtb_Sum10 + A380PitchNormalLaw_DWork.Delay_DSTATE_g) * (rtb_Y_em / + rtb_Y_i = (rtb_y_c - ca) - rtb_Sum_ma; + rtb_y_c = A380PitchNormalLaw_rtP.Subsystem1_Gain * rtb_Y_i; + ca = (rtb_y_c - A380PitchNormalLaw_DWork.Delay_DSTATE_f) / *rtu_In_time_dt; + rtb_Y_p = *rtu_In_time_dt * A380PitchNormalLaw_rtP.Subsystem1_C1; + rtb_Saturation_ix = rtb_Y_p + A380PitchNormalLaw_rtP.Constant_Value_f; + A380PitchNormalLaw_DWork.Delay1_DSTATE = 1.0 / rtb_Saturation_ix * (A380PitchNormalLaw_rtP.Constant_Value_f - rtb_Y_p) + * A380PitchNormalLaw_DWork.Delay1_DSTATE + (ca + A380PitchNormalLaw_DWork.Delay_DSTATE_g) * (rtb_Y_p / rtb_Saturation_ix); - rtb_alpha_err_gain = A380PitchNormalLaw_rtP.alpha_err_gain_Gain * rtb_Y_f2; - ca = A380PitchNormalLaw_rtP.Subsystem3_Gain * *rtu_In_V_ias_kn; - rtb_Divide_o2 = (ca - A380PitchNormalLaw_DWork.Delay_DSTATE_j) / *rtu_In_time_dt; + rtb_alpha_err_gain = A380PitchNormalLaw_rtP.alpha_err_gain_Gain * rtb_Y_i; + rtb_y = A380PitchNormalLaw_rtP.Subsystem3_Gain * *rtu_In_V_ias_kn; + rtb_Divide_c = (rtb_y - A380PitchNormalLaw_DWork.Delay_DSTATE_j) / *rtu_In_time_dt; rtb_Saturation_ix = *rtu_In_time_dt * A380PitchNormalLaw_rtP.Subsystem3_C1; - rtb_Y_f2 = rtb_Saturation_ix + A380PitchNormalLaw_rtP.Constant_Value_bb; - A380PitchNormalLaw_DWork.Delay1_DSTATE_i = 1.0 / rtb_Y_f2 * (A380PitchNormalLaw_rtP.Constant_Value_bb - - rtb_Saturation_ix) * A380PitchNormalLaw_DWork.Delay1_DSTATE_i + (rtb_Divide_o2 + - A380PitchNormalLaw_DWork.Delay_DSTATE_ca) * (rtb_Saturation_ix / rtb_Y_f2); + rtb_Y_i = rtb_Saturation_ix + A380PitchNormalLaw_rtP.Constant_Value_bb; + A380PitchNormalLaw_DWork.Delay1_DSTATE_i = 1.0 / rtb_Y_i * (A380PitchNormalLaw_rtP.Constant_Value_bb - + rtb_Saturation_ix) * A380PitchNormalLaw_DWork.Delay1_DSTATE_i + (rtb_Divide_c + + A380PitchNormalLaw_DWork.Delay_DSTATE_ca) * (rtb_Saturation_ix / rtb_Y_i); rtb_qk_gain = A380PitchNormalLaw_rtP.qk_gain_Gain * *rtu_In_qk_deg_s; rtb_qk_dot_gain = A380PitchNormalLaw_rtP.qk_dot_gain_Gain * *rtu_In_qk_dot_deg_s2; - rtb_Y_em = *rtu_In_high_aoa_prot_active; + rtb_Y_p = *rtu_In_high_aoa_prot_active; rtb_Sum_ma = A380PitchNormalLaw_rtP.RateLimiterVariableTs5_up * *rtu_In_time_dt; - rtb_Y_em = std::fmin(rtb_Y_em - A380PitchNormalLaw_DWork.Delay_DSTATE_e, rtb_Sum_ma); + rtb_Y_p = std::fmin(rtb_Y_p - A380PitchNormalLaw_DWork.Delay_DSTATE_e, rtb_Sum_ma); rtb_Sum_ma = *rtu_In_time_dt * A380PitchNormalLaw_rtP.RateLimiterVariableTs5_lo; - A380PitchNormalLaw_DWork.Delay_DSTATE_e += std::fmax(rtb_Y_em, rtb_Sum_ma); + A380PitchNormalLaw_DWork.Delay_DSTATE_e += std::fmax(rtb_Y_p, rtb_Sum_ma); if (A380PitchNormalLaw_DWork.Delay_DSTATE_e > A380PitchNormalLaw_rtP.Saturation_UpperSat_e) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_UpperSat_e; } else if (A380PitchNormalLaw_DWork.Delay_DSTATE_e < A380PitchNormalLaw_rtP.Saturation_LowerSat_h) { @@ -1593,8 +1591,8 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Product_k = rtb_v_target * rtb_Sum_ma; rtb_Sum1_n = A380PitchNormalLaw_rtP.Constant_Value_fe - rtb_Sum_ma; rtb_alpha_err_gain = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_Gain_m * *rtu_In_qk_deg_s; - rtb_Divide_kq = (rtb_alpha_err_gain - A380PitchNormalLaw_DWork.Delay_DSTATE_kd) / *rtu_In_time_dt; - rtb_Gain1_l = A380PitchNormalLaw_rtP.Gain1_Gain_en * *rtu_In_qk_deg_s; + rtb_Divide_ho = (rtb_alpha_err_gain - A380PitchNormalLaw_DWork.Delay_DSTATE_kd) / *rtu_In_time_dt; + rtb_Gain1_e = A380PitchNormalLaw_rtP.Gain1_Gain_en * *rtu_In_qk_deg_s; rtb_Sum_ma = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data_b, A380PitchNormalLaw_rtP.uDLookupTable_tableData_h, 6U); rtb_v_target = *rtu_In_V_tas_kn; @@ -1607,19 +1605,19 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Bias_o = rtb_Sum_ma / (A380PitchNormalLaw_rtP.Gain5_Gain_e * rtb_v_target) + A380PitchNormalLaw_rtP.Bias_Bias_f; A380PitchNormalLaw_RateLimiter_h(rtu_In_ap_theta_c_deg, A380PitchNormalLaw_rtP.RateLimiterVariableTs1_up_d, A380PitchNormalLaw_rtP.RateLimiterVariableTs1_lo_g, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs1_InitialCondition_l, &rtb_Y_em, + A380PitchNormalLaw_rtP.RateLimiterVariableTs1_InitialCondition_l, &rtb_Y_p, &A380PitchNormalLaw_DWork.sf_RateLimiter_d); rtb_uDLookupTable = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1_h, A380PitchNormalLaw_rtP.ScheduledGain_Table_j, 6U); A380PitchNormalLaw_RateLimiter_h(rtu_In_delta_eta_pos, A380PitchNormalLaw_rtP.RateLimiterVariableTs_up_n, A380PitchNormalLaw_rtP.RateLimiterVariableTs_lo_c, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition_o, &rtb_Y_my, + A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition_o, &rtb_Y_n, &A380PitchNormalLaw_DWork.sf_RateLimiter_c2); rtb_Saturation_ix = *rtu_In_delta_eta_pos - A380PitchNormalLaw_DWork.Delay_DSTATE_b; - rtb_Y_f2 = A380PitchNormalLaw_rtP.RateLimiterVariableTs3_up_i * *rtu_In_time_dt; - rtb_Saturation_ix = std::fmin(rtb_Saturation_ix, rtb_Y_f2); - rtb_Y_f2 = *rtu_In_time_dt * A380PitchNormalLaw_rtP.RateLimiterVariableTs3_lo_b; - A380PitchNormalLaw_DWork.Delay_DSTATE_b += std::fmax(rtb_Saturation_ix, rtb_Y_f2); + rtb_Y_i = A380PitchNormalLaw_rtP.RateLimiterVariableTs3_up_i * *rtu_In_time_dt; + rtb_Saturation_ix = std::fmin(rtb_Saturation_ix, rtb_Y_i); + rtb_Y_i = *rtu_In_time_dt * A380PitchNormalLaw_rtP.RateLimiterVariableTs3_lo_b; + A380PitchNormalLaw_DWork.Delay_DSTATE_b += std::fmax(rtb_Saturation_ix, rtb_Y_i); rtb_v_target = std::fmax((*rtu_In_high_speed_prot_low_kn - *rtu_In_high_speed_prot_high_kn) * A380PitchNormalLaw_DWork.Delay_DSTATE_b, 0.0) + *rtu_In_high_speed_prot_low_kn; rtb_qk_gain = A380PitchNormalLaw_rtP.Subsystem2_Gain * rtb_v_target; @@ -1630,46 +1628,45 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Sum_ma) * A380PitchNormalLaw_DWork.Delay1_DSTATE_l + (rtb_qk_dot_gain + A380PitchNormalLaw_DWork.Delay_DSTATE_gl) * (rtb_Sum_ma / rtb_Saturation_ix); rtb_Gain_ll = A380PitchNormalLaw_rtP.Subsystem_Gain * *rtu_In_V_ias_kn; - rtb_Divide_b4 = (rtb_Gain_ll - A380PitchNormalLaw_DWork.Delay_DSTATE_m) / *rtu_In_time_dt; + rtb_Divide_k = (rtb_Gain_ll - A380PitchNormalLaw_DWork.Delay_DSTATE_m) / *rtu_In_time_dt; rtb_Sum_ma = *rtu_In_time_dt * A380PitchNormalLaw_rtP.Subsystem_C1; rtb_Saturation_ix = rtb_Sum_ma + A380PitchNormalLaw_rtP.Constant_Value_jj; A380PitchNormalLaw_DWork.Delay1_DSTATE_n = 1.0 / rtb_Saturation_ix * (A380PitchNormalLaw_rtP.Constant_Value_jj - - rtb_Sum_ma) * A380PitchNormalLaw_DWork.Delay1_DSTATE_n + (rtb_Divide_b4 + A380PitchNormalLaw_DWork.Delay_DSTATE_k2) * + rtb_Sum_ma) * A380PitchNormalLaw_DWork.Delay1_DSTATE_n + (rtb_Divide_k + A380PitchNormalLaw_DWork.Delay_DSTATE_k2) * (rtb_Sum_ma / rtb_Saturation_ix); - rtb_in_rotation = *rtu_In_high_speed_prot_active; - rtb_Y_f2 = A380PitchNormalLaw_rtP.RateLimiterVariableTs4_up_b * *rtu_In_time_dt; - rtb_Saturation_ix = std::fmin(static_cast(rtb_in_rotation) - A380PitchNormalLaw_DWork.Delay_DSTATE_mz, - rtb_Y_f2); - rtb_Y_f2 = *rtu_In_time_dt * A380PitchNormalLaw_rtP.RateLimiterVariableTs4_lo_o; - A380PitchNormalLaw_DWork.Delay_DSTATE_mz += std::fmax(rtb_Saturation_ix, rtb_Y_f2); + rtb_in_flare = *rtu_In_high_speed_prot_active; + rtb_Y_i = A380PitchNormalLaw_rtP.RateLimiterVariableTs4_up_b * *rtu_In_time_dt; + rtb_Saturation_ix = std::fmin(static_cast(rtb_in_flare) - A380PitchNormalLaw_DWork.Delay_DSTATE_mz, rtb_Y_i); + rtb_Y_i = *rtu_In_time_dt * A380PitchNormalLaw_rtP.RateLimiterVariableTs4_lo_o; + A380PitchNormalLaw_DWork.Delay_DSTATE_mz += std::fmax(rtb_Saturation_ix, rtb_Y_i); if (*rtu_In_any_ap_engaged) { - rtb_Sum_ma = rtb_Y_em - *rtu_In_Theta_deg; + rtb_Sum_ma = rtb_Y_p - *rtu_In_Theta_deg; rtb_Sum_ma *= rtb_uDLookupTable; } else { - rtb_Y_em = look1_binlxpw(rtb_Y_my, A380PitchNormalLaw_rtP.Loaddemand_bp01Data, + rtb_Y_n = look1_binlxpw(rtb_Y_n, A380PitchNormalLaw_rtP.Loaddemand_bp01Data, A380PitchNormalLaw_rtP.Loaddemand_tableData, 2U); if (A380PitchNormalLaw_DWork.Delay_DSTATE_mz > A380PitchNormalLaw_rtP.Saturation_UpperSat) { - rtb_Y_my = A380PitchNormalLaw_rtP.Saturation_UpperSat; + rtb_Y_p = A380PitchNormalLaw_rtP.Saturation_UpperSat; } else if (A380PitchNormalLaw_DWork.Delay_DSTATE_mz < A380PitchNormalLaw_rtP.Saturation_LowerSat) { - rtb_Y_my = A380PitchNormalLaw_rtP.Saturation_LowerSat; + rtb_Y_p = A380PitchNormalLaw_rtP.Saturation_LowerSat; } else { - rtb_Y_my = A380PitchNormalLaw_DWork.Delay_DSTATE_mz; + rtb_Y_p = A380PitchNormalLaw_DWork.Delay_DSTATE_mz; } - if (rtb_in_rotation > A380PitchNormalLaw_rtP.Switch2_Threshold) { + if (rtb_in_flare > A380PitchNormalLaw_rtP.Switch2_Threshold) { rtb_Sum_ma = A380PitchNormalLaw_rtP.qk_dot_gain1_Gain * *rtu_In_qk_dot_deg_s2; - rtb_Y_f2 = A380PitchNormalLaw_rtP.qk_gain_HSP_Gain * *rtu_In_qk_deg_s; + rtb_Y_i = A380PitchNormalLaw_rtP.qk_gain_HSP_Gain * *rtu_In_qk_deg_s; rtb_v_target -= *rtu_In_V_ias_kn; rtb_v_target = ((((A380PitchNormalLaw_rtP.precontrol_gain_HSP_Gain * A380PitchNormalLaw_DWork.Delay1_DSTATE_l + A380PitchNormalLaw_rtP.Gain6_Gain * rtb_v_target) + A380PitchNormalLaw_rtP.v_dot_gain_HSP_Gain * - A380PitchNormalLaw_DWork.Delay1_DSTATE_n) + rtb_Y_f2) + rtb_Sum_ma) * + A380PitchNormalLaw_DWork.Delay1_DSTATE_n) + rtb_Y_i) + rtb_Sum_ma) * A380PitchNormalLaw_rtP.HSP_gain_Gain; - if (rtb_Y_em > A380PitchNormalLaw_rtP.Saturation8_UpperSat) { + if (rtb_Y_n > A380PitchNormalLaw_rtP.Saturation8_UpperSat) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation8_UpperSat; - } else if (rtb_Y_em < A380PitchNormalLaw_rtP.Saturation8_LowerSat) { + } else if (rtb_Y_n < A380PitchNormalLaw_rtP.Saturation8_LowerSat) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation8_LowerSat; } else { - rtb_Sum_ma = rtb_Y_em; + rtb_Sum_ma = rtb_Y_n; } if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation4_UpperSat) { @@ -1683,7 +1680,7 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Sum_ma = A380PitchNormalLaw_rtP.Constant1_Value_g; } - rtb_Sum_ma = (A380PitchNormalLaw_rtP.Constant_Value_m - rtb_Y_my) * rtb_Y_em + rtb_Sum_ma * rtb_Y_my; + rtb_Sum_ma = (A380PitchNormalLaw_rtP.Constant_Value_m - rtb_Y_p) * rtb_Y_n + rtb_Sum_ma * rtb_Y_p; } rtb_v_target = *rtu_In_Phi_deg; @@ -1693,20 +1690,20 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_v_target = A380PitchNormalLaw_rtP.Saturation_LowerSat_o1; } - rtb_Sum_ma = (A380PitchNormalLaw_rtP.Gain_Gain_b * A380PitchNormalLaw_rtP.Vm_currentms_Value_h * rtb_Gain1_l + + rtb_Sum_ma = (A380PitchNormalLaw_rtP.Gain_Gain_b * A380PitchNormalLaw_rtP.Vm_currentms_Value_h * rtb_Gain1_e + rtb_Gain_av) - ((rtb_Cos / std::cos(A380PitchNormalLaw_rtP.Gain1_Gain_lm * rtb_v_target) + rtb_Sum_ma) - - rtb_Divide1_e) * rtb_Bias_o; + rtb_Y_d) * rtb_Bias_o; rtb_Saturation_ix = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.PLUT_bp01Data_f, A380PitchNormalLaw_rtP.PLUT_tableData_k, 1U); - rtb_Y_my = rtb_Sum_ma * rtb_Saturation_ix; + rtb_Y_p = rtb_Sum_ma * rtb_Saturation_ix; rtb_Saturation_ix = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.DLUT_bp01Data_m, A380PitchNormalLaw_rtP.DLUT_tableData_a, 1U); rtb_Cos = rtb_Sum_ma * rtb_Saturation_ix * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_b; rtb_v_target = (rtb_Cos - A380PitchNormalLaw_DWork.Delay_DSTATE_jh) / *rtu_In_time_dt; - rtb_Y_em = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_Gain_c * *rtu_In_V_tas_kn; + rtb_Y_n = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_Gain_c * *rtu_In_V_tas_kn; rtb_Sum_ma = A380PitchNormalLaw_DWork.Delay_DSTATE_dy; - rtb_Y_f2 = (rtb_Y_em - A380PitchNormalLaw_DWork.Delay_DSTATE_dy) / *rtu_In_time_dt; - A380PitchNormalLaw_LagFilter(rtb_Y_f2, A380PitchNormalLaw_rtP.LagFilter_C1_pt, rtu_In_time_dt, &rtb_Sum_ma, + rtb_Y_i = (rtb_Y_n - A380PitchNormalLaw_DWork.Delay_DSTATE_dy) / *rtu_In_time_dt; + A380PitchNormalLaw_LagFilter(rtb_Y_i, A380PitchNormalLaw_rtP.LagFilter_C1_pt, rtu_In_time_dt, &rtb_Sum_ma, &A380PitchNormalLaw_DWork.sf_LagFilter_i); if (rtb_Sum_ma > A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat_b) { rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat_b; @@ -1714,7 +1711,7 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat_m; } - rtb_Y_f2 = A380PitchNormalLaw_rtP.Gain_Gain_f * rtb_Sum_ma; + rtb_Y_i = A380PitchNormalLaw_rtP.Gain_Gain_f * rtb_Sum_ma; A380PitchNormalLaw_WashoutFilter(rtb_Gain5_gq, A380PitchNormalLaw_rtP.WashoutFilter_C1_l, rtu_In_time_dt, &rtb_Sum_ma, &A380PitchNormalLaw_DWork.sf_WashoutFilter_l); rtb_Saturation_ix = look1_binlxpw(*rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1_c, @@ -1725,33 +1722,33 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_jl; } - rtb_v_target = (((A380PitchNormalLaw_rtP.Gain3_Gain_c * rtb_Divide_kq + rtb_Y_my) + rtb_v_target) + rtb_Y_f2) + + rtb_v_target = (((A380PitchNormalLaw_rtP.Gain3_Gain_c * rtb_Divide_ho + rtb_Y_p) + rtb_v_target) + rtb_Y_i) + rtb_Sum_ma * rtb_Saturation_ix; - rtb_Y_my = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_Gain_c * *rtu_In_qk_deg_s; - rtb_Y_f2 = (rtb_Y_my - A380PitchNormalLaw_DWork.Delay_DSTATE_e5) / *rtu_In_time_dt; - rtb_Divide_kq = A380PitchNormalLaw_rtP.Gain1_Gain_b * *rtu_In_qk_deg_s; + rtb_Y_p = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_Gain_c * *rtu_In_qk_deg_s; + rtb_Y_i = (rtb_Y_p - A380PitchNormalLaw_DWork.Delay_DSTATE_e5) / *rtu_In_time_dt; + rtb_Divide_ho = A380PitchNormalLaw_rtP.Gain1_Gain_b * *rtu_In_qk_deg_s; rtb_Sum_ma = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data_a, A380PitchNormalLaw_rtP.uDLookupTable_tableData_p, 6U); - rtb_Gain1_l = *rtu_In_V_tas_kn; - if (rtb_Gain1_l > A380PitchNormalLaw_rtP.Saturation3_UpperSat_n) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation3_UpperSat_n; - } else if (rtb_Gain1_l < A380PitchNormalLaw_rtP.Saturation3_LowerSat_a) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation3_LowerSat_a; + rtb_Gain1_e = *rtu_In_V_tas_kn; + if (rtb_Gain1_e > A380PitchNormalLaw_rtP.Saturation3_UpperSat_n) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation3_UpperSat_n; + } else if (rtb_Gain1_e < A380PitchNormalLaw_rtP.Saturation3_LowerSat_a) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation3_LowerSat_a; } - rtb_Sum_ma = (A380PitchNormalLaw_rtP.Gain_Gain_p * A380PitchNormalLaw_rtP.Vm_currentms_Value_p * rtb_Divide_kq + - rtb_Gain_av) - (rtb_Sum_ma / (A380PitchNormalLaw_rtP.Gain5_Gain_n * rtb_Gain1_l) + - A380PitchNormalLaw_rtP.Bias_Bias_ai) * (rtb_Y_d - rtb_Divide1_e); + rtb_Sum_ma = (A380PitchNormalLaw_rtP.Gain_Gain_p * A380PitchNormalLaw_rtP.Vm_currentms_Value_p * rtb_Divide_ho + + rtb_Gain_av) - (rtb_Sum_ma / (A380PitchNormalLaw_rtP.Gain5_Gain_n * rtb_Gain1_e) + + A380PitchNormalLaw_rtP.Bias_Bias_ai) * (rtb_Y_je - rtb_Y_d); rtb_Saturation_ix = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.PLUT_bp01Data_a, A380PitchNormalLaw_rtP.PLUT_tableData_o, 1U); rtb_Bias_o = rtb_Sum_ma * rtb_Saturation_ix; rtb_Saturation_ix = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.DLUT_bp01Data_k, A380PitchNormalLaw_rtP.DLUT_tableData_e, 1U); - rtb_Y_d = rtb_Sum_ma * rtb_Saturation_ix * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_p; - rtb_uDLookupTable = (rtb_Y_d - A380PitchNormalLaw_DWork.Delay_DSTATE_gz) / *rtu_In_time_dt; - rtb_Divide_kq = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_Gain_a * *rtu_In_V_tas_kn; + rtb_Y_je = rtb_Sum_ma * rtb_Saturation_ix * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_p; + rtb_uDLookupTable = (rtb_Y_je - A380PitchNormalLaw_DWork.Delay_DSTATE_gz) / *rtu_In_time_dt; + rtb_Divide_ho = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_Gain_a * *rtu_In_V_tas_kn; rtb_Sum_ma = A380PitchNormalLaw_DWork.Delay_DSTATE_lf; - rtb_Saturation_ix = (rtb_Divide_kq - A380PitchNormalLaw_DWork.Delay_DSTATE_lf) / *rtu_In_time_dt; + rtb_Saturation_ix = (rtb_Divide_ho - A380PitchNormalLaw_DWork.Delay_DSTATE_lf) / *rtu_In_time_dt; A380PitchNormalLaw_LagFilter(rtb_Saturation_ix, A380PitchNormalLaw_rtP.LagFilter_C1_l, rtu_In_time_dt, &rtb_Sum_ma, &A380PitchNormalLaw_DWork.sf_LagFilter_g); if (rtb_Sum_ma > A380PitchNormalLaw_rtP.SaturationV_dot_UpperSat_m) { @@ -1765,20 +1762,20 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In &A380PitchNormalLaw_DWork.sf_WashoutFilter_d); rtb_Saturation_ix = look1_binlxpw(*rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1_f, A380PitchNormalLaw_rtP.ScheduledGain_Table_h, 3U); - rtb_Gain1_l = (((A380PitchNormalLaw_rtP.Gain3_Gain_m * rtb_Divide_cq + rtb_Product1_ck) + rtb_Divide_l) + - A380PitchNormalLaw_rtP.Gain_Gain_j * rtb_Gain_lv) + rtb_Product_n3; + rtb_Gain1_e = (((A380PitchNormalLaw_rtP.Gain3_Gain_m * rtb_Divide_cq + rtb_Product1_ck) + rtb_Divide_l) + + A380PitchNormalLaw_rtP.Gain_Gain_j * rtb_Gain_f) + rtb_Product_n3; if (rtb_Sum_ma > A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_h) { rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_h; } else if (rtb_Sum_ma < A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_l) { rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_l; } - rtb_Sum_ma = (((A380PitchNormalLaw_rtP.Gain3_Gain_b * rtb_Y_f2 + rtb_Bias_o) + rtb_uDLookupTable) + rtb_Gain_nu) + + rtb_Sum_ma = (((A380PitchNormalLaw_rtP.Gain3_Gain_b * rtb_Y_i + rtb_Bias_o) + rtb_uDLookupTable) + rtb_Gain_nu) + rtb_Sum_ma * rtb_Saturation_ix; - if (rtb_Gain1_l > A380PitchNormalLaw_rtP.Saturation_UpperSat_hc) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation_UpperSat_hc; - } else if (rtb_Gain1_l < A380PitchNormalLaw_rtP.Saturation_LowerSat_a) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation_LowerSat_a; + if (rtb_Gain1_e > A380PitchNormalLaw_rtP.Saturation_UpperSat_hc) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation_UpperSat_hc; + } else if (rtb_Gain1_e < A380PitchNormalLaw_rtP.Saturation_LowerSat_a) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation_LowerSat_a; } if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation_UpperSat_k) { @@ -1793,38 +1790,38 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_LowerSat_d; } - A380PitchNormalLaw_VoterAttitudeProtection(rtb_Gain1_l, rtb_Product_k + rtb_Sum1_n * rtb_v_target, rtb_Sum_ma, - &rtb_Y_f2); + A380PitchNormalLaw_VoterAttitudeProtection(rtb_Gain1_e, rtb_Product_k + rtb_Sum1_n * rtb_v_target, rtb_Sum_ma, + &rtb_Y_i); rtb_Divide_cq = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs1_Gain_k * *rtu_In_qk_deg_s; rtb_Product1_ck = (rtb_Divide_cq - A380PitchNormalLaw_DWork.Delay_DSTATE_h) / *rtu_In_time_dt; rtb_Divide_l = A380PitchNormalLaw_rtP.Gain1_Gain_lk * *rtu_In_qk_deg_s; rtb_Sum_ma = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data_m, A380PitchNormalLaw_rtP.uDLookupTable_tableData_a, 6U); rtb_v_target = *rtu_In_V_tas_kn; - rtb_Gain1_l = A380PitchNormalLaw_rtP.Gain3_Gain_g * A380PitchNormalLaw_rtP.Theta_max3_Value - rtb_Y_i; - if (rtb_Gain1_l > A380PitchNormalLaw_rtP.Saturation2_UpperSat) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation2_UpperSat; - } else if (rtb_Gain1_l < A380PitchNormalLaw_rtP.Saturation2_LowerSat) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation2_LowerSat; - } - + rtb_Gain1_e = A380PitchNormalLaw_rtP.Gain3_Gain_g * A380PitchNormalLaw_rtP.Theta_max3_Value - rtb_Loaddemand2; if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation3_UpperSat_e) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation3_UpperSat_e; } else if (rtb_v_target < A380PitchNormalLaw_rtP.Saturation3_LowerSat_k) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation3_LowerSat_k; } + if (rtb_Gain1_e > A380PitchNormalLaw_rtP.Saturation2_UpperSat) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation2_UpperSat; + } else if (rtb_Gain1_e < A380PitchNormalLaw_rtP.Saturation2_LowerSat) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation2_LowerSat; + } + rtb_Sum_ma = (A380PitchNormalLaw_rtP.Gain_Gain_jq * A380PitchNormalLaw_rtP.Vm_currentms_Value_b * rtb_Divide_l + rtb_Gain_av) - (rtb_Sum_ma / (A380PitchNormalLaw_rtP.Gain5_Gain_m * rtb_v_target) + - A380PitchNormalLaw_rtP.Bias_Bias_m) * ((rtb_Divide1_e + look1_binlxpw(rtb_Gain1_l, - A380PitchNormalLaw_rtP.Loaddemand2_bp01Data, A380PitchNormalLaw_rtP.Loaddemand2_tableData, 2U)) - rtb_Divide1_e); + A380PitchNormalLaw_rtP.Bias_Bias_m) * ((rtb_Y_d + look1_binlxpw(rtb_Gain1_e, + A380PitchNormalLaw_rtP.Loaddemand2_bp01Data, A380PitchNormalLaw_rtP.Loaddemand2_tableData, 2U)) - rtb_Y_d); rtb_Saturation_ix = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.PLUT_bp01Data_e, A380PitchNormalLaw_rtP.PLUT_tableData_g, 1U); - rtb_Y_i = rtb_Sum_ma * rtb_Saturation_ix; + rtb_Y_d = rtb_Sum_ma * rtb_Saturation_ix; rtb_Saturation_ix = look1_binlxpw(*rtu_In_V_tas_kn, A380PitchNormalLaw_rtP.DLUT_bp01Data_hw, A380PitchNormalLaw_rtP.DLUT_tableData_l, 1U); - rtb_Divide1_e = rtb_Sum_ma * rtb_Saturation_ix * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_c; - rtb_Divide_l = (rtb_Divide1_e - A380PitchNormalLaw_DWork.Delay_DSTATE_ds) / *rtu_In_time_dt; + rtb_Loaddemand2 = rtb_Sum_ma * rtb_Saturation_ix * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_c; + rtb_Divide_l = (rtb_Loaddemand2 - A380PitchNormalLaw_DWork.Delay_DSTATE_ds) / *rtu_In_time_dt; rtb_Gain_av = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs2_Gain_p * *rtu_In_V_tas_kn; rtb_Sum_ma = A380PitchNormalLaw_DWork.Delay_DSTATE_jt; rtb_v_target = (rtb_Gain_av - A380PitchNormalLaw_DWork.Delay_DSTATE_jt) / *rtu_In_time_dt; @@ -1836,20 +1833,20 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationV_dot_LowerSat_n; } - rtb_Gain_lv = A380PitchNormalLaw_rtP.Gain_Gain_l0 * rtb_Sum_ma; + rtb_Gain_f = A380PitchNormalLaw_rtP.Gain_Gain_l0 * rtb_Sum_ma; A380PitchNormalLaw_WashoutFilter(rtb_Gain5_gq, A380PitchNormalLaw_rtP.WashoutFilter_C1_j, rtu_In_time_dt, &rtb_Sum_ma, &A380PitchNormalLaw_DWork.sf_WashoutFilter); rtb_Saturation_ix = look1_binlxpw(*rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1_b, A380PitchNormalLaw_rtP.ScheduledGain_Table_e, 3U); rtb_v_target = (((A380PitchNormalLaw_rtP.Gain3_Gain * rtb_Divide + rtb_Product1_dm) + rtb_Divide_o) + - A380PitchNormalLaw_rtP.Gain_Gain_l * rtb_Divide_a0) + rtb_Product_kz; + A380PitchNormalLaw_rtP.Gain_Gain_l * rtb_Divide_bq) + rtb_Product_kz; if (rtb_Sum_ma > A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_m) { rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationSpoilers_UpperSat_m; } else if (rtb_Sum_ma < A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_d) { rtb_Sum_ma = A380PitchNormalLaw_rtP.SaturationSpoilers_LowerSat_d; } - rtb_Gain1_l = (((A380PitchNormalLaw_rtP.Gain3_Gain_n * rtb_Product1_ck + rtb_Y_i) + rtb_Divide_l) + rtb_Gain_lv) + + rtb_Gain1_e = (((A380PitchNormalLaw_rtP.Gain3_Gain_n * rtb_Product1_ck + rtb_Y_d) + rtb_Divide_l) + rtb_Gain_f) + rtb_Sum_ma * rtb_Saturation_ix; if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation_UpperSat_h) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation_UpperSat_h; @@ -1857,25 +1854,25 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In rtb_v_target = A380PitchNormalLaw_rtP.Saturation_LowerSat_o; } - if (rtb_Gain1_l > A380PitchNormalLaw_rtP.Saturation_UpperSat_a) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation_UpperSat_a; - } else if (rtb_Gain1_l < A380PitchNormalLaw_rtP.Saturation_LowerSat_k) { - rtb_Gain1_l = A380PitchNormalLaw_rtP.Saturation_LowerSat_k; + if (rtb_Gain1_e > A380PitchNormalLaw_rtP.Saturation_UpperSat_a) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation_UpperSat_a; + } else if (rtb_Gain1_e < A380PitchNormalLaw_rtP.Saturation_LowerSat_k) { + rtb_Gain1_e = A380PitchNormalLaw_rtP.Saturation_LowerSat_k; } - A380PitchNormalLaw_VoterAttitudeProtection(rtb_v_target, rtb_Y_f2, rtb_Gain1_l, &rtb_Saturation_ix); + A380PitchNormalLaw_VoterAttitudeProtection(rtb_v_target, rtb_Y_i, rtb_Gain1_e, &rtb_Saturation_ix); rtb_Sum_ma = look1_binlxpw(*rtu_In_V_ias_kn, A380PitchNormalLaw_rtP.ScheduledGain1_BreakpointsForDimension1, A380PitchNormalLaw_rtP.ScheduledGain1_Table, 4U); - rtb_Divide = rtb_Saturation_ix * rtb_Sum_ma; + rtb_Y_d = rtb_Saturation_ix * rtb_Sum_ma; rtb_Sum_ma = look1_binlxpw(*rtu_In_time_dt, A380PitchNormalLaw_rtP.ScheduledGain_BreakpointsForDimension1_d, A380PitchNormalLaw_rtP.ScheduledGain_Table_hh, 4U); - rtb_Sum_ma = rtb_Divide * rtb_Sum_ma * A380PitchNormalLaw_rtP.DiscreteTimeIntegratorVariableTs_Gain * *rtu_In_time_dt; - rtb_OR = ((rtb_Y_o2 == 0.0) || (rtb_Gain1 == A380PitchNormalLaw_rtP.CompareToConstant_const) || - (*rtu_In_tracking_mode_on)); - rtb_Divide = *rtu_In_eta_deg - rtb_Sum_ma; - A380PitchNormalLaw_DWork.icLoad = (rtb_OR || A380PitchNormalLaw_DWork.icLoad); + rtb_Sum_ma = rtb_Y_d * rtb_Sum_ma * A380PitchNormalLaw_rtP.DiscreteTimeIntegratorVariableTs_Gain * *rtu_In_time_dt; + rtb_Y_d = *rtu_In_eta_deg - rtb_Sum_ma; + rtb_AND = ((rtb_Y_ej == 0.0) || (rtb_ManualSwitch == A380PitchNormalLaw_rtP.CompareToConstant_const) || + (*rtu_In_tracking_mode_on)); + A380PitchNormalLaw_DWork.icLoad = (rtb_AND || A380PitchNormalLaw_DWork.icLoad); if (A380PitchNormalLaw_DWork.icLoad) { - A380PitchNormalLaw_DWork.Delay_DSTATE_o = rtb_Divide; + A380PitchNormalLaw_DWork.Delay_DSTATE_o = rtb_Y_d; } A380PitchNormalLaw_DWork.Delay_DSTATE_o += rtb_Sum_ma; @@ -1886,13 +1883,13 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In A380PitchNormalLaw_DWork.Delay_DSTATE_o = A380PitchNormalLaw_rtP.DiscreteTimeIntegratorVariableTs_LowerLimit; } - if (rtb_eta_trim_deg_should_freeze == A380PitchNormalLaw_rtP.CompareToConstant_const_d) { + if (rtb_NOT == A380PitchNormalLaw_rtP.CompareToConstant_const_d) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Constant_Value_b; } else { rtb_Sum_ma = A380PitchNormalLaw_DWork.Delay_DSTATE_o; } - rtb_Sum_ma *= A380PitchNormalLaw_rtP.Gain_Gain_c; + rtb_Sum_ma *= A380PitchNormalLaw_rtP.Gain_Gain_cy; if (rtb_Sum_ma > rtb_eta_trim_deg_rate_limit_up_deg_s) { *rty_Out_eta_trim_dot_deg_s = rtb_eta_trim_deg_rate_limit_up_deg_s; } else if (rtb_Sum_ma < rtb_eta_trim_deg_rate_limit_lo_deg_s) { @@ -1901,57 +1898,57 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In *rty_Out_eta_trim_dot_deg_s = rtb_Sum_ma; } - if (rtb_Y_o2 > A380PitchNormalLaw_rtP.Saturation_UpperSat_l) { + if (rtb_Y_ej > A380PitchNormalLaw_rtP.Saturation_UpperSat_l) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_UpperSat_l; - } else if (rtb_Y_o2 < A380PitchNormalLaw_rtP.Saturation_LowerSat_kp) { + } else if (rtb_Y_ej < A380PitchNormalLaw_rtP.Saturation_LowerSat_kp) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_LowerSat_kp; } else { - rtb_Sum_ma = rtb_Y_o2; + rtb_Sum_ma = rtb_Y_ej; } - rtb_Divide = A380PitchNormalLaw_DWork.Delay_DSTATE_o * rtb_Sum_ma; - rtb_Product1_dm = A380PitchNormalLaw_rtP.Constant_Value_o1 - rtb_Sum_ma; + rtb_Product1_dm = A380PitchNormalLaw_DWork.Delay_DSTATE_o * rtb_Sum_ma; + rtb_Divide = A380PitchNormalLaw_rtP.Constant_Value_o1 - rtb_Sum_ma; A380PitchNormalLaw_RateLimiter_h(rtu_In_delta_eta_pos, A380PitchNormalLaw_rtP.RateLimiterVariableTs_up_na, A380PitchNormalLaw_rtP.RateLimiterVariableTs_lo_i, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition_m, &rtb_Y_i, + A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition_m, &rtb_Y_d, &A380PitchNormalLaw_DWork.sf_RateLimiter_ct); rtb_Sum_ma = look2_binlxpw(*rtu_In_Theta_deg, *rtu_In_H_radio_ft, A380PitchNormalLaw_rtP.uDLookupTable_bp01Data_l, A380PitchNormalLaw_rtP.uDLookupTable_bp02Data, A380PitchNormalLaw_rtP.uDLookupTable_tableData_e5, A380PitchNormalLaw_rtP.uDLookupTable_maxIndex, 5U); rtb_Saturation_ix = *rtu_In_tailstrike_protection_on; - if (rtb_Y_i > A380PitchNormalLaw_rtP.Saturation3_UpperSat_l) { - rtb_Y_f2 = A380PitchNormalLaw_rtP.Saturation3_UpperSat_l; - } else if (rtb_Y_i < A380PitchNormalLaw_rtP.Saturation3_LowerSat_h) { - rtb_Y_f2 = A380PitchNormalLaw_rtP.Saturation3_LowerSat_h; + if (rtb_Y_d > A380PitchNormalLaw_rtP.Saturation3_UpperSat_l) { + rtb_Y_i = A380PitchNormalLaw_rtP.Saturation3_UpperSat_l; + } else if (rtb_Y_d < A380PitchNormalLaw_rtP.Saturation3_LowerSat_h) { + rtb_Y_i = A380PitchNormalLaw_rtP.Saturation3_LowerSat_h; } else { - rtb_Y_f2 = rtb_Y_i; + rtb_Y_i = rtb_Y_d; } - rtb_Sum_ma = look1_binlxpw(rtb_Saturation_ix * rtb_Sum_ma * rtb_Y_f2 + rtb_Y_i, + rtb_Sum_ma = look1_binlxpw(rtb_Saturation_ix * rtb_Sum_ma * rtb_Y_i + rtb_Y_d, A380PitchNormalLaw_rtP.PitchRateDemand_bp01Data, A380PitchNormalLaw_rtP.PitchRateDemand_tableData, 2U); rtb_eta_trim_deg_rate_limit_up_deg_s = A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_j3 * rtb_Sum_ma; - rtb_Y_i = (rtb_eta_trim_deg_rate_limit_up_deg_s - A380PitchNormalLaw_DWork.Delay_DSTATE_ej) / *rtu_In_time_dt; + rtb_Y_d = (rtb_eta_trim_deg_rate_limit_up_deg_s - A380PitchNormalLaw_DWork.Delay_DSTATE_ej) / *rtu_In_time_dt; rtb_Saturation_ix = *rtu_In_qk_deg_s - rtb_Sum_ma; rtb_Divide_o = A380PitchNormalLaw_rtP.Gain_Gain_pt * rtb_Saturation_ix; rtb_eta_trim_deg_rate_limit_lo_deg_s = A380PitchNormalLaw_rtP.Gain1_Gain_d * rtb_Saturation_ix * A380PitchNormalLaw_rtP.DiscreteDerivativeVariableTs_Gain_g; rtb_Saturation_ix = A380PitchNormalLaw_DWork.Delay_DSTATE_e4; - rtb_Divide_a0 = (rtb_eta_trim_deg_rate_limit_lo_deg_s - A380PitchNormalLaw_DWork.Delay_DSTATE_e4) / *rtu_In_time_dt; + rtb_Divide_bq = (rtb_eta_trim_deg_rate_limit_lo_deg_s - A380PitchNormalLaw_DWork.Delay_DSTATE_e4) / *rtu_In_time_dt; rtb_Gain5_gq = A380PitchNormalLaw_rtP.Gain5_Gain_h * *rtu_In_qk_dot_deg_s2; rtb_Gain5_gq += *rtu_In_qk_deg_s; A380PitchNormalLaw_LagFilter(rtb_Gain5_gq, A380PitchNormalLaw_rtP.LagFilter_C1_k, rtu_In_time_dt, &rtb_Saturation_ix, &A380PitchNormalLaw_DWork.sf_LagFilter_f); rtb_Gain5_gq = A380PitchNormalLaw_rtP.Gain6_Gain_g * *rtu_In_qk_dot_deg_s2; - rtb_Y_i = (((rtb_Divide_o + rtb_Divide_a0) * A380PitchNormalLaw_rtP.Gain1_Gain_a + A380PitchNormalLaw_rtP.Gain3_Gain_e - * rtb_Y_i) + (rtb_Saturation_ix - rtb_Sum_ma) * A380PitchNormalLaw_rtP.Gain4_Gain) + rtb_Gain5_gq; + rtb_Y_d = (((rtb_Divide_o + rtb_Divide_bq) * A380PitchNormalLaw_rtP.Gain1_Gain_a + A380PitchNormalLaw_rtP.Gain3_Gain_e + * rtb_Y_d) + (rtb_Saturation_ix - rtb_Sum_ma) * A380PitchNormalLaw_rtP.Gain4_Gain) + rtb_Gain5_gq; rtb_Sum_ma = look1_binlxpw(*rtu_In_V_ias_kn, A380PitchNormalLaw_rtP.ScheduledGain1_BreakpointsForDimension1_h, A380PitchNormalLaw_rtP.ScheduledGain1_Table_c, 4U); - rtb_Sum_ma = (A380PitchNormalLaw_rtP.Constant2_Value_k - rtb_Y_o2) * (rtb_Y_i * rtb_Sum_ma) * + rtb_Sum_ma = (A380PitchNormalLaw_rtP.Constant2_Value_k - rtb_Y_ej) * (rtb_Y_d * rtb_Sum_ma) * A380PitchNormalLaw_rtP.DiscreteTimeIntegratorVariableTs_Gain_j * *rtu_In_time_dt; - rtb_eta_trim_deg_should_freeze = (*rtu_In_delta_eta_pos <= A380PitchNormalLaw_rtP.Constant_Value_o); - rtb_eta_trim_deg_should_freeze = (rtb_eta_trim_deg_should_freeze && (*rtu_In_on_ground)); - rtb_eta_trim_deg_should_freeze = (rtb_eta_trim_deg_should_freeze || (rtb_Y_bc == 0.0) || (*rtu_In_tracking_mode_on)); - A380PitchNormalLaw_DWork.icLoad_p = (rtb_eta_trim_deg_should_freeze || A380PitchNormalLaw_DWork.icLoad_p); + rtb_NOT = (*rtu_In_delta_eta_pos <= A380PitchNormalLaw_rtP.Constant_Value_o); + rtb_NOT = (rtb_NOT && (*rtu_In_on_ground)); + rtb_NOT = (rtb_NOT || (rtb_Y_mt == 0.0) || (*rtu_In_tracking_mode_on)); + A380PitchNormalLaw_DWork.icLoad_p = (rtb_NOT || A380PitchNormalLaw_DWork.icLoad_p); if (A380PitchNormalLaw_DWork.icLoad_p) { A380PitchNormalLaw_DWork.Delay_DSTATE_cl = A380PitchNormalLaw_rtP.Constant_Value_jk - rtb_Sum_ma; } @@ -1965,50 +1962,50 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In } if (*rtu_In_on_ground) { - if (rtb_Gain_cb > A380PitchNormalLaw_rtP.Saturation_UpperSat_f) { + if (rtb_Gain > A380PitchNormalLaw_rtP.Saturation_UpperSat_f) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_UpperSat_f; - } else if (rtb_Gain_cb < A380PitchNormalLaw_rtP.Saturation_LowerSat_p) { + } else if (rtb_Gain < A380PitchNormalLaw_rtP.Saturation_LowerSat_p) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_LowerSat_p; } else { - rtb_Sum_ma = rtb_Gain_cb; + rtb_Sum_ma = rtb_Gain; } } else { rtb_Sum_ma = A380PitchNormalLaw_rtP.Constant1_Value_h; } - rtb_Y_o2 = A380PitchNormalLaw_DWork.Delay_DSTATE_cl + rtb_Sum_ma; - if (rtb_Y_bc > A380PitchNormalLaw_rtP.Saturation_UpperSat_m) { + rtb_Y_ej = A380PitchNormalLaw_DWork.Delay_DSTATE_cl + rtb_Sum_ma; + if (rtb_Y_mt > A380PitchNormalLaw_rtP.Saturation_UpperSat_m) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_UpperSat_m; - } else if (rtb_Y_bc < A380PitchNormalLaw_rtP.Saturation_LowerSat_b) { + } else if (rtb_Y_mt < A380PitchNormalLaw_rtP.Saturation_LowerSat_b) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_LowerSat_b; } else { - rtb_Sum_ma = rtb_Y_bc; + rtb_Sum_ma = rtb_Y_mt; } - rtb_Gain_cb = (A380PitchNormalLaw_rtP.Constant_Value_h - rtb_Sum_ma) * rtb_Gain_cb + rtb_Y_o2 * rtb_Sum_ma; - if (rtb_Gain1 > A380PitchNormalLaw_rtP.Saturation_UpperSat_p) { + rtb_Gain = (A380PitchNormalLaw_rtP.Constant_Value_h - rtb_Sum_ma) * rtb_Gain + rtb_Y_ej * rtb_Sum_ma; + if (rtb_ManualSwitch > A380PitchNormalLaw_rtP.Saturation_UpperSat_p) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_UpperSat_p; - } else if (rtb_Gain1 < A380PitchNormalLaw_rtP.Saturation_LowerSat_hs) { + } else if (rtb_ManualSwitch < A380PitchNormalLaw_rtP.Saturation_LowerSat_hs) { rtb_Sum_ma = A380PitchNormalLaw_rtP.Saturation_LowerSat_hs; } else { - rtb_Sum_ma = rtb_Gain1; + rtb_Sum_ma = rtb_ManualSwitch; } A380PitchNormalLaw_RateLimiter_h(rtu_In_delta_eta_pos, A380PitchNormalLaw_rtP.RateLimiterVariableTs_up_i, A380PitchNormalLaw_rtP.RateLimiterVariableTs_lo_f, rtu_In_time_dt, - A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition_c, &rtb_Y_f2, + A380PitchNormalLaw_rtP.RateLimiterVariableTs_InitialCondition_c, &rtb_Y_i, &A380PitchNormalLaw_DWork.sf_RateLimiter_h); - rtb_Gain1 = A380PitchNormalLaw_rtP.Gain1_Gain_h * *rtu_In_qk_deg_s; - rtb_Y_bc = *rtu_In_nz_g + A380PitchNormalLaw_rtP.Bias_Bias_d; - rtb_v_target = A380PitchNormalLaw_rtP.Gain2_Gain_n * rtb_Y_bc + rtb_Gain1; + rtb_ManualSwitch = A380PitchNormalLaw_rtP.Gain1_Gain_h * *rtu_In_qk_deg_s; + rtb_Y_mt = *rtu_In_nz_g + A380PitchNormalLaw_rtP.Bias_Bias_d; + rtb_v_target = A380PitchNormalLaw_rtP.Gain2_Gain_n * rtb_Y_mt + rtb_ManualSwitch; if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation_UpperSat_g) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation_UpperSat_g; } else if (rtb_v_target < A380PitchNormalLaw_rtP.Saturation_LowerSat_kf) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation_LowerSat_kf; } - rtb_v_target = (A380PitchNormalLaw_rtP.Gain_Gain_m * rtb_Y_f2 + rtb_v_target) * rtb_Sum_ma + (rtb_Product1_dm * - rtb_Gain_cb + rtb_Divide) * (A380PitchNormalLaw_rtP.Constant_Value_fw - rtb_Sum_ma); + rtb_v_target = (A380PitchNormalLaw_rtP.Gain_Gain_m * rtb_Y_i + rtb_v_target) * rtb_Sum_ma + (rtb_Divide * rtb_Gain + + rtb_Product1_dm) * (A380PitchNormalLaw_rtP.Constant_Value_fw - rtb_Sum_ma); if (rtb_v_target > A380PitchNormalLaw_rtP.Saturation_UpperSat_kp) { rtb_v_target = A380PitchNormalLaw_rtP.Saturation_UpperSat_kp; } else if (rtb_v_target < A380PitchNormalLaw_rtP.Saturation_LowerSat_a4) { @@ -2018,28 +2015,28 @@ void A380PitchNormalLaw::step(const real_T *rtu_In_time_dt, const real_T *rtu_In A380PitchNormalLaw_RateLimiter(rtb_v_target, A380PitchNormalLaw_rtP.RateLimitereta_up, A380PitchNormalLaw_rtP.RateLimitereta_lo, rtu_In_time_dt, A380PitchNormalLaw_rtP.RateLimitereta_InitialCondition, rty_Out_eta_deg, &A380PitchNormalLaw_DWork.sf_RateLimiter_b); - A380PitchNormalLaw_DWork.Delay_DSTATE = rtb_ManualSwitch; - A380PitchNormalLaw_DWork.Delay_DSTATE_n = rtb_Gain1_h; + A380PitchNormalLaw_DWork.Delay_DSTATE = rtb_Gain1; + A380PitchNormalLaw_DWork.Delay_DSTATE_n = rtb_Gain_px; A380PitchNormalLaw_DWork.Delay_DSTATE_c = rtb_Gain_ot; A380PitchNormalLaw_DWork.Delay_DSTATE_l = rtb_Divide_an; - A380PitchNormalLaw_DWork.Delay_DSTATE_k = rtb_Gain1_gs; + A380PitchNormalLaw_DWork.Delay_DSTATE_k = rtb_Gain1_ft; A380PitchNormalLaw_DWork.Delay_DSTATE_d = rtb_Gain_bs; - A380PitchNormalLaw_DWork.Delay_DSTATE_f = rtb_Divide_m; - A380PitchNormalLaw_DWork.Delay_DSTATE_g = rtb_Sum10; - A380PitchNormalLaw_DWork.Delay_DSTATE_j = ca; - A380PitchNormalLaw_DWork.Delay_DSTATE_ca = rtb_Divide_o2; + A380PitchNormalLaw_DWork.Delay_DSTATE_f = rtb_y_c; + A380PitchNormalLaw_DWork.Delay_DSTATE_g = ca; + A380PitchNormalLaw_DWork.Delay_DSTATE_j = rtb_y; + A380PitchNormalLaw_DWork.Delay_DSTATE_ca = rtb_Divide_c; A380PitchNormalLaw_DWork.Delay_DSTATE_kd = rtb_alpha_err_gain; A380PitchNormalLaw_DWork.Delay_DSTATE_ku = rtb_qk_gain; A380PitchNormalLaw_DWork.Delay_DSTATE_gl = rtb_qk_dot_gain; A380PitchNormalLaw_DWork.Delay_DSTATE_m = rtb_Gain_ll; - A380PitchNormalLaw_DWork.Delay_DSTATE_k2 = rtb_Divide_b4; + A380PitchNormalLaw_DWork.Delay_DSTATE_k2 = rtb_Divide_k; A380PitchNormalLaw_DWork.Delay_DSTATE_jh = rtb_Cos; - A380PitchNormalLaw_DWork.Delay_DSTATE_dy = rtb_Y_em; - A380PitchNormalLaw_DWork.Delay_DSTATE_e5 = rtb_Y_my; - A380PitchNormalLaw_DWork.Delay_DSTATE_gz = rtb_Y_d; - A380PitchNormalLaw_DWork.Delay_DSTATE_lf = rtb_Divide_kq; + A380PitchNormalLaw_DWork.Delay_DSTATE_dy = rtb_Y_n; + A380PitchNormalLaw_DWork.Delay_DSTATE_e5 = rtb_Y_p; + A380PitchNormalLaw_DWork.Delay_DSTATE_gz = rtb_Y_je; + A380PitchNormalLaw_DWork.Delay_DSTATE_lf = rtb_Divide_ho; A380PitchNormalLaw_DWork.Delay_DSTATE_h = rtb_Divide_cq; - A380PitchNormalLaw_DWork.Delay_DSTATE_ds = rtb_Divide1_e; + A380PitchNormalLaw_DWork.Delay_DSTATE_ds = rtb_Loaddemand2; A380PitchNormalLaw_DWork.Delay_DSTATE_jt = rtb_Gain_av; A380PitchNormalLaw_DWork.icLoad = false; A380PitchNormalLaw_DWork.Delay_DSTATE_ej = rtb_eta_trim_deg_rate_limit_up_deg_s; diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.h b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.h index 96d1ea3e4ef..e1bf1a901cf 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.h +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PitchNormalLaw.h @@ -173,13 +173,13 @@ class A380PitchNormalLaw final real_T DiscreteDerivativeVariableTs_Gain_j3; real_T DiscreteDerivativeVariableTs_Gain_g; real_T DiscreteTimeIntegratorVariableTs_Gain_j; - real_T DiscreteDerivativeVariableTs1_InitialCondition; real_T RateLimiterVariableTs_InitialCondition; real_T RateLimiterVariableTs1_InitialCondition; real_T RateLimiterVariableTs2_InitialCondition; real_T RateLimiterVariableTs3_InitialCondition; real_T RateLimiterVariableTs4_InitialCondition; real_T RateLimiterVariableTs6_InitialCondition; + real_T DiscreteDerivativeVariableTs1_InitialCondition; real_T DiscreteDerivativeVariableTs_InitialCondition; real_T DiscreteDerivativeVariableTs2_InitialCondition; real_T DiscreteDerivativeVariableTs1_InitialCondition_l; @@ -280,19 +280,7 @@ class A380PitchNormalLaw final real_T Saturation_LowerSat_p; real_T Constant1_Value_h; real_T Constant_Value_o; - real_T Gain3_Gain; - real_T Gain1_Gain; - real_T Gain1_Gain_l; - real_T Gain1_Gain_e; - real_T Vm_currentms_Value; real_T Gain_Gain; - real_T uDLookupTable_tableData[7]; - real_T uDLookupTable_bp01Data[7]; - real_T Saturation3_UpperSat; - real_T Saturation3_LowerSat; - real_T Gain5_Gain; - real_T Bias_Bias; - real_T Gain_Gain_a; real_T Saturation_UpperSat_c; real_T Saturation_LowerSat_n; real_T Saturation1_UpperSat; @@ -304,13 +292,25 @@ class A380PitchNormalLaw final real_T Constant_Value_mx; real_T Constant_Value_mo; real_T Gain2_Gain; - real_T Gain1_Gain_m; + real_T Gain1_Gain; real_T Saturation1_UpperSat_i; real_T Saturation1_LowerSat_h; real_T Loaddemand1_tableData[3]; real_T Loaddemand1_bp01Data[3]; + real_T Gain1_Gain_c; + real_T Gain1_Gain_l; + real_T uDLookupTable_tableData[7]; + real_T uDLookupTable_bp01Data[7]; + real_T Saturation3_UpperSat; + real_T Saturation3_LowerSat; + real_T Gain5_Gain; + real_T Bias_Bias; + real_T Gain1_Gain_e; + real_T Vm_currentms_Value; + real_T Gain_Gain_c; real_T PLUT_tableData[2]; real_T PLUT_bp01Data[2]; + real_T Gain3_Gain; real_T DLUT_tableData[2]; real_T DLUT_bp01Data[2]; real_T SaturationV_dot_UpperSat; @@ -323,7 +323,7 @@ class A380PitchNormalLaw final real_T Gain3_Gain_m; real_T Gain1_Gain_o; real_T Vm_currentms_Value_e; - real_T Gain_Gain_al; + real_T Gain_Gain_a; real_T uDLookupTable_tableData_e[7]; real_T uDLookupTable_bp01Data_o[7]; real_T Saturation3_UpperSat_a; @@ -435,7 +435,7 @@ class A380PitchNormalLaw final real_T SaturationSpoilers_LowerSat_d; real_T Saturation_UpperSat_a; real_T Saturation_LowerSat_k; - real_T Gain_Gain_c; + real_T Gain_Gain_cy; real_T Saturation_UpperSat_l; real_T Saturation_LowerSat_kp; real_T Constant_Value_o1; diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.cpp b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.cpp index 158b1bed3d4..0f7b45549d2 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.cpp +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.cpp @@ -210,14 +210,14 @@ void A380PrimComputer::A380PrimComputer_MATLABFunction_m(boolean_T rtu_u, boolea localDW->previousInput = rtu_u; } -void A380PrimComputer::A380PrimComputer_MATLABFunction_p_Reset(rtDW_MATLABFunction_A380PrimComputer_k_T *localDW) +void A380PrimComputer::A380PrimComputer_MATLABFunction_ge_Reset(rtDW_MATLABFunction_A380PrimComputer_hg_T *localDW) { localDW->output = false; localDW->timeSinceCondition = 0.0; } void A380PrimComputer::A380PrimComputer_MATLABFunction_c(boolean_T rtu_u, real_T rtu_Ts, boolean_T rtu_isRisingEdge, - real_T rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380PrimComputer_k_T *localDW) + real_T rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380PrimComputer_hg_T *localDW) { if (rtu_u == rtu_isRisingEdge) { localDW->timeSinceCondition += rtu_Ts; @@ -232,13 +232,13 @@ void A380PrimComputer::A380PrimComputer_MATLABFunction_c(boolean_T rtu_u, real_T *rty_y = localDW->output; } -void A380PrimComputer::A380PrimComputer_MATLABFunction_j_Reset(rtDW_MATLABFunction_A380PrimComputer_km_T *localDW) +void A380PrimComputer::A380PrimComputer_MATLABFunction_d_Reset(rtDW_MATLABFunction_A380PrimComputer_c_T *localDW) { localDW->output = false; } -void A380PrimComputer::A380PrimComputer_MATLABFunction_j(real_T rtu_u, real_T rtu_highTrigger, real_T rtu_lowTrigger, - boolean_T *rty_y, rtDW_MATLABFunction_A380PrimComputer_km_T *localDW) +void A380PrimComputer::A380PrimComputer_MATLABFunction_n(real_T rtu_u, real_T rtu_highTrigger, real_T rtu_lowTrigger, + boolean_T *rty_y, rtDW_MATLABFunction_A380PrimComputer_c_T *localDW) { boolean_T output_tmp; output_tmp = !localDW->output; @@ -553,12 +553,14 @@ void A380PrimComputer::step() boolean_T elevator2Avail; boolean_T leftSpoilerElectricModeAvail; boolean_T leftSpoilerHydraulicModeAvail; + boolean_T rightAileron2Avail; boolean_T rightSpoilerElectricModeAvail; boolean_T rightSpoilerHydraulicModeAvail; boolean_T rtb_AND1; boolean_T rtb_AND10; boolean_T rtb_AND10_b; boolean_T rtb_AND11; + boolean_T rtb_AND12; boolean_T rtb_AND13; boolean_T rtb_AND15; boolean_T rtb_AND15_l; @@ -567,23 +569,18 @@ void A380PrimComputer::step() boolean_T rtb_AND17; boolean_T rtb_AND18_c; boolean_T rtb_AND19; - boolean_T rtb_AND1_at; - boolean_T rtb_AND1_b; - boolean_T rtb_AND1_d; - boolean_T rtb_AND1_e; + boolean_T rtb_AND1_l; + boolean_T rtb_AND1_p; boolean_T rtb_AND20; - boolean_T rtb_AND2_b; - boolean_T rtb_AND2_j; - boolean_T rtb_AND2_jo; + boolean_T rtb_AND2_ac; + boolean_T rtb_AND2_i; boolean_T rtb_AND3; - boolean_T rtb_AND3_d; boolean_T rtb_AND3_h; - boolean_T rtb_AND4; boolean_T rtb_AND4_d; - boolean_T rtb_AND4_n; + boolean_T rtb_AND4_f; + boolean_T rtb_AND4_i; boolean_T rtb_AND5_e; - boolean_T rtb_AND6; - boolean_T rtb_AND6_m; + boolean_T rtb_AND6_o; boolean_T rtb_AND7; boolean_T rtb_AND7_d; boolean_T rtb_AND8; @@ -607,8 +604,11 @@ void A380PrimComputer::step() boolean_T rtb_doubleIrFault_tmp; boolean_T rtb_leftSpoilerElectricModeEngaged; boolean_T rtb_leftSpoilerHydraulicModeEngaged; + boolean_T rtb_rightAileron2Engaged; boolean_T rtb_rightSpoilerElectricModeEngaged; boolean_T rtb_rightSpoilerHydraulicModeEngaged; + boolean_T rtb_rudder1HydraulicModeEngaged; + boolean_T rtb_rudder2HydraulicModeEngaged; boolean_T rtb_thsEngaged; boolean_T rtb_tripleAdrFault; boolean_T rtb_tripleIrFault; @@ -621,6 +621,7 @@ void A380PrimComputer::step() boolean_T rudder1ElectricModeAvail; boolean_T rudder1HydraulicModeAvail; boolean_T rudder1HydraulicModeHasPriority; + boolean_T rudder2ElectricModeHasPriority; boolean_T rudder2HydraulicModeHasPriority; boolean_T thsAvail; a380_lateral_efcs_law rtb_activeLateralLaw; @@ -641,24 +642,24 @@ void A380PrimComputer::step() A380PrimComputer_DWork.Delay_DSTATE = A380PrimComputer_P.DiscreteDerivativeVariableTs_InitialCondition; A380PrimComputer_DWork.icLoad = true; A380PrimComputer_LagFilter_Reset(&A380PrimComputer_DWork.sf_LagFilter_a); - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_jz); - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_lf); - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_jl); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_jz); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_lf); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_jl); A380PrimComputer_DWork.ra1CoherenceRejected = false; A380PrimComputer_DWork.ra2CoherenceRejected = false; A380PrimComputer_DWork.configFullEventTime_not_empty = false; - A380PrimComputer_MATLABFunction_j_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_jg); - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_cj); - A380PrimComputer_MATLABFunction_j_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_br); - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_gfx); - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_nb); + A380PrimComputer_MATLABFunction_d_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_nj); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_cx); + A380PrimComputer_MATLABFunction_d_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_e1); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_kq); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_nb); A380PrimComputer_DWork.abnormalConditionWasActive = false; A380PrimComputer_MATLABFunction_m_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_g4); A380PrimComputer_MATLABFunction_m_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_nu); A380PrimComputer_DWork.pLeftStickDisabled = false; A380PrimComputer_DWork.pRightStickDisabled = false; - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_j2); - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_g24); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_j2); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_g24); A380PrimComputer_RateLimiter_e_Reset(&A380PrimComputer_DWork.sf_RateLimiter_ne); A380PrimComputer_DWork.eventTime_not_empty_e = false; A380PrimComputer_RateLimiter_e_Reset(&A380PrimComputer_DWork.sf_RateLimiter_mr); @@ -667,7 +668,7 @@ void A380PrimComputer::step() A380PrimComputer_DWork.is_active_c28_A380PrimComputer = 0U; A380PrimComputer_DWork.is_c28_A380PrimComputer = A380PrimComputer_IN_NO_ACTIVE_CHILD; A380PrimComputer_DWork.eventTime_not_empty = false; - A380PrimComputer_MATLABFunction_p_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_al4); + A380PrimComputer_MATLABFunction_ge_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_al4); A380PrimComputer_MATLABFunction_m_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_jj); A380PrimComputer_MATLABFunction_m_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_ej); A380PrimComputer_MATLABFunction_m_Reset(&A380PrimComputer_DWork.sf_MATLABFunction_ja); @@ -784,10 +785,10 @@ void A380PrimComputer::step() rtb_doubleIrFault_tmp = (rtb_OR && rtb_OR7); rtb_doubleIrFault = (rtb_tripleIrFault || rtb_doubleIrFault_tmp || (rtb_OR6 && rtb_OR7)); rtb_tripleIrFault = (rtb_tripleIrFault && rtb_OR7); - rtb_AND2_j = !rtb_OR4; + rtb_AND2_i = !rtb_OR4; rtb_y_or = !rtb_OR3; - rtb_AND1_e = (rtb_OR1 && rtb_y_or); - if (rtb_AND1_e && rtb_AND2_j) { + rightAileron2Avail = (rtb_OR1 && rtb_y_or); + if (rightAileron2Avail && rtb_AND2_i) { rtb_V_ias = (A380PrimComputer_U.in.bus_inputs.adr_2_bus.airspeed_computed_kn.Data + A380PrimComputer_U.in.bus_inputs.adr_3_bus.airspeed_computed_kn.Data) / 2.0F; rtb_V_tas = (A380PrimComputer_U.in.bus_inputs.adr_2_bus.airspeed_true_kn.Data + @@ -799,7 +800,7 @@ void A380PrimComputer::step() } else { rtb_OR1 = !rtb_OR1; rtb_OR3 = (rtb_OR1 && rtb_OR3); - if (rtb_OR3 && rtb_AND2_j) { + if (rtb_OR3 && rtb_AND2_i) { rtb_V_ias = (A380PrimComputer_U.in.bus_inputs.adr_1_bus.airspeed_computed_kn.Data + A380PrimComputer_U.in.bus_inputs.adr_3_bus.airspeed_computed_kn.Data) / 2.0F; rtb_V_tas = (A380PrimComputer_U.in.bus_inputs.adr_1_bus.airspeed_true_kn.Data + @@ -810,7 +811,7 @@ void A380PrimComputer::step() A380PrimComputer_U.in.bus_inputs.adr_3_bus.aoa_corrected_deg.Data) / 2.0F; } else { rtb_y_or = (rtb_OR1 && rtb_y_or); - if ((rtb_y_or && rtb_AND2_j) || (rtb_y_or && rtb_OR4)) { + if ((rtb_y_or && rtb_AND2_i) || (rtb_y_or && rtb_OR4)) { rtb_V_ias = (A380PrimComputer_U.in.bus_inputs.adr_1_bus.airspeed_computed_kn.Data + A380PrimComputer_U.in.bus_inputs.adr_2_bus.airspeed_computed_kn.Data) / 2.0F; rtb_V_tas = (A380PrimComputer_U.in.bus_inputs.adr_1_bus.airspeed_true_kn.Data + @@ -824,12 +825,12 @@ void A380PrimComputer::step() rtb_V_tas = A380PrimComputer_U.in.bus_inputs.adr_1_bus.airspeed_true_kn.Data; rtb_mach = A380PrimComputer_U.in.bus_inputs.adr_1_bus.mach.Data; rtb_alpha = A380PrimComputer_U.in.bus_inputs.adr_1_bus.aoa_corrected_deg.Data; - } else if (rtb_AND1_e && rtb_OR4) { + } else if (rightAileron2Avail && rtb_OR4) { rtb_V_ias = A380PrimComputer_U.in.bus_inputs.adr_2_bus.airspeed_computed_kn.Data; rtb_V_tas = A380PrimComputer_U.in.bus_inputs.adr_2_bus.airspeed_true_kn.Data; rtb_mach = A380PrimComputer_U.in.bus_inputs.adr_2_bus.mach.Data; rtb_alpha = A380PrimComputer_U.in.bus_inputs.adr_2_bus.aoa_corrected_deg.Data; - } else if (rtb_AND1 && rtb_AND2_j) { + } else if (rtb_AND1 && rtb_AND2_i) { rtb_V_ias = A380PrimComputer_U.in.bus_inputs.adr_3_bus.airspeed_computed_kn.Data; rtb_V_tas = A380PrimComputer_U.in.bus_inputs.adr_3_bus.airspeed_true_kn.Data; rtb_mach = A380PrimComputer_U.in.bus_inputs.adr_3_bus.mach.Data; @@ -848,10 +849,10 @@ void A380PrimComputer::step() rtb_eta_deg_dv = rtb_V_ias; rtb_eta_trim_dot_deg_s_n = rtb_V_tas; rtb_eta_trim_limit_lo_d = rtb_mach; - rtb_AND2_j = !rtb_OR6; + rtb_AND2_i = !rtb_OR6; rtb_y_or = !rtb_OR7; - rtb_AND1_e = (rtb_OR && rtb_y_or); - if (rtb_AND1_e && rtb_AND2_j) { + rightAileron2Avail = (rtb_OR && rtb_y_or); + if (rightAileron2Avail && rtb_AND2_i) { rtb_alpha = (A380PrimComputer_U.in.bus_inputs.ir_2_bus.pitch_angle_deg.Data + A380PrimComputer_U.in.bus_inputs.ir_3_bus.pitch_angle_deg.Data) / 2.0F; rtb_phi = (A380PrimComputer_U.in.bus_inputs.ir_2_bus.roll_angle_deg.Data + @@ -873,7 +874,7 @@ void A380PrimComputer::step() } else { rtb_OR1 = !rtb_OR; rtb_OR3 = (rtb_OR1 && rtb_OR7); - if (rtb_OR3 && rtb_AND2_j) { + if (rtb_OR3 && rtb_AND2_i) { rtb_alpha = (A380PrimComputer_U.in.bus_inputs.ir_1_bus.pitch_angle_deg.Data + A380PrimComputer_U.in.bus_inputs.ir_2_bus.pitch_angle_deg.Data) / 2.0F; rtb_phi = (A380PrimComputer_U.in.bus_inputs.ir_1_bus.roll_angle_deg.Data + @@ -894,7 +895,7 @@ void A380PrimComputer::step() A380PrimComputer_U.in.bus_inputs.ir_2_bus.roll_att_rate_deg_s.Data) / 2.0F; } else { rtb_y_or = (rtb_OR1 && rtb_y_or); - if ((rtb_y_or && rtb_AND2_j) || (rtb_y_or && rtb_OR6)) { + if ((rtb_y_or && rtb_AND2_i) || (rtb_y_or && rtb_OR6)) { rtb_alpha = (A380PrimComputer_U.in.bus_inputs.ir_1_bus.pitch_angle_deg.Data + A380PrimComputer_U.in.bus_inputs.ir_3_bus.pitch_angle_deg.Data) / 2.0F; rtb_phi = (A380PrimComputer_U.in.bus_inputs.ir_1_bus.roll_angle_deg.Data + @@ -923,7 +924,7 @@ void A380PrimComputer::step() rtb_n_z = A380PrimComputer_U.in.bus_inputs.ir_1_bus.body_normal_accel_g.Data; rtb_theta_dot = A380PrimComputer_U.in.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.Data; rtb_phi_dot = A380PrimComputer_U.in.bus_inputs.ir_1_bus.roll_att_rate_deg_s.Data; - } else if (rtb_AND1_e && rtb_OR6) { + } else if (rightAileron2Avail && rtb_OR6) { rtb_alpha = A380PrimComputer_U.in.bus_inputs.ir_3_bus.pitch_angle_deg.Data; rtb_phi = A380PrimComputer_U.in.bus_inputs.ir_3_bus.roll_angle_deg.Data; rtb_q = A380PrimComputer_U.in.bus_inputs.ir_3_bus.body_pitch_rate_deg_s.Data; @@ -933,7 +934,7 @@ void A380PrimComputer::step() rtb_n_z = A380PrimComputer_U.in.bus_inputs.ir_3_bus.body_normal_accel_g.Data; rtb_theta_dot = A380PrimComputer_U.in.bus_inputs.ir_3_bus.pitch_att_rate_deg_s.Data; rtb_phi_dot = A380PrimComputer_U.in.bus_inputs.ir_3_bus.roll_att_rate_deg_s.Data; - } else if (rtb_doubleIrFault_tmp && rtb_AND2_j) { + } else if (rtb_doubleIrFault_tmp && rtb_AND2_i) { rtb_alpha = A380PrimComputer_U.in.bus_inputs.ir_2_bus.pitch_angle_deg.Data; rtb_phi = A380PrimComputer_U.in.bus_inputs.ir_2_bus.roll_angle_deg.Data; rtb_q = A380PrimComputer_U.in.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.Data; @@ -998,9 +999,9 @@ void A380PrimComputer::step() A380PrimComputer_DWork.configFullEventTime = A380PrimComputer_U.in.time.simulation_time; } - rtb_AND2_j = !rtb_OR7; + rtb_AND2_i = !rtb_OR7; rtb_y_or = !rtb_OR6; - if (rtb_y_or && rtb_AND2_j) { + if (rtb_y_or && rtb_AND2_i) { if (rtb_y_g) { if (A380PrimComputer_U.in.time.simulation_time > A380PrimComputer_DWork.configFullEventTime + 10.0) { rtb_raComputationValue = std::fmin(A380PrimComputer_U.in.bus_inputs.ra_1_bus.radio_height_ft.Data, @@ -1012,7 +1013,7 @@ void A380PrimComputer::step() rtb_raComputationValue = (A380PrimComputer_U.in.bus_inputs.ra_1_bus.radio_height_ft.Data + A380PrimComputer_U.in.bus_inputs.ra_2_bus.radio_height_ft.Data) / 2.0F; } - } else if ((rtb_OR6 && rtb_AND2_j) || (rtb_y_or && rtb_OR7)) { + } else if ((rtb_OR6 && rtb_AND2_i) || (rtb_y_or && rtb_OR7)) { if ((rtb_V_ias > 180.0F) && rtb_OR4) { rtb_raComputationValue = 250.0F; } else if (rtb_OR7) { @@ -1028,30 +1029,36 @@ void A380PrimComputer::step() rtb_AND1 = ((rtb_raComputationValue < A380PrimComputer_P.CompareToConstant_const) && (!rtb_OR4)); rtb_OR = (A380PrimComputer_U.in.sim_data.slew_on || A380PrimComputer_U.in.sim_data.pause_on || A380PrimComputer_U.in.sim_data.tracking_mode_on_override); - A380PrimComputer_MATLABFunction_j(A380PrimComputer_U.in.analog_inputs.yellow_hyd_pressure_psi, + A380PrimComputer_MATLABFunction_n(A380PrimComputer_U.in.analog_inputs.yellow_hyd_pressure_psi, A380PrimComputer_P.HysteresisNode2_highTrigger, A380PrimComputer_P.HysteresisNode2_lowTrigger, &rtb_y_og, - &A380PrimComputer_DWork.sf_MATLABFunction_jg); + &A380PrimComputer_DWork.sf_MATLABFunction_nj); A380PrimComputer_MATLABFunction_c(((!A380PrimComputer_U.in.discrete_inputs.yellow_low_pressure) && rtb_y_og), - A380PrimComputer_U.in.time.dt, A380PrimComputer_P.ConfirmNode_isRisingEdge_k, - A380PrimComputer_P.ConfirmNode_timeDelay_n, &rtb_NOT_k, &A380PrimComputer_DWork.sf_MATLABFunction_cj); - A380PrimComputer_MATLABFunction_j(A380PrimComputer_U.in.analog_inputs.green_hyd_pressure_psi, + A380PrimComputer_U.in.time.dt, A380PrimComputer_P.ConfirmNode_isRisingEdge_l, + A380PrimComputer_P.ConfirmNode_timeDelay_i, &rtb_NOT_k, &A380PrimComputer_DWork.sf_MATLABFunction_cx); + A380PrimComputer_MATLABFunction_n(A380PrimComputer_U.in.analog_inputs.green_hyd_pressure_psi, A380PrimComputer_P.HysteresisNode3_highTrigger, A380PrimComputer_P.HysteresisNode3_lowTrigger, &rtb_y_og, - &A380PrimComputer_DWork.sf_MATLABFunction_br); + &A380PrimComputer_DWork.sf_MATLABFunction_e1); A380PrimComputer_MATLABFunction_c(((!A380PrimComputer_U.in.discrete_inputs.green_low_pressure) && rtb_y_og), - A380PrimComputer_U.in.time.dt, A380PrimComputer_P.ConfirmNode2_isRisingEdge_j, - A380PrimComputer_P.ConfirmNode2_timeDelay_k, &rtb_y_og, &A380PrimComputer_DWork.sf_MATLABFunction_gfx); + A380PrimComputer_U.in.time.dt, A380PrimComputer_P.ConfirmNode2_isRisingEdge_i, + A380PrimComputer_P.ConfirmNode2_timeDelay_h, &rtb_y_og, &A380PrimComputer_DWork.sf_MATLABFunction_kq); + rtb_rudder2HydraulicModeEngaged = !rtb_y_og; + rtb_rudder1HydraulicModeEngaged = !rtb_NOT_k; + rtb_OR6 = !A380PrimComputer_P.Constant_Value_aq; + rtb_OR6 = (rtb_AND1 && ((rtb_y_og || rtb_NOT_k || (!A380PrimComputer_U.in.discrete_inputs.rat_contactor_closed) || ( + !A380PrimComputer_U.in.discrete_inputs.rat_deployed)) && ((rtb_rudder2HydraulicModeEngaged || rtb_OR6) && + (rtb_rudder1HydraulicModeEngaged || rtb_OR6)))); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rtb_OR6 = rtb_y_og; rtb_OR7 = rtb_y_og; + rtb_doubleIrFault_tmp = rtb_y_og; } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { - rtb_OR6 = rtb_y_og; rtb_OR7 = rtb_y_og; + rtb_doubleIrFault_tmp = rtb_y_og; } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { - rtb_OR6 = rtb_NOT_k; rtb_OR7 = rtb_NOT_k; + rtb_doubleIrFault_tmp = rtb_NOT_k; } else { - rtb_OR6 = false; rtb_OR7 = false; + rtb_doubleIrFault_tmp = false; } if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { @@ -1062,32 +1069,37 @@ void A380PrimComputer::step() A380PrimComputer_MATLABFunction_e(rtb_Switch_ir_0, A380PrimComputer_P.BitfromLabel2_bit, &rtb_y_m); A380PrimComputer_MATLABFunction(rtb_Switch_ir_0, &rtb_y_j); - rtb_AND1_e = ((rtb_y_m != 0U) && rtb_y_j); + rtb_OR1 = ((rtb_y_m != 0U) && rtb_y_j); A380PrimComputer_MATLABFunction_e(rtb_Switch_ir_0, A380PrimComputer_P.BitfromLabel1_bit_b, &rtb_y_m); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rtb_doubleIrFault_tmp = true; rtb_OR3 = true; + rightAileron2Avail = true; + } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { + rtb_OR3 = true; + rightAileron2Avail = true; + } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { + rtb_OR3 = rtb_NOT_k; + rightAileron2Avail = rtb_NOT_k; + } else { + rtb_OR3 = false; + rightAileron2Avail = false; + } + + rudder2ElectricModeHasPriority = !rtb_OR6; + rtb_rightAileron2Engaged = (A380PrimComputer_U.in.discrete_inputs.is_unit_3 || rudder2ElectricModeHasPriority); + rtb_OR1 = (rtb_OR3 && ((!rtb_OR1) && rtb_rightAileron2Engaged)); + rtb_rightAileron2Engaged = (rightAileron2Avail && (((!rtb_y_j) || (rtb_y_m == 0U)) && rtb_rightAileron2Engaged)); + if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { leftSpoilerHydraulicModeAvail = rtb_y_og; leftSpoilerElectricModeAvail = true; rightSpoilerHydraulicModeAvail = rtb_y_og; rightSpoilerElectricModeAvail = true; rtb_leftSpoilerHydraulicModeEngaged = rtb_y_og; - rtb_leftSpoilerElectricModeEngaged = !rtb_y_og; + rtb_leftSpoilerElectricModeEngaged = (rtb_rudder2HydraulicModeEngaged && rudder2ElectricModeHasPriority); rtb_rightSpoilerHydraulicModeEngaged = rtb_y_og; rtb_rightSpoilerElectricModeEngaged = rtb_leftSpoilerElectricModeEngaged; elevator1Avail = rtb_y_og; } else { - if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { - rtb_doubleIrFault_tmp = true; - rtb_OR3 = true; - } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { - rtb_doubleIrFault_tmp = rtb_NOT_k; - rtb_OR3 = rtb_NOT_k; - } else { - rtb_doubleIrFault_tmp = false; - rtb_OR3 = false; - } - if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { leftSpoilerHydraulicModeAvail = rtb_NOT_k; leftSpoilerElectricModeAvail = true; @@ -1124,8 +1136,6 @@ void A380PrimComputer::step() } } - rtb_AND1_e = (rtb_doubleIrFault_tmp && (!rtb_AND1_e)); - rtb_OR1 = (rtb_OR3 && ((!rtb_y_j) || (rtb_y_m == 0U))); if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { rtb_Switch_ir_0 = &A380PrimComputer_U.in.bus_inputs.prim_x_bus.elevator_status_word; } else { @@ -1139,14 +1149,14 @@ void A380PrimComputer::step() (A380PrimComputer_U.in.discrete_inputs.is_unit_2 || (A380PrimComputer_U.in.discrete_inputs.is_unit_3 && rtb_NOT_k))); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rtb_AND2_j = !rtb_AND_e; + rtb_AND2_i = ((!rtb_AND_e) && rudder2ElectricModeHasPriority); } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { - rtb_AND2_j = !rtb_AND_e; + rtb_AND2_i = ((!rtb_AND_e) && rudder2ElectricModeHasPriority); } else { - rtb_AND2_j = A380PrimComputer_U.in.discrete_inputs.is_unit_3; + rtb_AND2_i = A380PrimComputer_U.in.discrete_inputs.is_unit_3; } - rtb_AND_e = (elevator2Avail && rtb_AND2_j); + rtb_AND_e = (elevator2Avail && rtb_AND2_i); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.elevator_status_word, &rtb_y_ex); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel3_bit, &rtb_y_kkm); @@ -1161,26 +1171,26 @@ void A380PrimComputer::step() rtb_y_j = (A380PrimComputer_U.in.discrete_inputs.is_unit_1 || A380PrimComputer_U.in.discrete_inputs.is_unit_2); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rtb_AND2_j = !rtb_y_ex; + rtb_AND2_i = ((!rtb_y_ex) && rudder2ElectricModeHasPriority); } else { - rtb_AND2_j = (A380PrimComputer_U.in.discrete_inputs.is_unit_2 && (!rtb_y_ex)); + rtb_AND2_i = (A380PrimComputer_U.in.discrete_inputs.is_unit_2 && ((!rtb_y_ex) && rudder2ElectricModeHasPriority)); } - rtb_y_ex = (rtb_y_j && rtb_AND2_j); + rtb_y_ex = (rtb_y_j && rtb_AND2_i); rtb_BusAssignment_j_logic_is_yellow_hydraulic_power_avail = rtb_NOT_k; A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.elevator_status_word, &rtb_NOT_k); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel1_bit_bv, &rtb_y_m); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { thsAvail = rtb_BusAssignment_j_logic_is_yellow_hydraulic_power_avail; - rtb_AND2_j = ((!rtb_NOT_k) || (rtb_y_m == 0U)); + rtb_AND2_i = ((!rtb_NOT_k) || (rtb_y_m == 0U)); } else { rtb_thsEngaged = !A380PrimComputer_U.in.discrete_inputs.is_unit_2; thsAvail = (rtb_thsEngaged && (A380PrimComputer_U.in.discrete_inputs.is_unit_3 && rtb_y_og)); - rtb_AND2_j = (rtb_thsEngaged && A380PrimComputer_U.in.discrete_inputs.is_unit_3); + rtb_AND2_i = (rtb_thsEngaged && A380PrimComputer_U.in.discrete_inputs.is_unit_3); } - rtb_thsEngaged = (thsAvail && rtb_AND2_j); + rtb_thsEngaged = (thsAvail && rtb_AND2_i); rtb_BusAssignment_hi_logic_is_green_hydraulic_power_avail = rtb_y_og; A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.rudder_status_word, A380PrimComputer_P.BitfromLabel1_bit_k, &rtb_y_m); @@ -1188,12 +1198,12 @@ void A380PrimComputer::step() A380PrimComputer_P.BitfromLabel2_bit_e, &rtb_y_kkm); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.rudder_status_word, &rtb_y_g); if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { - rtb_AND2_j = (rtb_y_m != 0U); + rtb_AND2_i = (rtb_y_m != 0U); } else { - rtb_AND2_j = (rtb_y_kkm != 0U); + rtb_AND2_i = (rtb_y_kkm != 0U); } - rtb_AND_n = (rtb_AND2_j && rtb_y_g); + rtb_AND_n = (rtb_AND2_i && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.rudder_status_word, A380PrimComputer_P.BitfromLabel3_bit_c, &rtb_y_m); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.rudder_status_word, @@ -1208,7 +1218,7 @@ void A380PrimComputer::step() A380PrimComputer_MATLABFunction_e(rtb_Switch_ir_0, A380PrimComputer_P.BitfromLabel6_bit, &rtb_y_mc); A380PrimComputer_MATLABFunction(rtb_Switch_ir_0, &rtb_y_og); - rtb_AND6 = ((rtb_y_mc != 0U) && rtb_y_og); + rtb_AND6_o = ((rtb_y_mc != 0U) && rtb_y_og); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { rtb_Switch_ir_0 = &A380PrimComputer_U.in.bus_inputs.sec_2_bus.rudder_status_word; } else { @@ -1219,18 +1229,18 @@ void A380PrimComputer::step() A380PrimComputer_MATLABFunction_e(rtb_Switch_ir_0, A380PrimComputer_P.BitfromLabel10_bit, &rtb_y_ad); A380PrimComputer_MATLABFunction(rtb_Switch_ir_0, &rtb_NOT_k); if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { - rtb_AND2_j = (rtb_y_mc != 0U); + rtb_AND2_i = (rtb_y_mc != 0U); } else { - rtb_AND2_j = (rtb_y_ad != 0U); + rtb_AND2_i = (rtb_y_ad != 0U); } - rtb_AND3 = (rtb_AND2_j && rtb_NOT_k); + rtb_AND3 = (rtb_AND2_i && rtb_NOT_k); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { rudder1HydraulicModeAvail = rtb_BusAssignment_j_logic_is_yellow_hydraulic_power_avail; rudder1ElectricModeAvail = true; rudder1HydraulicModeHasPriority = true; - rtb_AND6 = ((!rtb_AND_n) && (!rtb_BusAssignment_j_logic_is_yellow_hydraulic_power_avail) && (!rtb_AND6) && - (!rtb_AND3)); + rtb_AND_n = ((!rtb_AND_n) && rtb_rudder1HydraulicModeEngaged && (!rtb_AND6_o) && (!rtb_AND3) && + rudder2ElectricModeHasPriority); } else { if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { rudder1HydraulicModeAvail = rtb_BusAssignment_hi_logic_is_green_hydraulic_power_avail; @@ -1246,68 +1256,68 @@ void A380PrimComputer::step() if (A380PrimComputer_U.in.discrete_inputs.is_unit_2 || A380PrimComputer_U.in.discrete_inputs.is_unit_3) { rudder1HydraulicModeHasPriority = !rtb_AND_n; if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { - rtb_AND2_j = (rtb_y_m != 0U); + rtb_AND2_i = (rtb_y_m != 0U); } else { - rtb_AND2_j = (rtb_y_kkm != 0U); + rtb_AND2_i = (rtb_y_kkm != 0U); } - rtb_AND6 = (rudder1HydraulicModeHasPriority && ((!rtb_y_g) || (!rtb_AND2_j)) && (!rudder1HydraulicModeAvail) && - (!rtb_AND6) && (!rtb_AND3)); + rtb_AND_n = (rudder1HydraulicModeHasPriority && ((!rtb_y_g) || (!rtb_AND2_i)) && (!rudder1HydraulicModeAvail) && + (!rtb_AND6_o) && (!rtb_AND3) && rudder2ElectricModeHasPriority); } else { rudder1HydraulicModeHasPriority = false; - rtb_AND6 = false; + rtb_AND_n = false; } } - rtb_AND_n = (rudder1HydraulicModeAvail && rudder1HydraulicModeHasPriority); - rtb_AND6 = (rudder1ElectricModeAvail && rtb_AND6); + rtb_rudder1HydraulicModeEngaged = (rudder1HydraulicModeAvail && rudder1HydraulicModeHasPriority); + rtb_AND_n = (rudder1ElectricModeAvail && rtb_AND_n); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.rudder_status_word, A380PrimComputer_P.BitfromLabel5_bit, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.rudder_status_word, &rtb_y_g); - rtb_AND2_jo = ((rtb_y_m != 0U) && rtb_y_g); + rtb_AND3 = ((rtb_y_m != 0U) && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_1_bus.rudder_status_word, A380PrimComputer_P.BitfromLabel7_bit, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.sec_1_bus.rudder_status_word, &rtb_NOT_k); - rtb_AND4 = ((rtb_y_m != 0U) && rtb_NOT_k); + rtb_AND4_f = ((rtb_y_m != 0U) && rtb_NOT_k); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_3_bus.rudder_status_word, A380PrimComputer_P.BitfromLabel8_bit, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.sec_3_bus.rudder_status_word, &rtb_y_og); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rudder1HydraulicModeHasPriority = rtb_BusAssignment_hi_logic_is_green_hydraulic_power_avail; - rtb_AND3 = true; + rtb_AND6_o = rtb_BusAssignment_hi_logic_is_green_hydraulic_power_avail; + rudder1HydraulicModeHasPriority = true; rudder2HydraulicModeHasPriority = true; - rtb_AND4 = ((!rtb_AND2_jo) && (!rtb_BusAssignment_hi_logic_is_green_hydraulic_power_avail) && (!rtb_AND4) && - ((rtb_y_m == 0U) || (!rtb_y_og))); + rudder2ElectricModeHasPriority = ((!rtb_AND3) && rtb_rudder2HydraulicModeEngaged && (!rtb_AND4_f) && ((rtb_y_m == + 0U) || (!rtb_y_og)) && rudder2ElectricModeHasPriority); } else { + rtb_AND6_o = false; rudder1HydraulicModeHasPriority = false; - rtb_AND3 = false; rudder2HydraulicModeHasPriority = false; - rtb_AND4 = false; + rudder2ElectricModeHasPriority = false; } - rtb_AND2_jo = (rudder1HydraulicModeHasPriority && rudder2HydraulicModeHasPriority); - rudder2HydraulicModeHasPriority = (rtb_AND3 && rtb_AND4); + rtb_rudder2HydraulicModeEngaged = (rtb_AND6_o && rudder2HydraulicModeHasPriority); + rudder2ElectricModeHasPriority = (rudder1HydraulicModeHasPriority && rudder2ElectricModeHasPriority); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel_bit_i, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.aileron_status_word, &rtb_DataTypeConversion_m2); - rtb_AND4 = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); + rtb_AND3 = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel1_bit_c, &rtb_y_m); - rtb_AND3_d = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); + rudder2HydraulicModeHasPriority = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel2_bit_p, &rtb_y_m); - rtb_AND2_b = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); + rtb_AND2_ac = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel3_bit_n, &rtb_y_m); - rtb_AND1_at = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); + rtb_AND1_l = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel4_bit_j, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.aileron_status_word, &rtb_y_g); - rtb_AND4_n = ((rtb_y_m != 0U) && rtb_y_g); + rtb_AND4_d = ((rtb_y_m != 0U) && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel5_bit_i, &rtb_y_m); - rtb_AND6_m = ((rtb_y_m != 0U) && rtb_y_g); + rtb_AND4_f = ((rtb_y_m != 0U) && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel6_bit_j, &rtb_y_m); rtb_AND7 = ((rtb_y_m != 0U) && rtb_y_g); @@ -1341,12 +1351,12 @@ void A380PrimComputer::step() A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_3_bus.aileron_status_word, A380PrimComputer_P.BitfromLabel17_bit, &rtb_y_m); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rtb_AND5_e = (rtb_OR6 || rtb_AND2_b); - rtb_AND9_o = (rtb_OR7 || rtb_AND1_at); - rtb_AND2_b = (rtb_AND1_e || rtb_AND4_n); - rtb_AND1_at = (rtb_OR1 || rtb_AND6_m); - rtb_AND4 = (rtb_AND4 || rtb_AND7); - rtb_AND3_d = (rtb_AND3_d || rtb_AND8); + rtb_AND2_i = (rtb_OR7 || rtb_AND2_ac); + rtb_AND9_o = (rtb_doubleIrFault_tmp || rtb_AND1_l); + rtb_AND2_ac = (rtb_OR1 || rtb_AND4_d); + rtb_AND1_l = (rtb_rightAileron2Engaged || rtb_AND4_f); + rtb_AND3 = (rtb_AND3 || rtb_AND7); + rudder2HydraulicModeHasPriority = (rudder2HydraulicModeHasPriority || rtb_AND8); rtb_leftInboardAilPos = A380PrimComputer_U.in.analog_inputs.left_aileron_1_pos_deg; rtb_rightInboardAilPos = A380PrimComputer_U.in.analog_inputs.right_aileron_1_pos_deg; rtb_leftMidboardAilPos = A380PrimComputer_U.in.analog_inputs.left_aileron_2_pos_deg; @@ -1366,26 +1376,26 @@ void A380PrimComputer::step() } } else { if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { - rtb_AND5_e = (rtb_AND1_e || rtb_AND4); - rtb_AND9_o = (rtb_OR1 || rtb_AND3_d); - rtb_AND2_b = (rtb_AND2_b || rtb_AND4_n); - rtb_AND1_at = (rtb_AND1_at || rtb_AND6_m); - rtb_AND4 = (rtb_OR6 || rtb_AND7); - rtb_AND3_d = (rtb_OR7 || rtb_AND8); + rtb_AND2_i = (rtb_OR1 || rtb_AND3); + rtb_AND9_o = (rtb_rightAileron2Engaged || rudder2HydraulicModeHasPriority); + rtb_AND2_ac = (rtb_AND2_ac || rtb_AND4_d); + rtb_AND1_l = (rtb_AND1_l || rtb_AND4_f); + rtb_AND3 = (rtb_OR7 || rtb_AND7); + rudder2HydraulicModeHasPriority = (rtb_doubleIrFault_tmp || rtb_AND8); } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { - rtb_AND5_e = (rtb_AND4 || rtb_AND7); - rtb_AND9_o = (rtb_AND3_d || rtb_AND8); - rtb_AND2_b = (rtb_OR6 || rtb_AND2_b); - rtb_AND1_at = (rtb_OR7 || rtb_AND1_at); - rtb_AND4 = (rtb_AND4_n || rtb_AND1_e); - rtb_AND3_d = (rtb_AND6_m || rtb_OR1); + rtb_AND2_i = (rtb_AND3 || rtb_AND7); + rtb_AND9_o = (rudder2HydraulicModeHasPriority || rtb_AND8); + rtb_AND2_ac = (rtb_OR7 || rtb_AND2_ac); + rtb_AND1_l = (rtb_doubleIrFault_tmp || rtb_AND1_l); + rtb_AND3 = (rtb_AND4_d || rtb_OR1); + rudder2HydraulicModeHasPriority = (rtb_AND4_f || rtb_rightAileron2Engaged); } else { - rtb_AND5_e = false; + rtb_AND2_i = false; rtb_AND9_o = false; - rtb_AND2_b = false; - rtb_AND1_at = false; - rtb_AND4 = false; - rtb_AND3_d = false; + rtb_AND2_ac = false; + rtb_AND1_l = false; + rtb_AND3 = false; + rudder2HydraulicModeHasPriority = false; } if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { @@ -1436,10 +1446,10 @@ void A380PrimComputer::step() } } - rtb_AND6_m = (rtb_AND5_e || (rtb_AND13 || rtb_AND15)); + rtb_AND4_f = (rtb_AND2_i || (rtb_AND13 || rtb_AND15)); rtb_AND11 = (rtb_AND9_o || (rtb_AND11 || rtb_AND16)); - rtb_AND10 = (rtb_AND2_b || (rtb_AND10 || rtb_AND17)); - rtb_AND9 = (rtb_AND1_at || (rtb_AND9 || ((rtb_y_m != 0U) && rtb_y_g))); + rtb_AND10 = (rtb_AND2_ac || (rtb_AND10 || rtb_AND17)); + rtb_AND9 = (rtb_AND1_l || (rtb_AND9 || ((rtb_y_m != 0U) && rtb_y_g))); rtb_rightAileron2Command = rtb_alpha; rtb_elevator1Command = rtb_phi; rtb_right_midboard_aileron_deg = rtb_r; @@ -1466,7 +1476,7 @@ void A380PrimComputer::step() rtb_y_or = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_1_bus.spoiler_status_word, A380PrimComputer_P.BitfromLabel2_bit_d, &rtb_y_m); - rtb_AND4_n = (rtb_y_og && (rtb_y_or || (rtb_y_m != 0U))); + rtb_AND4_d = (rtb_y_og && (rtb_y_or || (rtb_y_m != 0U))); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.spoiler_status_word, A380PrimComputer_P.BitfromLabel8_bit_l, &rtb_y_m); rtb_y_or = (rtb_y_m != 0U); @@ -1561,16 +1571,16 @@ void A380PrimComputer::step() A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel16_bit_b, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.elevator_status_word, &rtb_y_g); - rtb_AND2_b = ((rtb_y_m != 0U) && rtb_y_g); + rtb_AND2_ac = ((rtb_y_m != 0U) && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel17_bit_i, &rtb_y_m); rtb_AND15_l = ((rtb_y_m != 0U) && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel18_bit, &rtb_y_m); - rtb_AND1_at = ((rtb_y_m != 0U) && rtb_y_g); + rtb_AND1_l = ((rtb_y_m != 0U) && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel19_bit, &rtb_y_m); - rtb_NOT_k = ((rtb_y_m != 0U) && rtb_y_g); + rtb_AND12 = ((rtb_y_m != 0U) && rtb_y_g); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel20_bit, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.elevator_status_word, &rtb_y_og); @@ -1594,17 +1604,17 @@ void A380PrimComputer::step() rtb_AND3_h = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_1_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel3_bit_k, &rtb_y_m); - rtb_AND2_j = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); + rtb_AND2_i = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_1_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel4_bit_n, &rtb_y_m); - rtb_AND1_b = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); + rtb_y_og = ((rtb_y_m != 0U) && rtb_DataTypeConversion_m2); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_2_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel5_bit_e, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.sec_2_bus.elevator_status_word, &rtb_y_or); - rtb_AND4_d = ((rtb_y_m != 0U) && rtb_y_or); + rtb_AND4_i = ((rtb_y_m != 0U) && rtb_y_or); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_2_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel6_bit_b, &rtb_y_m); - rtb_y_og = ((rtb_y_m != 0U) && rtb_y_or); + rtb_NOT_k = ((rtb_y_m != 0U) && rtb_y_or); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_2_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel7_bit_p, &rtb_y_m); rtb_AND7_d = ((rtb_y_m != 0U) && rtb_y_or); @@ -1618,11 +1628,11 @@ void A380PrimComputer::step() A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_3_bus.elevator_status_word, A380PrimComputer_P.BitfromLabel11_bit_n, &rtb_y_m); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rtb_AND1_d = (rtb_AND_e || rtb_AND16_n); - rtb_AND19 = (rtb_AND18_c || rtb_AND1_at); + rtb_AND1_p = (rtb_AND_e || rtb_AND16_n); + rtb_AND19 = (rtb_AND18_c || rtb_AND1_l); rtb_AND15_l = (elevator1Avail || rtb_AND15_l); - rtb_AND16_n = (rtb_AND2_b || rtb_y_ex); - rtb_NOT_k = (rtb_thsEngaged || rtb_AND20); + rtb_AND16_n = (rtb_AND2_ac || rtb_y_ex); + rtb_AND12 = (rtb_thsEngaged || rtb_AND20); rtb_leftInboardElevPos = A380PrimComputer_U.in.analog_inputs.elevator_2_pos_deg; if (A380PrimComputer_U.in.bus_inputs.prim_y_bus.elevator_2_position_deg.SSM == static_cast (SignStatusMatrix::NormalOperation)) { @@ -1636,23 +1646,23 @@ void A380PrimComputer::step() rtb_thsPos = A380PrimComputer_U.in.analog_inputs.ths_pos_deg; } else { if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { - rtb_AND1_d = (rtb_AND16_n || rtb_AND15_l); + rtb_AND1_p = (rtb_AND16_n || rtb_AND15_l); rtb_AND19 = (rtb_y_ex || rtb_AND18_c); - rtb_AND15_l = (rtb_AND_e || rtb_AND2_b); - rtb_AND16_n = (elevator1Avail || rtb_AND1_at); - rtb_NOT_k = (rtb_NOT_k || rtb_AND20); + rtb_AND15_l = (rtb_AND_e || rtb_AND2_ac); + rtb_AND16_n = (elevator1Avail || rtb_AND1_l); + rtb_AND12 = (rtb_AND12 || rtb_AND20); } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { - rtb_AND1_d = (elevator1Avail || rtb_AND15_l); + rtb_AND1_p = (elevator1Avail || rtb_AND15_l); rtb_AND19 = (rtb_AND_e || rtb_AND19); - rtb_AND15_l = (rtb_AND2_b || rtb_AND18_c); - rtb_AND16_n = (rtb_AND16_n || rtb_AND1_at); - rtb_NOT_k = (rtb_thsEngaged || rtb_NOT_k); + rtb_AND15_l = (rtb_AND2_ac || rtb_AND18_c); + rtb_AND16_n = (rtb_AND16_n || rtb_AND1_l); + rtb_AND12 = (rtb_thsEngaged || rtb_AND12); } else { - rtb_AND1_d = false; + rtb_AND1_p = false; rtb_AND19 = false; rtb_AND15_l = false; rtb_AND16_n = false; - rtb_NOT_k = false; + rtb_AND12 = false; } if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { @@ -1699,11 +1709,11 @@ void A380PrimComputer::step() } } - rtb_AND2_b = (rtb_AND1_d || (rtb_y_or || rtb_AND3_h)); - rtb_AND1_at = (rtb_AND19 || (rtb_AND10_b || rtb_AND7_d)); - rtb_AND5_e = (rtb_AND15_l || (rtb_AND5_e || rtb_y_og)); - rtb_AND4_d = (rtb_AND16_n || (rtb_AND4_d || rtb_AND2_j)); - rtb_AND1_b = (rtb_NOT_k || (((rtb_y_m != 0U) && rtb_y_g) || rtb_AND1_b)); + rtb_AND2_ac = (rtb_AND1_p || (rtb_y_or || rtb_AND3_h)); + rtb_AND1_l = (rtb_AND19 || (rtb_AND10_b || rtb_AND7_d)); + rtb_AND5_e = (rtb_AND15_l || (rtb_AND5_e || rtb_NOT_k)); + rtb_AND4_i = (rtb_AND16_n || (rtb_AND4_i || rtb_AND2_i)); + rtb_AND12 = (rtb_AND12 || (((rtb_y_m != 0U) && rtb_y_g) || rtb_y_og)); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.rudder_status_word, A380PrimComputer_P.BitfromLabel38_bit, &rtb_y_m); rtb_NOT_k = (rtb_y_m != 0U); @@ -1751,20 +1761,20 @@ void A380PrimComputer::step() rtb_NOT_k = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sec_3_bus.rudder_status_word, A380PrimComputer_P.BitfromLabel8_bit_i, &rtb_y_m); - rtb_AND2_j = (rtb_NOT_k || (rtb_y_m != 0U)); + rtb_AND2_i = (rtb_NOT_k || (rtb_y_m != 0U)); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.sec_3_bus.rudder_status_word, &rtb_NOT_k); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { - rtb_AND3_h = (rtb_AND_n || rtb_AND6 || rtb_AND3_h); - rtb_AND15_l = (rtb_AND2_jo || rudder2HydraulicModeHasPriority || rtb_AND20); + rtb_AND3_h = (rtb_rudder1HydraulicModeEngaged || rtb_AND_n || rtb_AND3_h); + rtb_AND15_l = (rtb_rudder2HydraulicModeEngaged || rudder2ElectricModeHasPriority || rtb_AND20); rtb_upperRudderPos = A380PrimComputer_U.in.analog_inputs.rudder_1_pos_deg; rtb_lowerRudderPos = A380PrimComputer_U.in.analog_inputs.rudder_2_pos_deg; } else { if (A380PrimComputer_U.in.discrete_inputs.is_unit_2) { - rtb_AND3_h = (rtb_AND_n || rtb_AND6 || rtb_AND3_h); + rtb_AND3_h = (rtb_rudder1HydraulicModeEngaged || rtb_AND_n || rtb_AND3_h); rtb_AND15_l = (rtb_AND15_l || rtb_AND20); } else if (A380PrimComputer_U.in.discrete_inputs.is_unit_3) { rtb_AND3_h = (rtb_AND3_h || rtb_AND20); - rtb_AND15_l = (rtb_AND_n || rtb_AND6 || rtb_AND15_l); + rtb_AND15_l = (rtb_rudder1HydraulicModeEngaged || rtb_AND_n || rtb_AND15_l); } else { rtb_AND3_h = false; rtb_AND15_l = false; @@ -1794,25 +1804,25 @@ void A380PrimComputer::step() } rtb_AND3_h = (rtb_AND3_h || (rtb_y_og && rtb_DataTypeConversion_m2) || (rtb_AND16_n && rtb_y_or)); - rtb_AND15_l = (rtb_AND15_l || (rtb_y_g && rtb_DataTypeConversion_m2) || (rtb_AND2_j && rtb_NOT_k)); + rtb_AND15_l = (rtb_AND15_l || (rtb_y_g && rtb_DataTypeConversion_m2) || (rtb_AND2_i && rtb_NOT_k)); A380PrimComputer_MATLABFunction_c(A380PrimComputer_U.in.sim_data.slew_on, A380PrimComputer_U.in.time.dt, A380PrimComputer_P.ConfirmNode_isRisingEdge_o, A380PrimComputer_P.ConfirmNode_timeDelay_d, &rtb_y_og, &A380PrimComputer_DWork.sf_MATLABFunction_nb); - rtb_AND1_d = !rtb_AND1; - rtb_AND16_n = ((!rtb_y_og) && rtb_AND1_d && (((!rtb_tripleAdrFault) && ((rtb_mach > 0.96) || (rtb_Y < -10.0) || + rtb_AND1_p = !rtb_AND1; + rtb_AND16_n = ((!rtb_y_og) && rtb_AND1_p && (((!rtb_tripleAdrFault) && ((rtb_mach > 0.96) || (rtb_Y < -10.0) || (rtb_Y > 37.5) || (rtb_V_ias > 420.0F) || (rtb_V_ias < 70.0F))) || ((!rtb_tripleIrFault) && ((!rtb_doubleIrFault) || (!A380PrimComputer_P.Constant_Value_ad)) && ((std::abs(static_cast(rtb_phi)) > 120.0) || ((rtb_alpha > 50.0F) || (rtb_alpha < -30.0F)))))); - A380PrimComputer_DWork.abnormalConditionWasActive = (rtb_AND16_n || (rtb_AND1_d && + A380PrimComputer_DWork.abnormalConditionWasActive = (rtb_AND16_n || (rtb_AND1_p && A380PrimComputer_DWork.abnormalConditionWasActive)); - nz = ((rtb_AND2_b + rtb_AND1_at) + rtb_AND5_e) + rtb_AND4_d; - b_x[0] = rtb_AND6_m; + nz = ((rtb_AND2_ac + rtb_AND1_l) + rtb_AND5_e) + rtb_AND4_i; + b_x[0] = rtb_AND4_f; b_x[1] = rtb_AND11; b_x[2] = rtb_AND10; b_x[3] = rtb_AND9; - b_x[4] = rtb_AND4; - b_x[5] = rtb_AND3_d; - b_nz = rtb_AND6_m; + b_x[4] = rtb_AND3; + b_x[5] = rudder2HydraulicModeHasPriority; + b_nz = rtb_AND4_f; for (prim3LawCap = 0; prim3LawCap < 5; prim3LawCap++) { b_nz += b_x[prim3LawCap + 1]; } @@ -1833,27 +1843,27 @@ void A380PrimComputer::step() rtb_y_g = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel1_bit_e, &rtb_y_m); - rtb_AND2_j = (rtb_y_m != 0U); + rtb_AND2_i = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel2_bit_hr, &rtb_y_m); rtb_NOT_k = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel6_bit_k, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, &rtb_y_og); - A380PrimComputer_MATLABFunction_ek(rtb_y_g, rtb_AND2_j, rtb_NOT_k, rtb_y_og, &rtb_law_c); + A380PrimComputer_MATLABFunction_ek(rtb_y_g, rtb_AND2_i, rtb_NOT_k, rtb_y_og, &rtb_law_c); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel3_bit_l, &rtb_y_m); rtb_y_g = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel4_bit_bl, &rtb_y_m); - rtb_AND2_j = (rtb_y_m != 0U); + rtb_AND2_i = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel5_bit_p, &rtb_y_m); rtb_NOT_k = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel7_bit_h, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_y_bus.fctl_law_status_word, &rtb_y_og); - A380PrimComputer_MATLABFunction_ek(rtb_y_g, rtb_AND2_j, rtb_NOT_k, rtb_y_og, &rtb_law); + A380PrimComputer_MATLABFunction_ek(rtb_y_g, rtb_AND2_i, rtb_NOT_k, rtb_y_og, &rtb_law); if (A380PrimComputer_U.in.discrete_inputs.is_unit_1) { nz = static_cast(rtb_pitchLawCapability); b_nz = static_cast(rtb_law_c); @@ -1886,8 +1896,8 @@ void A380PrimComputer::step() rtb_AND20 = (iindx == 3); } - rtb_AND2_j = !rtb_AND20; - if (rtb_AND2_j) { + rtb_AND2_i = !rtb_AND20; + if (rtb_AND2_i) { rtb_law_c = a380_pitch_efcs_law::None; rtb_activeLateralLaw = a380_lateral_efcs_law::None; } else { @@ -2031,11 +2041,11 @@ void A380PrimComputer::step() A380PrimComputer_DWork.resetEventTime = A380PrimComputer_U.in.time.simulation_time; } - A380PrimComputer_DWork.sProtActive = ((rtb_AND1_d && rtb_y_g && (rtb_Y > rtb_handleIndex) && + A380PrimComputer_DWork.sProtActive = ((rtb_AND1_p && rtb_y_g && (rtb_Y > rtb_handleIndex) && (A380PrimComputer_U.in.time.monotonic_time > 10.0)) || A380PrimComputer_DWork.sProtActive); A380PrimComputer_DWork.sProtActive = ((A380PrimComputer_U.in.time.simulation_time - A380PrimComputer_DWork.resetEventTime <= 0.5) && (u0 >= -0.5) && ((rtb_raComputationValue >= 200.0F) || (u0 >= 0.5) - || (rtb_Y >= rtb_handleIndex - 2.0)) && rtb_AND1_d && rtb_y_g && A380PrimComputer_DWork.sProtActive); + || (rtb_Y >= rtb_handleIndex - 2.0)) && rtb_AND1_p && rtb_y_g && A380PrimComputer_DWork.sProtActive); if (A380PrimComputer_DWork.is_active_c28_A380PrimComputer == 0U) { A380PrimComputer_DWork.is_active_c28_A380PrimComputer = 1U; A380PrimComputer_DWork.is_c28_A380PrimComputer = A380PrimComputer_IN_Landed; @@ -2055,7 +2065,7 @@ void A380PrimComputer::step() break; case A380PrimComputer_IN_Landed: - if (rtb_AND1_d) { + if (rtb_AND1_p) { A380PrimComputer_DWork.is_c28_A380PrimComputer = A380PrimComputer_IN_Takeoff100ft; nz = 0; } else { @@ -2101,7 +2111,7 @@ void A380PrimComputer::step() A380PrimComputer_DWork.eventTime = A380PrimComputer_U.in.time.simulation_time; } - A380PrimComputer_Y.out.logic.protection_ap_disconnect = ((rtb_AND1_d && (((nz != 0) && (rtb_Y > rtb_Switch_h)) || + A380PrimComputer_Y.out.logic.protection_ap_disconnect = ((rtb_AND1_p && (((nz != 0) && (rtb_Y > rtb_Switch_h)) || (rtb_Y > rtb_handleIndex + 0.25)) && rtb_y_g) || (A380PrimComputer_U.in.time.simulation_time - A380PrimComputer_DWork.eventTime > 3.0) || A380PrimComputer_DWork.sProtActive); rtb_DataTypeConversion_m2 = (A380PrimComputer_U.in.analog_inputs.thr_lever_3_pos >= @@ -2195,7 +2205,7 @@ void A380PrimComputer::step() A380PrimComputer_MATLABFunction_e(rtb_Switch_ir_0, A380PrimComputer_P.BitfromLabel3_bit_gv, &rtb_y_m); if (rtb_AND20) { - rtb_y_g = (rtb_AND1_d && (rtb_law_c != A380PrimComputer_P.EnumeratedConstant_Value_l)); + rtb_y_g = (rtb_AND1_p && (rtb_law_c != A380PrimComputer_P.EnumeratedConstant_Value_l)); } else { rtb_y_g = ((rtb_y_m != 0U) && (rtb_Switch_ir_0->SSM == static_cast(SignStatusMatrix::NormalOperation))); } @@ -2213,7 +2223,7 @@ void A380PrimComputer::step() A380PrimComputer_P.BitfromLabel_bit_g, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word, &rtb_y_or); - rtb_AND1_d = (((!rtb_NOT_k) || (rtb_y_m == 0U)) && rtb_y_or); + rtb_AND1_p = (((!rtb_NOT_k) || (rtb_y_m == 0U)) && rtb_y_or); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word, &rtb_y_or); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word, @@ -2221,7 +2231,7 @@ void A380PrimComputer::step() rtb_NOT_k = (rtb_y_m != 0U); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word, A380PrimComputer_P.BitfromLabel5_bit_as, &rtb_y_m); - if (rtb_AND1_d || (rtb_y_or && ((!rtb_NOT_k) || (rtb_y_m == 0U)))) { + if (rtb_AND1_p || (rtb_y_or && ((!rtb_NOT_k) || (rtb_y_m == 0U)))) { abs_rate_c = 0.25; } else { abs_rate_c = 0.15; @@ -2245,7 +2255,7 @@ void A380PrimComputer::step() rtb_BusAssignment_nw_logic_alpha_max_deg = rtb_Switch_h; rtb_BusAssignment_nw_logic_high_speed_prot_hi_thresh_kn = std::fmin(A380PrimComputer_P.Constant7_Value_g, rtb_Switch4_d); - rtb_AND1_d = rtb_y_g; + rtb_AND1_p = rtb_y_g; rtb_y_g = (rtb_OR || (static_cast(rtb_activeLateralLaw) != A380PrimComputer_P.CompareToConstant_const_m4)); LawMDLOBJ2.step(&A380PrimComputer_U.in.time.dt, &rtb_rightAileron2Command, &rtb_elevator1Command, &rtb_right_midboard_aileron_deg, &rtb_left_inboard_aileron_deg, &A380PrimComputer_P.Constant_Value_a, @@ -2307,7 +2317,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_right_spoiler_2_deg, A380PrimComputer_P.RateLimiterGenericVariableTs_up_b, A380PrimComputer_P.RateLimiterGenericVariableTs_lo_k, A380PrimComputer_U.in.time.dt, rtb_leftInboardAilPos, - ((!rtb_AND6_m) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_a); + ((!rtb_AND4_f) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_a); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel_bit_l, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, &rtb_y_g); @@ -2426,7 +2436,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_right_spoiler_2_deg, A380PrimComputer_P.RateLimiterGenericVariableTs1_up_k, A380PrimComputer_P.RateLimiterGenericVariableTs1_lo_i, A380PrimComputer_U.in.time.dt, rtb_rightInboardAilPos, - ((!rtb_AND11) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_n); + ((!rtb_AND11) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_n); if (rtb_AND20) { rtb_handleIndex = rtb_Switch4_d; } else { @@ -2457,7 +2467,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_right_spoiler_2_deg, A380PrimComputer_P.RateLimiterGenericVariableTs2_up, A380PrimComputer_P.RateLimiterGenericVariableTs2_lo, A380PrimComputer_U.in.time.dt, rtb_leftMidboardAilPos, - ((!rtb_AND10) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_f); + ((!rtb_AND10) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_f); if (rtb_AND20) { rtb_left_midboard_aileron_deg = rtb_Switch4_d; } else { @@ -2473,7 +2483,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_right_spoiler_2_deg, A380PrimComputer_P.RateLimiterGenericVariableTs3_up, A380PrimComputer_P.RateLimiterGenericVariableTs3_lo, A380PrimComputer_U.in.time.dt, rtb_rightMidboardAilPos, - ((!rtb_AND9) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_au); + ((!rtb_AND9) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_au); if (rtb_AND20) { rtb_right_midboard_aileron_deg = rtb_Switch4_d; } else { @@ -2505,7 +2515,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_Sum6, A380PrimComputer_P.RateLimiterGenericVariableTs4_up, A380PrimComputer_P.RateLimiterGenericVariableTs4_lo, A380PrimComputer_U.in.time.dt, rtb_leftOutboardAilPos, - ((!rtb_AND4) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_mn); + ((!rtb_AND3) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_mn); if (rtb_AND20) { rtb_Sum6 = rtb_Switch4_d; } else { @@ -2521,7 +2531,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_right_outboard_aileron_deg, A380PrimComputer_P.RateLimiterGenericVariableTs5_up, A380PrimComputer_P.RateLimiterGenericVariableTs5_lo, A380PrimComputer_U.in.time.dt, rtb_rightOutboardAilPos, - ((!rtb_AND3_d) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_lm); + ((!rudder2HydraulicModeHasPriority) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_lm); if (rtb_AND20) { rtb_right_outboard_aileron_deg = rtb_Switch4_d; } else { @@ -2585,7 +2595,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_outerAilUpperLim; } - rtb_y_or = ((!rtb_AND13) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND13) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs8_up, A380PrimComputer_P.RateLimiterGenericVariableTs8_lo, @@ -2622,7 +2632,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_outerAilUpperLim; } - rtb_y_or = ((!rtb_AND17) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND17) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs10_up, A380PrimComputer_P.RateLimiterGenericVariableTs10_lo, @@ -2672,7 +2682,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_Switch4_d; } - rtb_y_or = ((!rtb_AND4_n) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND4_d) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs14_up, A380PrimComputer_P.RateLimiterGenericVariableTs14_lo, @@ -2709,7 +2719,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_Switch4_d; } - rtb_y_or = ((!rtb_AND7) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND7) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs12_up, A380PrimComputer_P.RateLimiterGenericVariableTs12_lo, @@ -2744,7 +2754,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_Switch4_d; } - rtb_y_or = ((!rtb_AND8) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND8) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs18_up, A380PrimComputer_P.RateLimiterGenericVariableTs18_lo, @@ -2777,7 +2787,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_Switch4_d; } - rtb_y_or = ((!rtb_AND15) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND15) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs16_up, A380PrimComputer_P.RateLimiterGenericVariableTs16_lo, @@ -2812,7 +2822,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_Switch4_d; } - rtb_y_or = ((!rtb_AND16) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND16) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs22_up, A380PrimComputer_P.RateLimiterGenericVariableTs22_lo, @@ -2851,7 +2861,7 @@ void A380PrimComputer::step() rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg = rtb_Switch4_d; } - rtb_y_or = ((!rtb_AND9_o) || rtb_AND2_j); + rtb_y_or = ((!rtb_AND9_o) || rtb_AND2_i); A380PrimComputer_RateLimiter_a (rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_left_spoiler_8_deg, A380PrimComputer_P.RateLimiterGenericVariableTs20_up, A380PrimComputer_P.RateLimiterGenericVariableTs20_lo, @@ -2895,7 +2905,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_Switch_h, A380PrimComputer_P.RateLimiterGenericVariableTs6_up, A380PrimComputer_P.RateLimiterGenericVariableTs6_lo, A380PrimComputer_U.in.time.dt, rtb_upperRudderPos, - ((!rtb_AND3_h) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_np); + ((!rtb_AND3_h) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_np); if (rtb_AND20) { rtb_BusConversion_InsertedFor_BusAssignment_at_inport_1_BusCreator1_upper_rudder_deg = rtb_Switch4_d; } else { @@ -2919,7 +2929,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_Switch_h, A380PrimComputer_P.RateLimiterGenericVariableTs7_up, A380PrimComputer_P.RateLimiterGenericVariableTs7_lo, A380PrimComputer_U.in.time.dt, rtb_lowerRudderPos, - ((!rtb_AND15_l) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_iy); + ((!rtb_AND15_l) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_iy); if (!rtb_AND20) { rtb_Switch4_d = rtb_Switch_lower_rudder_command_deg_Data; } @@ -3020,7 +3030,7 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_eta_deg_dv, A380PrimComputer_P.RateLimiterGenericVariableTs_up_a, A380PrimComputer_P.RateLimiterGenericVariableTs_lo_f, A380PrimComputer_U.in.time.dt, rtb_leftInboardElevPos, - ((!rtb_AND2_b) || rtb_AND2_j), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_cr); + ((!rtb_AND2_ac) || rtb_AND2_i), &rtb_Switch4_d, &A380PrimComputer_DWork.sf_RateLimiter_cr); A380PrimComputer_MATLABFunction_e(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, A380PrimComputer_P.BitfromLabel_bit_of, &rtb_y_m); A380PrimComputer_MATLABFunction(&A380PrimComputer_U.in.bus_inputs.prim_x_bus.fctl_law_status_word, &rtb_y_g); @@ -3054,21 +3064,21 @@ void A380PrimComputer::step() A380PrimComputer_RateLimiter_a(rtb_eta_deg_dv, A380PrimComputer_P.RateLimiterGenericVariableTs1_up_a, A380PrimComputer_P.RateLimiterGenericVariableTs1_lo_c, A380PrimComputer_U.in.time.dt, rtb_rightInboardElevPos, - ((!rtb_AND1_at) || rtb_AND2_j), &rtb_Switch_h, &A380PrimComputer_DWork.sf_RateLimiter_p); + ((!rtb_AND1_l) || rtb_AND2_i), &rtb_Switch_h, &A380PrimComputer_DWork.sf_RateLimiter_p); if (!rtb_AND20) { rtb_Switch_h = rtb_Switch_right_inboard_aileron_command_deg_Data; } A380PrimComputer_RateLimiter_a(rtb_eta_deg_dv, A380PrimComputer_P.RateLimiterGenericVariableTs2_up_l, A380PrimComputer_P.RateLimiterGenericVariableTs2_lo_k, A380PrimComputer_U.in.time.dt, rtb_leftOutboardElevPos, - ((!rtb_AND5_e) || rtb_AND2_j), &rtb_Switch1_k, &A380PrimComputer_DWork.sf_RateLimiter_cda); + ((!rtb_AND5_e) || rtb_AND2_i), &rtb_Switch1_k, &A380PrimComputer_DWork.sf_RateLimiter_cda); if (!rtb_AND20) { rtb_Switch1_k = rtb_Switch_left_midboard_aileron_command_deg_Data; } A380PrimComputer_RateLimiter_a(rtb_eta_deg_dv, A380PrimComputer_P.RateLimiterGenericVariableTs3_up_j, A380PrimComputer_P.RateLimiterGenericVariableTs3_lo_k, A380PrimComputer_U.in.time.dt, rtb_rightOutboardElevPos, (( - !rtb_AND4_d) || rtb_AND2_j), &rtb_Switch10_n, &A380PrimComputer_DWork.sf_RateLimiter_ph); + !rtb_AND4_i) || rtb_AND2_i), &rtb_Switch10_n, &A380PrimComputer_DWork.sf_RateLimiter_ph); if (!rtb_AND20) { rtb_Switch10_n = rtb_Switch_right_midboard_aileron_command_deg_Data; } @@ -3093,7 +3103,7 @@ void A380PrimComputer::step() break; } - if (rtb_AND1_d) { + if (rtb_AND1_p) { switch (static_cast(rtb_law_c)) { case 0: case 1: @@ -3114,15 +3124,15 @@ void A380PrimComputer::step() break; } - rtb_AND2_j = ((!rtb_AND1_b) || rtb_AND2_j); + rtb_AND2_i = ((!rtb_AND12) || rtb_AND2_i); } else { rtb_eta_trim_dot_deg_s_n = abs_rate_c; - rtb_AND2_j = !rtb_thsEngaged; + rtb_AND2_i = !rtb_thsEngaged; } rtb_eta_trim_dot_deg_s_n = A380PrimComputer_P.DiscreteTimeIntegratorVariableTsLimit_Gain * rtb_eta_trim_dot_deg_s_n * A380PrimComputer_U.in.time.dt; - A380PrimComputer_DWork.icLoad = (rtb_AND2_j || A380PrimComputer_DWork.icLoad); + A380PrimComputer_DWork.icLoad = (rtb_AND2_i || A380PrimComputer_DWork.icLoad); if (A380PrimComputer_DWork.icLoad) { A380PrimComputer_DWork.Delay_DSTATE_c = rtb_thsPos - rtb_eta_trim_dot_deg_s_n; } @@ -3158,7 +3168,7 @@ void A380PrimComputer::step() if (rtb_AND20) { rtb_eta_trim_limit_up_m = A380PrimComputer_DWork.Delay_DSTATE_c; - } else if (rtb_AND1_d) { + } else if (rtb_AND1_p) { rtb_eta_trim_limit_up_m = rtb_Switch_left_outboard_aileron_command_deg_Data; } else { rtb_eta_trim_limit_up_m = A380PrimComputer_DWork.Delay_DSTATE_c; @@ -3333,17 +3343,17 @@ void A380PrimComputer::step() A380PrimComputer_Y.out.bus_outputs.lower_rudder_command_deg.Data = A380PrimComputer_P.Constant15_Value; } - rtb_VectorConcatenate[0] = rtb_OR6; - rtb_VectorConcatenate[1] = rtb_OR6; + rtb_VectorConcatenate[0] = rtb_OR7; + rtb_VectorConcatenate[1] = rtb_OR7; rtb_VectorConcatenate[2] = A380PrimComputer_P.Constant16_Value; - rtb_VectorConcatenate[3] = rtb_OR7; - rtb_VectorConcatenate[4] = rtb_OR7; + rtb_VectorConcatenate[3] = rtb_doubleIrFault_tmp; + rtb_VectorConcatenate[4] = rtb_doubleIrFault_tmp; rtb_VectorConcatenate[5] = A380PrimComputer_P.Constant16_Value; - rtb_VectorConcatenate[6] = rtb_doubleIrFault_tmp; - rtb_VectorConcatenate[7] = rtb_AND1_e; + rtb_VectorConcatenate[6] = rtb_OR3; + rtb_VectorConcatenate[7] = rtb_OR1; rtb_VectorConcatenate[8] = A380PrimComputer_P.Constant16_Value; - rtb_VectorConcatenate[9] = rtb_OR3; - rtb_VectorConcatenate[10] = rtb_OR1; + rtb_VectorConcatenate[9] = rightAileron2Avail; + rtb_VectorConcatenate[10] = rtb_rightAileron2Engaged; rtb_VectorConcatenate[11] = A380PrimComputer_P.Constant16_Value; rtb_VectorConcatenate[12] = A380PrimComputer_P.Constant16_Value; rtb_VectorConcatenate[13] = A380PrimComputer_P.Constant16_Value; @@ -3398,14 +3408,14 @@ void A380PrimComputer::step() &A380PrimComputer_Y.out.bus_outputs.elevator_status_word.Data); rtb_VectorConcatenate[0] = rudder1HydraulicModeAvail; rtb_VectorConcatenate[1] = rudder1ElectricModeAvail; - rtb_VectorConcatenate[2] = rtb_AND_n; - rtb_VectorConcatenate[3] = rtb_AND6; + rtb_VectorConcatenate[2] = rtb_rudder1HydraulicModeEngaged; + rtb_VectorConcatenate[3] = rtb_AND_n; rtb_VectorConcatenate[4] = A380PrimComputer_P.Constant19_Value; rtb_VectorConcatenate[5] = A380PrimComputer_P.Constant19_Value; - rtb_VectorConcatenate[6] = rudder1HydraulicModeHasPriority; - rtb_VectorConcatenate[7] = rtb_AND3; - rtb_VectorConcatenate[8] = rtb_AND2_jo; - rtb_VectorConcatenate[9] = rudder2HydraulicModeHasPriority; + rtb_VectorConcatenate[6] = rtb_AND6_o; + rtb_VectorConcatenate[7] = rudder1HydraulicModeHasPriority; + rtb_VectorConcatenate[8] = rtb_rudder2HydraulicModeEngaged; + rtb_VectorConcatenate[9] = rudder2ElectricModeHasPriority; rtb_VectorConcatenate[10] = A380PrimComputer_P.Constant19_Value; rtb_VectorConcatenate[11] = A380PrimComputer_P.Constant19_Value; rtb_VectorConcatenate[12] = A380PrimComputer_P.Constant19_Value; @@ -3437,7 +3447,7 @@ void A380PrimComputer::step() rtb_VectorConcatenate_c[18] = A380PrimComputer_P.Constant21_Value; A380PrimComputer_MATLABFunction_cw(rtb_VectorConcatenate_c, &A380PrimComputer_Y.out.bus_outputs.fctl_law_status_word.Data); - rtb_VectorConcatenate_c[0] = rtb_AND1_d; + rtb_VectorConcatenate_c[0] = rtb_AND1_p; rtb_VectorConcatenate_c[1] = A380PrimComputer_P.Constant22_Value; rtb_VectorConcatenate_c[2] = A380PrimComputer_P.Constant22_Value; rtb_VectorConcatenate_c[3] = A380PrimComputer_P.Constant22_Value; @@ -3495,25 +3505,25 @@ void A380PrimComputer::step() A380PrimComputer_Y.out.laws.pitch_law_outputs.ths_deg = rtb_eta_trim_limit_up_m; A380PrimComputer_Y.out.logic.on_ground = rtb_AND1; A380PrimComputer_Y.out.logic.tracking_mode_on = rtb_OR; - A380PrimComputer_Y.out.logic.surface_statuses.left_inboard_aileron_engaged = rtb_AND6_m; + A380PrimComputer_Y.out.logic.surface_statuses.left_inboard_aileron_engaged = rtb_AND4_f; A380PrimComputer_Y.out.logic.surface_statuses.right_inboard_aileron_engaged = rtb_AND11; A380PrimComputer_Y.out.logic.surface_statuses.left_midboard_aileron_engaged = rtb_AND10; A380PrimComputer_Y.out.logic.surface_statuses.right_midboard_aileron_engaged = rtb_AND9; - A380PrimComputer_Y.out.logic.surface_statuses.left_outboard_aileron_engaged = rtb_AND4; - A380PrimComputer_Y.out.logic.surface_statuses.right_outboard_aileron_engaged = rtb_AND3_d; + A380PrimComputer_Y.out.logic.surface_statuses.left_outboard_aileron_engaged = rtb_AND3; + A380PrimComputer_Y.out.logic.surface_statuses.right_outboard_aileron_engaged = rudder2HydraulicModeHasPriority; A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_1_engaged = rtb_AND13; A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_2_engaged = rtb_AND17; - A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_3_engaged = rtb_AND4_n; + A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_3_engaged = rtb_AND4_d; A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_4_engaged = rtb_AND7; A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_5_engaged = rtb_AND8; A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_6_engaged = rtb_AND15; A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_7_engaged = rtb_AND16; A380PrimComputer_Y.out.logic.surface_statuses.spoiler_pair_8_engaged = rtb_AND9_o; - A380PrimComputer_Y.out.logic.surface_statuses.left_inboard_elevator_engaged = rtb_AND2_b; - A380PrimComputer_Y.out.logic.surface_statuses.right_inboard_elevator_engaged = rtb_AND1_at; + A380PrimComputer_Y.out.logic.surface_statuses.left_inboard_elevator_engaged = rtb_AND2_ac; + A380PrimComputer_Y.out.logic.surface_statuses.right_inboard_elevator_engaged = rtb_AND1_l; A380PrimComputer_Y.out.logic.surface_statuses.left_outboard_elevator_engaged = rtb_AND5_e; - A380PrimComputer_Y.out.logic.surface_statuses.right_outboard_elevator_engaged = rtb_AND4_d; - A380PrimComputer_Y.out.logic.surface_statuses.ths_engaged = rtb_AND1_b; + A380PrimComputer_Y.out.logic.surface_statuses.right_outboard_elevator_engaged = rtb_AND4_i; + A380PrimComputer_Y.out.logic.surface_statuses.ths_engaged = rtb_AND12; A380PrimComputer_Y.out.logic.surface_statuses.upper_rudder_engaged = rtb_AND3_h; A380PrimComputer_Y.out.logic.surface_statuses.lower_rudder_engaged = rtb_AND15_l; A380PrimComputer_Y.out.logic.lateral_surface_positions.left_inboard_aileron_deg = rtb_leftInboardAilPos; @@ -3569,14 +3579,14 @@ void A380PrimComputer::step() A380PrimComputer_Y.out.logic.elevator_3_engaged = rtb_y_ex; A380PrimComputer_Y.out.logic.ths_avail = thsAvail; A380PrimComputer_Y.out.logic.ths_engaged = rtb_thsEngaged; - A380PrimComputer_Y.out.logic.left_aileron_1_avail = rtb_OR6; - A380PrimComputer_Y.out.logic.left_aileron_1_engaged = rtb_OR6; - A380PrimComputer_Y.out.logic.left_aileron_2_avail = rtb_doubleIrFault_tmp; - A380PrimComputer_Y.out.logic.left_aileron_2_engaged = rtb_AND1_e; - A380PrimComputer_Y.out.logic.right_aileron_1_avail = rtb_OR7; - A380PrimComputer_Y.out.logic.right_aileron_1_engaged = rtb_OR7; - A380PrimComputer_Y.out.logic.right_aileron_2_avail = rtb_OR3; - A380PrimComputer_Y.out.logic.right_aileron_2_engaged = rtb_OR1; + A380PrimComputer_Y.out.logic.left_aileron_1_avail = rtb_OR7; + A380PrimComputer_Y.out.logic.left_aileron_1_engaged = rtb_OR7; + A380PrimComputer_Y.out.logic.left_aileron_2_avail = rtb_OR3; + A380PrimComputer_Y.out.logic.left_aileron_2_engaged = rtb_OR1; + A380PrimComputer_Y.out.logic.right_aileron_1_avail = rtb_doubleIrFault_tmp; + A380PrimComputer_Y.out.logic.right_aileron_1_engaged = rtb_doubleIrFault_tmp; + A380PrimComputer_Y.out.logic.right_aileron_2_avail = rightAileron2Avail; + A380PrimComputer_Y.out.logic.right_aileron_2_engaged = rtb_rightAileron2Engaged; A380PrimComputer_Y.out.logic.left_spoiler_hydraulic_mode_avail = leftSpoilerHydraulicModeAvail; A380PrimComputer_Y.out.logic.left_spoiler_electric_mode_avail = leftSpoilerElectricModeAvail; A380PrimComputer_Y.out.logic.left_spoiler_hydraulic_mode_engaged = rtb_leftSpoilerHydraulicModeEngaged; @@ -3587,20 +3597,21 @@ void A380PrimComputer::step() A380PrimComputer_Y.out.logic.right_spoiler_electric_mode_engaged = rtb_rightSpoilerElectricModeEngaged; A380PrimComputer_Y.out.logic.rudder_1_hydraulic_mode_avail = rudder1HydraulicModeAvail; A380PrimComputer_Y.out.logic.rudder_1_electric_mode_avail = rudder1ElectricModeAvail; - A380PrimComputer_Y.out.logic.rudder_1_hydraulic_mode_engaged = rtb_AND_n; - A380PrimComputer_Y.out.logic.rudder_1_electric_mode_engaged = rtb_AND6; - A380PrimComputer_Y.out.logic.rudder_2_hydraulic_mode_avail = rudder1HydraulicModeHasPriority; - A380PrimComputer_Y.out.logic.rudder_2_electric_mode_avail = rtb_AND3; - A380PrimComputer_Y.out.logic.rudder_2_hydraulic_mode_engaged = rtb_AND2_jo; - A380PrimComputer_Y.out.logic.rudder_2_electric_mode_engaged = rudder2HydraulicModeHasPriority; + A380PrimComputer_Y.out.logic.rudder_1_hydraulic_mode_engaged = rtb_rudder1HydraulicModeEngaged; + A380PrimComputer_Y.out.logic.rudder_1_electric_mode_engaged = rtb_AND_n; + A380PrimComputer_Y.out.logic.rudder_2_hydraulic_mode_avail = rtb_AND6_o; + A380PrimComputer_Y.out.logic.rudder_2_electric_mode_avail = rudder1HydraulicModeHasPriority; + A380PrimComputer_Y.out.logic.rudder_2_hydraulic_mode_engaged = rtb_rudder2HydraulicModeEngaged; + A380PrimComputer_Y.out.logic.rudder_2_electric_mode_engaged = rudder2ElectricModeHasPriority; A380PrimComputer_Y.out.logic.aileron_droop_active = rtb_AND19; A380PrimComputer_Y.out.logic.aileron_antidroop_active = A380PrimComputer_DWork.Delay1_DSTATE_b; - A380PrimComputer_Y.out.logic.ths_automatic_mode_active = rtb_AND1_d; + A380PrimComputer_Y.out.logic.ths_automatic_mode_active = rtb_AND1_p; A380PrimComputer_Y.out.logic.ths_manual_mode_c_deg_s = abs_rate_c; A380PrimComputer_Y.out.logic.is_yellow_hydraulic_power_avail = rtb_BusAssignment_j_logic_is_yellow_hydraulic_power_avail; A380PrimComputer_Y.out.logic.is_green_hydraulic_power_avail = rtb_BusAssignment_hi_logic_is_green_hydraulic_power_avail; + A380PrimComputer_Y.out.logic.eha_ebha_elec_mode_inhibited = rtb_OR6; A380PrimComputer_Y.out.logic.left_sidestick_disabled = A380PrimComputer_DWork.pLeftStickDisabled; A380PrimComputer_Y.out.logic.right_sidestick_disabled = A380PrimComputer_DWork.pRightStickDisabled; A380PrimComputer_Y.out.logic.left_sidestick_priority_locked = rtb_AND7_d; @@ -3643,16 +3654,16 @@ void A380PrimComputer::step() A380PrimComputer_Y.out.discrete_outputs.elevator_2_active_mode = rtb_AND_e; A380PrimComputer_Y.out.discrete_outputs.elevator_3_active_mode = rtb_y_ex; A380PrimComputer_Y.out.discrete_outputs.ths_active_mode = rtb_thsEngaged; - A380PrimComputer_Y.out.discrete_outputs.left_aileron_1_active_mode = rtb_OR6; - A380PrimComputer_Y.out.discrete_outputs.left_aileron_2_active_mode = rtb_AND1_e; - A380PrimComputer_Y.out.discrete_outputs.right_aileron_1_active_mode = rtb_OR7; - A380PrimComputer_Y.out.discrete_outputs.right_aileron_2_active_mode = rtb_OR1; + A380PrimComputer_Y.out.discrete_outputs.left_aileron_1_active_mode = rtb_OR7; + A380PrimComputer_Y.out.discrete_outputs.left_aileron_2_active_mode = rtb_OR1; + A380PrimComputer_Y.out.discrete_outputs.right_aileron_1_active_mode = rtb_doubleIrFault_tmp; + A380PrimComputer_Y.out.discrete_outputs.right_aileron_2_active_mode = rtb_rightAileron2Engaged; A380PrimComputer_Y.out.discrete_outputs.left_spoiler_electronic_module_enable = rtb_leftSpoilerElectricModeEngaged; A380PrimComputer_Y.out.discrete_outputs.right_spoiler_electronic_module_enable = rtb_rightSpoilerElectricModeEngaged; - A380PrimComputer_Y.out.discrete_outputs.rudder_1_hydraulic_active_mode = rtb_AND_n; - A380PrimComputer_Y.out.discrete_outputs.rudder_1_electric_active_mode = rtb_AND6; - A380PrimComputer_Y.out.discrete_outputs.rudder_2_hydraulic_active_mode = rtb_AND2_jo; - A380PrimComputer_Y.out.discrete_outputs.rudder_2_electric_active_mode = rudder2HydraulicModeHasPriority; + A380PrimComputer_Y.out.discrete_outputs.rudder_1_hydraulic_active_mode = rtb_rudder1HydraulicModeEngaged; + A380PrimComputer_Y.out.discrete_outputs.rudder_1_electric_active_mode = rtb_AND_n; + A380PrimComputer_Y.out.discrete_outputs.rudder_2_hydraulic_active_mode = rtb_rudder2HydraulicModeEngaged; + A380PrimComputer_Y.out.discrete_outputs.rudder_2_electric_active_mode = rudder2ElectricModeHasPriority; A380PrimComputer_Y.out.discrete_outputs.prim_healthy = A380PrimComputer_P.Constant1_Value_f; A380PrimComputer_Y.out.discrete_outputs.fcu_own_select = A380PrimComputer_P.Constant_Value_ba; A380PrimComputer_Y.out.discrete_outputs.fcu_opp_select = A380PrimComputer_P.Constant_Value_ba; @@ -3681,25 +3692,25 @@ void A380PrimComputer::step() A380PrimComputer_Y.out.analog_outputs.ths_pos_order_deg = A380PrimComputer_P.Constant3_Value_g; } - if (rtb_OR6) { + if (rtb_OR7) { A380PrimComputer_Y.out.analog_outputs.left_aileron_1_pos_order_deg = rtb_eta_deg_dv; } else { A380PrimComputer_Y.out.analog_outputs.left_aileron_1_pos_order_deg = A380PrimComputer_P.Constant4_Value_i; } - if (rtb_AND1_e) { + if (rtb_OR1) { A380PrimComputer_Y.out.analog_outputs.left_aileron_2_pos_order_deg = rtb_eta_trim_limit_lo_d; } else { A380PrimComputer_Y.out.analog_outputs.left_aileron_2_pos_order_deg = A380PrimComputer_P.Constant5_Value_n; } - if (rtb_OR7) { + if (rtb_doubleIrFault_tmp) { A380PrimComputer_Y.out.analog_outputs.right_aileron_1_pos_order_deg = rtb_eta_trim_dot_deg_s_n; } else { A380PrimComputer_Y.out.analog_outputs.right_aileron_1_pos_order_deg = A380PrimComputer_P.Constant6_Value_f; } - if (rtb_OR1) { + if (rtb_rightAileron2Engaged) { A380PrimComputer_Y.out.analog_outputs.right_aileron_2_pos_order_deg = rtb_rightAileron2Command; } else { A380PrimComputer_Y.out.analog_outputs.right_aileron_2_pos_order_deg = A380PrimComputer_P.Constant7_Value; @@ -3713,13 +3724,13 @@ void A380PrimComputer::step() A380PrimComputer_Y.out.analog_outputs.right_spoiler_pos_order_deg = A380PrimComputer_P.Constant9_Value_n; } - if (rtb_AND6 || rtb_AND_n) { + if (rtb_AND_n || rtb_rudder1HydraulicModeEngaged) { A380PrimComputer_Y.out.analog_outputs.rudder_1_pos_order_deg = rtb_rudder1Command; } else { A380PrimComputer_Y.out.analog_outputs.rudder_1_pos_order_deg = A380PrimComputer_P.Constant10_Value; } - if (rudder2HydraulicModeHasPriority || rtb_AND2_jo) { + if (rudder2ElectricModeHasPriority || rtb_rudder2HydraulicModeEngaged) { A380PrimComputer_Y.out.analog_outputs.rudder_2_pos_order_deg = rtb_rudder2Command; } else { A380PrimComputer_Y.out.analog_outputs.rudder_2_pos_order_deg = A380PrimComputer_P.Constant11_Value; diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.h b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.h index 7c6cfa64c44..652a0be42ac 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.h +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer.h @@ -43,12 +43,12 @@ class A380PrimComputer final boolean_T previousInput_not_empty; }; - struct rtDW_MATLABFunction_A380PrimComputer_k_T { + struct rtDW_MATLABFunction_A380PrimComputer_hg_T { real_T timeSinceCondition; boolean_T output; }; - struct rtDW_MATLABFunction_A380PrimComputer_km_T { + struct rtDW_MATLABFunction_A380PrimComputer_c_T { boolean_T output; }; @@ -89,21 +89,21 @@ class A380PrimComputer final boolean_T Runtime_MODE; rtDW_MATLABFunction_A380PrimComputer_j_T sf_MATLABFunction_dmh; rtDW_MATLABFunction_A380PrimComputer_j_T sf_MATLABFunction_ky; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_al4; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_al4; rtDW_MATLABFunction_A380PrimComputer_j_T sf_MATLABFunction_nu; rtDW_MATLABFunction_A380PrimComputer_j_T sf_MATLABFunction_g4; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_j2; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_g24; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_lf; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_jl; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_jz; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_j2; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_g24; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_lf; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_jl; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_jz; rtDW_RateLimiter_A380PrimComputer_b_T sf_RateLimiter_mr; rtDW_RateLimiter_A380PrimComputer_b_T sf_RateLimiter_ne; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_nb; - rtDW_MATLABFunction_A380PrimComputer_km_T sf_MATLABFunction_br; - rtDW_MATLABFunction_A380PrimComputer_km_T sf_MATLABFunction_jg; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_gfx; - rtDW_MATLABFunction_A380PrimComputer_k_T sf_MATLABFunction_cj; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_nb; + rtDW_MATLABFunction_A380PrimComputer_c_T sf_MATLABFunction_e1; + rtDW_MATLABFunction_A380PrimComputer_c_T sf_MATLABFunction_nj; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_kq; + rtDW_MATLABFunction_A380PrimComputer_hg_T sf_MATLABFunction_cx; rtDW_MATLABFunction_A380PrimComputer_j_T sf_MATLABFunction_jj; rtDW_MATLABFunction_A380PrimComputer_j_T sf_MATLABFunction_ej; rtDW_MATLABFunction_A380PrimComputer_j_T sf_MATLABFunction_ja; @@ -369,8 +369,8 @@ class A380PrimComputer final real_T ConfirmNode_timeDelay; real_T ConfirmNode2_timeDelay; real_T ConfirmNode1_timeDelay; - real_T ConfirmNode_timeDelay_n; - real_T ConfirmNode2_timeDelay_k; + real_T ConfirmNode_timeDelay_i; + real_T ConfirmNode2_timeDelay_h; real_T ConfirmNode_timeDelay_d; real_T ConfirmNode1_timeDelay_a; real_T ConfirmNode_timeDelay_a; @@ -423,8 +423,8 @@ class A380PrimComputer final boolean_T ConfirmNode_isRisingEdge; boolean_T ConfirmNode2_isRisingEdge; boolean_T ConfirmNode1_isRisingEdge; - boolean_T ConfirmNode_isRisingEdge_k; - boolean_T ConfirmNode2_isRisingEdge_j; + boolean_T ConfirmNode_isRisingEdge_l; + boolean_T ConfirmNode2_isRisingEdge_i; boolean_T ConfirmNode_isRisingEdge_o; boolean_T PulseNode_isRisingEdge; boolean_T PulseNode1_isRisingEdge; @@ -546,6 +546,7 @@ class A380PrimComputer final uint32_T alphaprotection_maxIndex[2]; boolean_T Constant1_Value_b; boolean_T Constant_Value_ad; + boolean_T Constant_Value_aq; boolean_T Delay_InitialCondition; boolean_T Delay1_InitialCondition; boolean_T reset_Value; @@ -617,12 +618,12 @@ class A380PrimComputer final static void A380PrimComputer_MATLABFunction_m_Reset(rtDW_MATLABFunction_A380PrimComputer_j_T *localDW); static void A380PrimComputer_MATLABFunction_m(boolean_T rtu_u, boolean_T rtu_isRisingEdge, boolean_T *rty_y, rtDW_MATLABFunction_A380PrimComputer_j_T *localDW); - static void A380PrimComputer_MATLABFunction_p_Reset(rtDW_MATLABFunction_A380PrimComputer_k_T *localDW); + static void A380PrimComputer_MATLABFunction_ge_Reset(rtDW_MATLABFunction_A380PrimComputer_hg_T *localDW); static void A380PrimComputer_MATLABFunction_c(boolean_T rtu_u, real_T rtu_Ts, boolean_T rtu_isRisingEdge, real_T - rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380PrimComputer_k_T *localDW); - static void A380PrimComputer_MATLABFunction_j_Reset(rtDW_MATLABFunction_A380PrimComputer_km_T *localDW); - static void A380PrimComputer_MATLABFunction_j(real_T rtu_u, real_T rtu_highTrigger, real_T rtu_lowTrigger, boolean_T - *rty_y, rtDW_MATLABFunction_A380PrimComputer_km_T *localDW); + rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380PrimComputer_hg_T *localDW); + static void A380PrimComputer_MATLABFunction_d_Reset(rtDW_MATLABFunction_A380PrimComputer_c_T *localDW); + static void A380PrimComputer_MATLABFunction_n(real_T rtu_u, real_T rtu_highTrigger, real_T rtu_lowTrigger, boolean_T + *rty_y, rtDW_MATLABFunction_A380PrimComputer_c_T *localDW); static void A380PrimComputer_MATLABFunction_ek(boolean_T rtu_bit1, boolean_T rtu_bit2, boolean_T rtu_bit3, boolean_T rtu_valid, a380_pitch_efcs_law *rty_law); static void A380PrimComputer_GetIASforMach4(real_T rtu_m, real_T rtu_m_t, real_T rtu_v, real_T *rty_v_t); diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_data.cpp b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_data.cpp index 88c91c5b6c5..e4e6b88eac1 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_data.cpp +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_data.cpp @@ -110,6 +110,7 @@ base_prim_logic_outputs rtP_prim_logic_output_MATLABStruct{ false, false, false, + false, 0.0, 0.0, false, @@ -828,6 +829,8 @@ A380PrimComputer::Parameters_A380PrimComputer_T A380PrimComputer::A380PrimComput false, false, false, + false, + false, false }, @@ -2610,6 +2613,7 @@ A380PrimComputer::Parameters_A380PrimComputer_T A380PrimComputer::A380PrimComput false, false, false, + false, 0.0, 0.0, false, @@ -3448,6 +3452,8 @@ A380PrimComputer::Parameters_A380PrimComputer_T A380PrimComputer::A380PrimComput false, + true, + false, false, diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_types.h b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_types.h index c43ce788939..da403c80472 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_types.h +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380PrimComputer_types.h @@ -30,6 +30,35 @@ enum class SignStatusMatrix #endif +#ifndef DEFINED_TYPEDEF_FOR_base_prim_discrete_inputs_ +#define DEFINED_TYPEDEF_FOR_base_prim_discrete_inputs_ + +struct base_prim_discrete_inputs +{ + boolean_T prim_overhead_button_pressed; + boolean_T is_unit_1; + boolean_T is_unit_2; + boolean_T is_unit_3; + boolean_T capt_priority_takeover_pressed; + boolean_T fo_priority_takeover_pressed; + boolean_T ap_1_pushbutton_pressed; + boolean_T ap_2_pushbutton_pressed; + boolean_T fcu_healthy; + boolean_T athr_pushbutton; + boolean_T ir_3_on_capt; + boolean_T ir_3_on_fo; + boolean_T adr_3_on_capt; + boolean_T adr_3_on_fo; + boolean_T rat_deployed; + boolean_T rat_contactor_closed; + boolean_T pitch_trim_up_pressed; + boolean_T pitch_trim_down_pressed; + boolean_T green_low_pressure; + boolean_T yellow_low_pressure; +}; + +#endif + #ifndef DEFINED_TYPEDEF_FOR_base_prim_pitch_surface_positions_ #define DEFINED_TYPEDEF_FOR_base_prim_pitch_surface_positions_ @@ -83,33 +112,6 @@ struct base_sim_data #endif -#ifndef DEFINED_TYPEDEF_FOR_base_prim_discrete_inputs_ -#define DEFINED_TYPEDEF_FOR_base_prim_discrete_inputs_ - -struct base_prim_discrete_inputs -{ - boolean_T prim_overhead_button_pressed; - boolean_T is_unit_1; - boolean_T is_unit_2; - boolean_T is_unit_3; - boolean_T capt_priority_takeover_pressed; - boolean_T fo_priority_takeover_pressed; - boolean_T ap_1_pushbutton_pressed; - boolean_T ap_2_pushbutton_pressed; - boolean_T fcu_healthy; - boolean_T athr_pushbutton; - boolean_T ir_3_on_capt; - boolean_T ir_3_on_fo; - boolean_T adr_3_on_capt; - boolean_T adr_3_on_fo; - boolean_T pitch_trim_up_pressed; - boolean_T pitch_trim_down_pressed; - boolean_T green_low_pressure; - boolean_T yellow_low_pressure; -}; - -#endif - #ifndef DEFINED_TYPEDEF_FOR_base_prim_analog_inputs_ #define DEFINED_TYPEDEF_FOR_base_prim_analog_inputs_ @@ -565,6 +567,7 @@ struct base_prim_logic_outputs real_T ths_manual_mode_c_deg_s; boolean_T is_yellow_hydraulic_power_avail; boolean_T is_green_hydraulic_power_avail; + boolean_T eha_ebha_elec_mode_inhibited; boolean_T left_sidestick_disabled; boolean_T right_sidestick_disabled; boolean_T left_sidestick_priority_locked; diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.cpp b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.cpp index cb837ce506f..0b15a9bb792 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.cpp +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.cpp @@ -80,14 +80,14 @@ void A380SecComputer::A380SecComputer_MATLABFunction_c(const base_arinc_429 *rtu *rty_y = a & 1U; } -void A380SecComputer::A380SecComputer_MATLABFunction_js_Reset(rtDW_MATLABFunction_A380SecComputer_k_T *localDW) +void A380SecComputer::A380SecComputer_MATLABFunction_k_Reset(rtDW_MATLABFunction_A380SecComputer_c_T *localDW) { localDW->output = false; localDW->timeSinceCondition = 0.0; } -void A380SecComputer::A380SecComputer_MATLABFunction_cj(boolean_T rtu_u, real_T rtu_Ts, boolean_T rtu_isRisingEdge, - real_T rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380SecComputer_k_T *localDW) +void A380SecComputer::A380SecComputer_MATLABFunction_m(boolean_T rtu_u, real_T rtu_Ts, boolean_T rtu_isRisingEdge, + real_T rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380SecComputer_c_T *localDW) { if (rtu_u == rtu_isRisingEdge) { localDW->timeSinceCondition += rtu_Ts; @@ -102,21 +102,6 @@ void A380SecComputer::A380SecComputer_MATLABFunction_cj(boolean_T rtu_u, real_T *rty_y = localDW->output; } -void A380SecComputer::A380SecComputer_MATLABFunction_j2_Reset(rtDW_MATLABFunction_A380SecComputer_km_T *localDW) -{ - localDW->output = false; -} - -void A380SecComputer::A380SecComputer_MATLABFunction_j(real_T rtu_u, real_T rtu_highTrigger, real_T rtu_lowTrigger, - boolean_T *rty_y, rtDW_MATLABFunction_A380SecComputer_km_T *localDW) -{ - boolean_T output_tmp; - output_tmp = !localDW->output; - localDW->output = ((output_tmp && (rtu_u >= rtu_highTrigger)) || ((output_tmp || (rtu_u > rtu_lowTrigger)) && - localDW->output)); - *rty_y = localDW->output; -} - void A380SecComputer::A380SecComputer_MATLABFunction_f_Reset(rtDW_MATLABFunction_A380SecComputer_b_T *localDW) { localDW->previousInput_not_empty = false; @@ -213,9 +198,9 @@ void A380SecComputer::step() boolean_T rtb_AND2_a; boolean_T rtb_AND2_c; boolean_T rtb_AND3_dt; - boolean_T rtb_AND4; + boolean_T rtb_AND4_ab; boolean_T rtb_AND4_e; - boolean_T rtb_AND4_l; + boolean_T rtb_AND4_m; boolean_T rtb_AND5_e; boolean_T rtb_AND6; boolean_T rtb_AND6_e; @@ -251,14 +236,14 @@ void A380SecComputer::step() A380SecComputer_DWork.icLoad = true; A380SecComputer_DWork.pY_not_empty = false; A380SecComputer_DWork.pU_not_empty = false; - A380SecComputer_MATLABFunction_js_Reset(&A380SecComputer_DWork.sf_MATLABFunction_cj); - A380SecComputer_MATLABFunction_js_Reset(&A380SecComputer_DWork.sf_MATLABFunction_gf); + A380SecComputer_MATLABFunction_k_Reset(&A380SecComputer_DWork.sf_MATLABFunction_mg); + A380SecComputer_MATLABFunction_k_Reset(&A380SecComputer_DWork.sf_MATLABFunction_bd); A380SecComputer_MATLABFunction_f_Reset(&A380SecComputer_DWork.sf_MATLABFunction_g4); A380SecComputer_MATLABFunction_f_Reset(&A380SecComputer_DWork.sf_MATLABFunction_nu); A380SecComputer_DWork.pLeftStickDisabled = false; A380SecComputer_DWork.pRightStickDisabled = false; - A380SecComputer_MATLABFunction_js_Reset(&A380SecComputer_DWork.sf_MATLABFunction_j2); - A380SecComputer_MATLABFunction_js_Reset(&A380SecComputer_DWork.sf_MATLABFunction_g2); + A380SecComputer_MATLABFunction_k_Reset(&A380SecComputer_DWork.sf_MATLABFunction_j2); + A380SecComputer_MATLABFunction_k_Reset(&A380SecComputer_DWork.sf_MATLABFunction_g2); A380SecComputer_MATLABFunction_f_Reset(&A380SecComputer_DWork.sf_MATLABFunction_ek); A380SecComputer_MATLABFunction_f_Reset(&A380SecComputer_DWork.sf_MATLABFunction_mf); LawMDLOBJ1.reset(); @@ -279,8 +264,6 @@ void A380SecComputer::step() A380SecComputer_RateLimiter_j_Reset(&A380SecComputer_DWork.sf_RateLimiter_c); A380SecComputer_RateLimiter_j_Reset(&A380SecComputer_DWork.sf_RateLimiter_p0); A380SecComputer_RateLimiter_j_Reset(&A380SecComputer_DWork.sf_RateLimiter_cd); - A380SecComputer_MATLABFunction_j2_Reset(&A380SecComputer_DWork.sf_MATLABFunction_jg); - A380SecComputer_MATLABFunction_j2_Reset(&A380SecComputer_DWork.sf_MATLABFunction_br); A380SecComputer_DWork.Runtime_MODE = true; } @@ -298,7 +281,6 @@ void A380SecComputer::step() (A380SecComputer_U.in.bus_inputs.adr_2_bus.aoa_corrected_deg.SSM == static_cast (SignStatusMatrix::FailureWarning)) || A380SecComputer_P.Constant1_Value_b || A380SecComputer_P.Constant1_Value_b); - rtb_Compare_l = A380SecComputer_P.Constant1_Value_b; rtb_OR = ((A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_angle_deg.SSM != static_cast(SignStatusMatrix:: NormalOperation)) || (A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_angle_deg.SSM != static_cast(SignStatusMatrix::NormalOperation)) || @@ -417,13 +399,14 @@ void A380SecComputer::step() rtb_phi_dot = 0.0F; } - A380SecComputer_MATLABFunction_cj(!A380SecComputer_U.in.discrete_inputs.yellow_low_pressure, + A380SecComputer_MATLABFunction_m(!A380SecComputer_U.in.discrete_inputs.yellow_low_pressure, A380SecComputer_U.in.time.dt, A380SecComputer_P.ConfirmNode_isRisingEdge, A380SecComputer_P.ConfirmNode_timeDelay, - &rtb_logic_c_is_yellow_hydraulic_power_avail, &A380SecComputer_DWork.sf_MATLABFunction_cj); - A380SecComputer_MATLABFunction_cj(!A380SecComputer_U.in.discrete_inputs.green_low_pressure, + &rtb_logic_c_is_yellow_hydraulic_power_avail, &A380SecComputer_DWork.sf_MATLABFunction_mg); + A380SecComputer_MATLABFunction_m(!A380SecComputer_U.in.discrete_inputs.green_low_pressure, A380SecComputer_U.in.time.dt, A380SecComputer_P.ConfirmNode2_isRisingEdge, A380SecComputer_P.ConfirmNode2_timeDelay, &rtb_logic_c_is_green_hydraulic_power_avail, - &A380SecComputer_DWork.sf_MATLABFunction_gf); + &A380SecComputer_DWork.sf_MATLABFunction_bd); + rtb_Compare_l = false; A380SecComputer_MATLABFunction_c(&A380SecComputer_U.in.bus_inputs.prim_1_bus.fctl_law_status_word, A380SecComputer_P.BitfromLabel6_bit, &rtb_y_ar); A380SecComputer_MATLABFunction(&A380SecComputer_U.in.bus_inputs.prim_1_bus.fctl_law_status_word, &rtb_Compare_l); @@ -513,7 +496,7 @@ void A380SecComputer::step() rtb_BusConversion_InsertedFor_MATLABFunction_at_inport_0_BusCreator1_mi.Data = rtb_alpha; A380SecComputer_MATLABFunction(&rtb_BusConversion_InsertedFor_MATLABFunction_at_inport_0_BusCreator1_mi, &rtb_Compare_l); - rtb_AND4 = ((rtb_y_p != 0U) && rtb_Compare_l); + rtb_AND4_e = ((rtb_y_p != 0U) && rtb_Compare_l); rtb_BusConversion_InsertedFor_MATLABFunction_at_inport_0_BusCreator1_mi.SSM = rtb_y_ar; rtb_BusConversion_InsertedFor_MATLABFunction_at_inport_0_BusCreator1_mi.Data = rtb_alpha; A380SecComputer_MATLABFunction_c(&rtb_BusConversion_InsertedFor_MATLABFunction_at_inport_0_BusCreator1_mi, @@ -684,7 +667,7 @@ void A380SecComputer::step() rtb_AND2_c = (rtb_y_k != 0U); } - rtb_AND4_l = (rtb_AND2_c && rtb_y_c); + rtb_AND4_m = (rtb_AND2_c && rtb_y_c); if (A380SecComputer_U.in.discrete_inputs.is_unit_2) { rtb_y_ar = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_status_word.SSM; rtb_alpha = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_status_word.Data; @@ -947,7 +930,7 @@ void A380SecComputer::step() A380SecComputer_MATLABFunction_c(&A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_status_word, A380SecComputer_P.BitfromLabel5_bit_c, &rtb_y_ar); A380SecComputer_MATLABFunction(&A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_status_word, &rtb_y_c); - rtb_AND4_e = ((rtb_y_ar != 0U) && rtb_y_c); + rtb_AND4_ab = ((rtb_y_ar != 0U) && rtb_y_c); A380SecComputer_MATLABFunction_c(&A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_status_word, A380SecComputer_P.BitfromLabel6_bit_h, &rtb_y_ar); rtb_AND7 = (rtb_y_c && (rtb_y_ar != 0U)); @@ -958,14 +941,14 @@ void A380SecComputer::step() rtb_AND7_g = rtb_logic_c_is_green_hydraulic_power_avail; rtb_AND9_e = true; rtb_AND2_c = !rtb_AND2_c; - rtb_y_c = !rtb_AND4_e; - rtb_AND4_e = (rtb_AND2_c && rtb_y_c); + rtb_y_c = !rtb_AND4_ab; + rtb_AND4_ab = (rtb_AND2_c && rtb_y_c); rudder2ElectricModeHasPriority = (rtb_AND2_c && (!rtb_AND1_p) && rtb_y_c && (!rtb_AND7) && ((rtb_y_ar == 0U) || (!rtb_y_nx)) && (!rtb_logic_c_is_green_hydraulic_power_avail)); } else { rtb_AND7_g = false; rtb_AND9_e = false; - rtb_AND4_e = false; + rtb_AND4_ab = false; rudder2ElectricModeHasPriority = false; } @@ -1006,11 +989,11 @@ void A380SecComputer::step() A380SecComputer_DWork.Delay_DSTATE_c); } - A380SecComputer_MATLABFunction_cj((A380SecComputer_DWork.pLeftStickDisabled && + A380SecComputer_MATLABFunction_m((A380SecComputer_DWork.pLeftStickDisabled && (A380SecComputer_U.in.discrete_inputs.fo_priority_takeover_pressed || A380SecComputer_DWork.Delay_DSTATE_c)), A380SecComputer_U.in.time.dt, A380SecComputer_P.ConfirmNode1_isRisingEdge, A380SecComputer_P.ConfirmNode1_timeDelay, &rtb_AND1_p, &A380SecComputer_DWork.sf_MATLABFunction_j2); - A380SecComputer_MATLABFunction_cj((A380SecComputer_DWork.pRightStickDisabled && + A380SecComputer_MATLABFunction_m((A380SecComputer_DWork.pRightStickDisabled && (A380SecComputer_U.in.discrete_inputs.capt_priority_takeover_pressed || A380SecComputer_DWork.Delay1_DSTATE)), A380SecComputer_U.in.time.dt, A380SecComputer_P.ConfirmNode_isRisingEdge_j, A380SecComputer_P.ConfirmNode_timeDelay_a, &rtb_AND7, &A380SecComputer_DWork.sf_MATLABFunction_g2); @@ -1101,11 +1084,11 @@ void A380SecComputer::step() A380SecComputer_B.logic.elevator_1_avail = elevator1Avail; A380SecComputer_B.logic.elevator_2_avail = elevator2Avail; if (A380SecComputer_U.in.discrete_inputs.is_unit_1) { - rtb_AND2_c = ((!rtb_AND2_a) && (!rtb_AND4_l) && (!rtb_AND5_e)); + rtb_AND2_c = ((!rtb_AND2_a) && (!rtb_AND4_m) && (!rtb_AND5_e)); } else if (A380SecComputer_U.in.discrete_inputs.is_unit_2) { - rtb_AND2_c = ((!rtb_AND2_a) && (!rtb_AND4_l) && (!rtb_AND5_e)); + rtb_AND2_c = ((!rtb_AND2_a) && (!rtb_AND4_m) && (!rtb_AND5_e)); } else { - rtb_AND2_c = (A380SecComputer_U.in.discrete_inputs.is_unit_3 && ((!rtb_AND2_a) && (!rtb_AND4_l))); + rtb_AND2_c = (A380SecComputer_U.in.discrete_inputs.is_unit_3 && ((!rtb_AND2_a) && (!rtb_AND4_m))); } A380SecComputer_B.logic.elevator_2_engaged = (elevator2Avail && rtb_AND2_c); @@ -1121,7 +1104,7 @@ void A380SecComputer::step() A380SecComputer_B.logic.left_aileron_1_avail = leftAileron1Avail; A380SecComputer_B.logic.left_aileron_1_engaged = (leftAileron1Avail && ((!rtb_AND) && (!rtb_AND1))); A380SecComputer_B.logic.left_aileron_2_avail = leftAileron2Avail; - A380SecComputer_B.logic.left_aileron_2_engaged = (leftAileron2Avail && ((!rtb_AND4) && (!rtb_AND6) && (!rtb_AND8))); + A380SecComputer_B.logic.left_aileron_2_engaged = (leftAileron2Avail && ((!rtb_AND4_e) && (!rtb_AND6) && (!rtb_AND8))); A380SecComputer_B.logic.right_aileron_1_avail = rightAileron1Avail; A380SecComputer_B.logic.right_aileron_2_avail = rightAileron2Avail; A380SecComputer_B.logic.left_spoiler_1_hydraulic_mode_avail = leftSpoilerHydraulicModeAvail; @@ -1140,13 +1123,14 @@ void A380SecComputer::step() A380SecComputer_B.logic.rudder_1_electric_mode_engaged = (rudder1ElectricModeAvail && rudder1ElectricModeHasPriority); A380SecComputer_B.logic.rudder_2_hydraulic_mode_avail = rtb_AND7_g; A380SecComputer_B.logic.rudder_2_electric_mode_avail = rtb_AND9_e; - A380SecComputer_B.logic.rudder_2_hydraulic_mode_engaged = (rtb_AND7_g && rtb_AND4_e); + A380SecComputer_B.logic.rudder_2_hydraulic_mode_engaged = (rtb_AND7_g && rtb_AND4_ab); A380SecComputer_B.logic.rudder_2_electric_mode_engaged = (rtb_AND9_e && rudder2ElectricModeHasPriority); A380SecComputer_B.logic.rudder_trim_avail = rudderTrimAvail; A380SecComputer_B.logic.aileron_droop_active = (rtb_AND_l || rtb_AND1_hw); A380SecComputer_B.logic.ths_automatic_mode_active = rtb_Compare_l; A380SecComputer_B.logic.is_yellow_hydraulic_power_avail = rtb_logic_c_is_yellow_hydraulic_power_avail; A380SecComputer_B.logic.is_green_hydraulic_power_avail = rtb_logic_c_is_green_hydraulic_power_avail; + A380SecComputer_B.logic.eha_ebha_elec_mode_inhibited = false; A380SecComputer_B.logic.left_sidestick_disabled = A380SecComputer_DWork.pLeftStickDisabled; A380SecComputer_B.logic.right_sidestick_disabled = A380SecComputer_DWork.pRightStickDisabled; A380SecComputer_B.logic.left_sidestick_priority_locked = rtb_AND1_p; @@ -2009,373 +1993,375 @@ void A380SecComputer::step() (A380SecComputer_P.EnumeratedConstant1_Value); A380SecComputer_B.dt = A380SecComputer_U.in.time.dt; A380SecComputer_B.is_unit_1 = A380SecComputer_U.in.discrete_inputs.is_unit_1; - A380SecComputer_B.SSM = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_angle_deg.SSM; - A380SecComputer_B.Data = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_angle_deg.Data; - A380SecComputer_B.SSM_k = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_angle_deg.SSM; - A380SecComputer_B.Data_f = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_angle_deg.Data; - A380SecComputer_B.SSM_kx = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.SSM; - A380SecComputer_B.Data_fw = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.Data; - A380SecComputer_B.SSM_kxx = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_roll_rate_deg_s.SSM; - A380SecComputer_B.Data_fwx = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_roll_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxt = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxk = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.Data; + A380SecComputer_B.SSM = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_accel_g.SSM; + A380SecComputer_B.Data = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_accel_g.Data; + A380SecComputer_B.SSM_k = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_angle_deg.SSM; + A380SecComputer_B.Data_f = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_angle_deg.Data; + A380SecComputer_B.SSM_kx = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_angle_deg.SSM; + A380SecComputer_B.Data_fw = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_angle_deg.Data; + A380SecComputer_B.SSM_kxx = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.SSM; + A380SecComputer_B.Data_fwx = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxt = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_roll_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxk = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_roll_rate_deg_s.Data; A380SecComputer_B.is_unit_2 = A380SecComputer_U.in.discrete_inputs.is_unit_2; - A380SecComputer_B.SSM_kxxta = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_long_accel_g.SSM; - A380SecComputer_B.Data_fwxkf = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_long_accel_g.Data; - A380SecComputer_B.SSM_kxxtac = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_lat_accel_g.SSM; - A380SecComputer_B.Data_fwxkft = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_lat_accel_g.Data; - A380SecComputer_B.SSM_kxxtac0 = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_normal_accel_g.SSM; - A380SecComputer_B.Data_fwxkftc = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_normal_accel_g.Data; - A380SecComputer_B.SSM_kxxtac0z = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxkftc3 = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxtac0zt = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxkftc3e = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxta = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkf = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxtac = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_long_accel_g.SSM; + A380SecComputer_B.Data_fwxkft = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_long_accel_g.Data; + A380SecComputer_B.SSM_kxxtac0 = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_lat_accel_g.SSM; + A380SecComputer_B.Data_fwxkftc = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_lat_accel_g.Data; + A380SecComputer_B.SSM_kxxtac0z = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_normal_accel_g.SSM; + A380SecComputer_B.Data_fwxkftc3 = A380SecComputer_U.in.bus_inputs.ir_1_bus.body_normal_accel_g.Data; + A380SecComputer_B.SSM_kxxtac0zt = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkftc3e = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_rate_deg_s.Data; A380SecComputer_B.is_unit_3 = A380SecComputer_U.in.discrete_inputs.is_unit_3; - A380SecComputer_B.SSM_kxxtac0ztg = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_att_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxkftc3ep = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_att_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxtac0ztgf = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_alt_ft.SSM; - A380SecComputer_B.Data_fwxkftc3epg = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_alt_ft.Data; - A380SecComputer_B.SSM_kxxtac0ztgf2 = A380SecComputer_U.in.bus_inputs.ir_1_bus.along_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_fwxkftc3epgt = A380SecComputer_U.in.bus_inputs.ir_1_bus.along_track_horiz_acc_g.Data; - A380SecComputer_B.SSM_kxxtac0ztgf2u = A380SecComputer_U.in.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_fwxkftc3epgtd = A380SecComputer_U.in.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.Data; - A380SecComputer_B.SSM_kxxtac0ztgf2ux = A380SecComputer_U.in.bus_inputs.ir_1_bus.vertical_accel_g.SSM; - A380SecComputer_B.Data_fwxkftc3epgtdx = A380SecComputer_U.in.bus_inputs.ir_1_bus.vertical_accel_g.Data; + A380SecComputer_B.SSM_kxxtac0ztg = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkftc3ep = A380SecComputer_U.in.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxtac0ztgf = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_att_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkftc3epg = A380SecComputer_U.in.bus_inputs.ir_1_bus.roll_att_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2 = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_alt_ft.SSM; + A380SecComputer_B.Data_fwxkftc3epgt = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_alt_ft.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2u = A380SecComputer_U.in.bus_inputs.ir_1_bus.along_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_fwxkftc3epgtd = A380SecComputer_U.in.bus_inputs.ir_1_bus.along_track_horiz_acc_g.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2ux = A380SecComputer_U.in.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_fwxkftc3epgtdx = A380SecComputer_U.in.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.Data; A380SecComputer_B.capt_priority_takeover_pressed = A380SecComputer_U.in.discrete_inputs.capt_priority_takeover_pressed; - A380SecComputer_B.SSM_kxxtac0ztgf2uxn = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.SSM; - A380SecComputer_B.Data_fwxkftc3epgtdxc = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.Data; - A380SecComputer_B.SSM_ky = A380SecComputer_U.in.bus_inputs.ir_1_bus.north_south_velocity_kn.SSM; - A380SecComputer_B.Data_h = A380SecComputer_U.in.bus_inputs.ir_1_bus.north_south_velocity_kn.Data; - A380SecComputer_B.SSM_d = A380SecComputer_U.in.bus_inputs.ir_1_bus.east_west_velocity_kn.SSM; - A380SecComputer_B.Data_e = A380SecComputer_U.in.bus_inputs.ir_1_bus.east_west_velocity_kn.Data; - A380SecComputer_B.SSM_h = A380SecComputer_U.in.bus_inputs.ir_2_bus.discrete_word_1.SSM; - A380SecComputer_B.Data_j = A380SecComputer_U.in.bus_inputs.ir_2_bus.discrete_word_1.Data; - A380SecComputer_B.SSM_kb = A380SecComputer_U.in.bus_inputs.ir_2_bus.latitude_deg.SSM; - A380SecComputer_B.Data_d = A380SecComputer_U.in.bus_inputs.ir_2_bus.latitude_deg.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2uxn = A380SecComputer_U.in.bus_inputs.ir_1_bus.vertical_accel_g.SSM; + A380SecComputer_B.Data_fwxkftc3epgtdxc = A380SecComputer_U.in.bus_inputs.ir_1_bus.vertical_accel_g.Data; + A380SecComputer_B.SSM_ky = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.SSM; + A380SecComputer_B.Data_h = A380SecComputer_U.in.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.Data; + A380SecComputer_B.SSM_d = A380SecComputer_U.in.bus_inputs.ir_1_bus.north_south_velocity_kn.SSM; + A380SecComputer_B.Data_e = A380SecComputer_U.in.bus_inputs.ir_1_bus.north_south_velocity_kn.Data; + A380SecComputer_B.SSM_h = A380SecComputer_U.in.bus_inputs.ir_1_bus.east_west_velocity_kn.SSM; + A380SecComputer_B.Data_j = A380SecComputer_U.in.bus_inputs.ir_1_bus.east_west_velocity_kn.Data; + A380SecComputer_B.SSM_kb = A380SecComputer_U.in.bus_inputs.ir_2_bus.discrete_word_1.SSM; + A380SecComputer_B.Data_d = A380SecComputer_U.in.bus_inputs.ir_2_bus.discrete_word_1.Data; A380SecComputer_B.fo_priority_takeover_pressed = A380SecComputer_U.in.discrete_inputs.fo_priority_takeover_pressed; - A380SecComputer_B.SSM_p = A380SecComputer_U.in.bus_inputs.ir_2_bus.longitude_deg.SSM; - A380SecComputer_B.Data_p = A380SecComputer_U.in.bus_inputs.ir_2_bus.longitude_deg.Data; - A380SecComputer_B.SSM_di = A380SecComputer_U.in.bus_inputs.ir_2_bus.ground_speed_kn.SSM; - A380SecComputer_B.Data_i = A380SecComputer_U.in.bus_inputs.ir_2_bus.ground_speed_kn.Data; - A380SecComputer_B.SSM_j = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_true_deg.SSM; - A380SecComputer_B.Data_g = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_true_deg.Data; - A380SecComputer_B.SSM_i = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_true_deg.SSM; - A380SecComputer_B.Data_a = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_true_deg.Data; - A380SecComputer_B.SSM_g = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_speed_kn.SSM; - A380SecComputer_B.Data_eb = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_speed_kn.Data; + A380SecComputer_B.SSM_p = A380SecComputer_U.in.bus_inputs.ir_2_bus.latitude_deg.SSM; + A380SecComputer_B.Data_p = A380SecComputer_U.in.bus_inputs.ir_2_bus.latitude_deg.Data; + A380SecComputer_B.SSM_di = A380SecComputer_U.in.bus_inputs.ir_2_bus.longitude_deg.SSM; + A380SecComputer_B.Data_i = A380SecComputer_U.in.bus_inputs.ir_2_bus.longitude_deg.Data; + A380SecComputer_B.SSM_j = A380SecComputer_U.in.bus_inputs.ir_2_bus.ground_speed_kn.SSM; + A380SecComputer_B.Data_g = A380SecComputer_U.in.bus_inputs.ir_2_bus.ground_speed_kn.Data; + A380SecComputer_B.SSM_i = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_true_deg.SSM; + A380SecComputer_B.Data_a = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_true_deg.Data; + A380SecComputer_B.SSM_g = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_true_deg.SSM; + A380SecComputer_B.Data_eb = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_true_deg.Data; A380SecComputer_B.rudder_trim_left_pressed = A380SecComputer_U.in.discrete_inputs.rudder_trim_left_pressed; - A380SecComputer_B.SSM_db = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_direction_true_deg.SSM; - A380SecComputer_B.Data_jo = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_direction_true_deg.Data; - A380SecComputer_B.SSM_n = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_magnetic_deg.SSM; - A380SecComputer_B.Data_ex = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_magnetic_deg.Data; - A380SecComputer_B.SSM_a = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_magnetic_deg.SSM; - A380SecComputer_B.Data_fd = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_magnetic_deg.Data; - A380SecComputer_B.SSM_ir = A380SecComputer_U.in.bus_inputs.ir_2_bus.drift_angle_deg.SSM; - A380SecComputer_B.Data_ja = A380SecComputer_U.in.bus_inputs.ir_2_bus.drift_angle_deg.Data; - A380SecComputer_B.SSM_hu = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_angle_deg.SSM; - A380SecComputer_B.Data_k = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_angle_deg.Data; + A380SecComputer_B.SSM_db = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_speed_kn.SSM; + A380SecComputer_B.Data_jo = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_speed_kn.Data; + A380SecComputer_B.SSM_n = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_direction_true_deg.SSM; + A380SecComputer_B.Data_ex = A380SecComputer_U.in.bus_inputs.ir_2_bus.wind_direction_true_deg.Data; + A380SecComputer_B.SSM_a = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_magnetic_deg.SSM; + A380SecComputer_B.Data_fd = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_magnetic_deg.Data; + A380SecComputer_B.SSM_ir = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_magnetic_deg.SSM; + A380SecComputer_B.Data_ja = A380SecComputer_U.in.bus_inputs.ir_2_bus.heading_magnetic_deg.Data; + A380SecComputer_B.SSM_hu = A380SecComputer_U.in.bus_inputs.ir_2_bus.drift_angle_deg.SSM; + A380SecComputer_B.Data_k = A380SecComputer_U.in.bus_inputs.ir_2_bus.drift_angle_deg.Data; A380SecComputer_B.rudder_trim_right_pressed = A380SecComputer_U.in.discrete_inputs.rudder_trim_right_pressed; - A380SecComputer_B.SSM_e = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_accel_g.SSM; - A380SecComputer_B.Data_joy = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_accel_g.Data; - A380SecComputer_B.SSM_gr = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_angle_deg.SSM; - A380SecComputer_B.Data_h3 = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_angle_deg.Data; - A380SecComputer_B.SSM_ev = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_angle_deg.SSM; - A380SecComputer_B.Data_a0 = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_angle_deg.Data; - A380SecComputer_B.SSM_l = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.SSM; - A380SecComputer_B.Data_b = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.Data; - A380SecComputer_B.SSM_ei = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_roll_rate_deg_s.SSM; - A380SecComputer_B.Data_eq = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_roll_rate_deg_s.Data; + A380SecComputer_B.SSM_e = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_angle_deg.SSM; + A380SecComputer_B.Data_joy = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_angle_deg.Data; + A380SecComputer_B.SSM_gr = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_accel_g.SSM; + A380SecComputer_B.Data_h3 = A380SecComputer_U.in.bus_inputs.ir_2_bus.flight_path_accel_g.Data; + A380SecComputer_B.SSM_ev = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_angle_deg.SSM; + A380SecComputer_B.Data_a0 = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_angle_deg.Data; + A380SecComputer_B.SSM_l = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_angle_deg.SSM; + A380SecComputer_B.Data_b = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_angle_deg.Data; + A380SecComputer_B.SSM_ei = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.SSM; + A380SecComputer_B.Data_eq = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.Data; A380SecComputer_B.rudder_trim_reset_pressed = A380SecComputer_U.in.discrete_inputs.rudder_trim_reset_pressed; - A380SecComputer_B.SSM_an = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.SSM; - A380SecComputer_B.Data_iz = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.Data; - A380SecComputer_B.SSM_c = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_long_accel_g.SSM; - A380SecComputer_B.Data_j2 = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_long_accel_g.Data; - A380SecComputer_B.SSM_cb = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_lat_accel_g.SSM; - A380SecComputer_B.Data_o = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_lat_accel_g.Data; - A380SecComputer_B.SSM_lb = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_normal_accel_g.SSM; - A380SecComputer_B.Data_m = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_normal_accel_g.Data; - A380SecComputer_B.SSM_ia = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_rate_deg_s.SSM; - A380SecComputer_B.Data_oq = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_rate_deg_s.Data; + A380SecComputer_B.SSM_an = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_roll_rate_deg_s.SSM; + A380SecComputer_B.Data_iz = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_roll_rate_deg_s.Data; + A380SecComputer_B.SSM_c = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.SSM; + A380SecComputer_B.Data_j2 = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.Data; + A380SecComputer_B.SSM_cb = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_long_accel_g.SSM; + A380SecComputer_B.Data_o = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_long_accel_g.Data; + A380SecComputer_B.SSM_lb = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_lat_accel_g.SSM; + A380SecComputer_B.Data_m = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_lat_accel_g.Data; + A380SecComputer_B.SSM_ia = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_normal_accel_g.SSM; + A380SecComputer_B.Data_oq = A380SecComputer_U.in.bus_inputs.ir_2_bus.body_normal_accel_g.Data; A380SecComputer_B.pitch_trim_up_pressed = A380SecComputer_U.in.discrete_inputs.pitch_trim_up_pressed; - A380SecComputer_B.SSM_kyz = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.SSM; - A380SecComputer_B.Data_fo = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.Data; - A380SecComputer_B.SSM_as = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_att_rate_deg_s.SSM; - A380SecComputer_B.Data_p1 = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_att_rate_deg_s.Data; - A380SecComputer_B.SSM_is = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_alt_ft.SSM; - A380SecComputer_B.Data_p1y = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_alt_ft.Data; - A380SecComputer_B.SSM_ca = A380SecComputer_U.in.bus_inputs.ir_2_bus.along_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_l = A380SecComputer_U.in.bus_inputs.ir_2_bus.along_track_horiz_acc_g.Data; - A380SecComputer_B.SSM_o = A380SecComputer_U.in.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_kp = A380SecComputer_U.in.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.Data; + A380SecComputer_B.SSM_kyz = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_rate_deg_s.SSM; + A380SecComputer_B.Data_fo = A380SecComputer_U.in.bus_inputs.ir_2_bus.track_angle_rate_deg_s.Data; + A380SecComputer_B.SSM_as = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.SSM; + A380SecComputer_B.Data_p1 = A380SecComputer_U.in.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.Data; + A380SecComputer_B.SSM_is = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_att_rate_deg_s.SSM; + A380SecComputer_B.Data_p1y = A380SecComputer_U.in.bus_inputs.ir_2_bus.roll_att_rate_deg_s.Data; + A380SecComputer_B.SSM_ca = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_alt_ft.SSM; + A380SecComputer_B.Data_l = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_alt_ft.Data; + A380SecComputer_B.SSM_o = A380SecComputer_U.in.bus_inputs.ir_2_bus.along_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_kp = A380SecComputer_U.in.bus_inputs.ir_2_bus.along_track_horiz_acc_g.Data; A380SecComputer_B.pitch_trim_down_pressed = A380SecComputer_U.in.discrete_inputs.pitch_trim_down_pressed; - A380SecComputer_B.SSM_ak = A380SecComputer_U.in.bus_inputs.ir_2_bus.vertical_accel_g.SSM; - A380SecComputer_B.Data_k0 = A380SecComputer_U.in.bus_inputs.ir_2_bus.vertical_accel_g.Data; - A380SecComputer_B.SSM_cbj = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.SSM; - A380SecComputer_B.Data_pi = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.Data; - A380SecComputer_B.SSM_cu = A380SecComputer_U.in.bus_inputs.ir_2_bus.north_south_velocity_kn.SSM; - A380SecComputer_B.Data_dm = A380SecComputer_U.in.bus_inputs.ir_2_bus.north_south_velocity_kn.Data; - A380SecComputer_B.SSM_nn = A380SecComputer_U.in.bus_inputs.ir_2_bus.east_west_velocity_kn.SSM; - A380SecComputer_B.Data_f5 = A380SecComputer_U.in.bus_inputs.ir_2_bus.east_west_velocity_kn.Data; - A380SecComputer_B.SSM_b = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.SSM; - A380SecComputer_B.Data_js = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.Data; + A380SecComputer_B.SSM_ak = A380SecComputer_U.in.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_k0 = A380SecComputer_U.in.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.Data; + A380SecComputer_B.SSM_cbj = A380SecComputer_U.in.bus_inputs.ir_2_bus.vertical_accel_g.SSM; + A380SecComputer_B.Data_pi = A380SecComputer_U.in.bus_inputs.ir_2_bus.vertical_accel_g.Data; + A380SecComputer_B.SSM_cu = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.SSM; + A380SecComputer_B.Data_dm = A380SecComputer_U.in.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.Data; + A380SecComputer_B.SSM_nn = A380SecComputer_U.in.bus_inputs.ir_2_bus.north_south_velocity_kn.SSM; + A380SecComputer_B.Data_f5 = A380SecComputer_U.in.bus_inputs.ir_2_bus.north_south_velocity_kn.Data; + A380SecComputer_B.SSM_b = A380SecComputer_U.in.bus_inputs.ir_2_bus.east_west_velocity_kn.SSM; + A380SecComputer_B.Data_js = A380SecComputer_U.in.bus_inputs.ir_2_bus.east_west_velocity_kn.Data; A380SecComputer_B.simulation_time = A380SecComputer_U.in.time.simulation_time; + A380SecComputer_B.rat_deployed = A380SecComputer_U.in.discrete_inputs.rat_deployed; + A380SecComputer_B.SSM_m = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.SSM; + A380SecComputer_B.Data_ee = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.Data; + A380SecComputer_B.SSM_f = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.SSM; + A380SecComputer_B.Data_ig = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.Data; + A380SecComputer_B.SSM_bp = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.SSM; + A380SecComputer_B.Data_mk = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.Data; + A380SecComputer_B.SSM_hb = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_actual_position_deg.SSM; + A380SecComputer_B.Data_pu = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_actual_position_deg.Data; + A380SecComputer_B.SSM_gz = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.flap_actual_position_deg.SSM; + A380SecComputer_B.Data_ly = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.flap_actual_position_deg.Data; + A380SecComputer_B.rat_contactor_closed = A380SecComputer_U.in.discrete_inputs.rat_contactor_closed; + A380SecComputer_B.SSM_pv = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.SSM; + A380SecComputer_B.Data_jq = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.Data; + A380SecComputer_B.SSM_mf = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.SSM; + A380SecComputer_B.Data_o5 = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.Data; + A380SecComputer_B.SSM_m0 = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.SSM; + A380SecComputer_B.Data_lyw = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.Data; + A380SecComputer_B.SSM_kd = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_actual_position_deg.SSM; + A380SecComputer_B.Data_gq = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_actual_position_deg.Data; + A380SecComputer_B.SSM_pu = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.flap_actual_position_deg.SSM; + A380SecComputer_B.Data_n = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.flap_actual_position_deg.Data; A380SecComputer_B.green_low_pressure = A380SecComputer_U.in.discrete_inputs.green_low_pressure; - A380SecComputer_B.SSM_m = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.SSM; - A380SecComputer_B.Data_ee = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.Data; - A380SecComputer_B.SSM_f = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.SSM; - A380SecComputer_B.Data_ig = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.Data; - A380SecComputer_B.SSM_bp = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_actual_position_deg.SSM; - A380SecComputer_B.Data_mk = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.slat_actual_position_deg.Data; - A380SecComputer_B.SSM_hb = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.flap_actual_position_deg.SSM; - A380SecComputer_B.Data_pu = A380SecComputer_U.in.bus_inputs.sfcc_1_bus.flap_actual_position_deg.Data; - A380SecComputer_B.SSM_gz = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.SSM; - A380SecComputer_B.Data_ly = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.Data; - A380SecComputer_B.yellow_low_pressure = A380SecComputer_U.in.discrete_inputs.yellow_low_pressure; - A380SecComputer_B.SSM_pv = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.SSM; - A380SecComputer_B.Data_jq = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.Data; - A380SecComputer_B.SSM_mf = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.SSM; - A380SecComputer_B.Data_o5 = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.Data; - A380SecComputer_B.SSM_m0 = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_actual_position_deg.SSM; - A380SecComputer_B.Data_lyw = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.slat_actual_position_deg.Data; - A380SecComputer_B.SSM_kd = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.flap_actual_position_deg.SSM; - A380SecComputer_B.Data_gq = A380SecComputer_U.in.bus_inputs.sfcc_2_bus.flap_actual_position_deg.Data; A380SecComputer_B.irdc_5_a_bus = A380SecComputer_U.in.bus_inputs.irdc_5_a_bus; A380SecComputer_B.irdc_5_b_bus = A380SecComputer_U.in.bus_inputs.irdc_5_b_bus; + A380SecComputer_B.SSM_nv = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_bq = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_d5 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_dmn = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_eo = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_jn = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_nd = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_c = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.Data; + A380SecComputer_B.yellow_low_pressure = A380SecComputer_U.in.discrete_inputs.yellow_low_pressure; + A380SecComputer_B.SSM_bq = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_lx = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_hi = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_jb = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_mm = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_fn = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_kz = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_od = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_il = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_ez = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.Data; A380SecComputer_B.capt_pitch_stick_pos = A380SecComputer_U.in.analog_inputs.capt_pitch_stick_pos; - A380SecComputer_B.SSM_pu = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_n = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_nv = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_bq = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_d5 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_dmn = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_eo = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_jn = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_nd = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_c = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_i2 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_pw = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_ah = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_m2 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.Data; + A380SecComputer_B.SSM_en = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_ek = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.Data; + A380SecComputer_B.SSM_dq = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_iy = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_px = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_lk = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.Data; A380SecComputer_B.fo_pitch_stick_pos = A380SecComputer_U.in.analog_inputs.fo_pitch_stick_pos; - A380SecComputer_B.SSM_bq = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_lx = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_hi = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_jb = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.Data; - A380SecComputer_B.SSM_mm = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_fn = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.Data; - A380SecComputer_B.SSM_kz = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_od = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.Data; - A380SecComputer_B.SSM_il = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_ez = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_lbo = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_ca = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_p5 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_pix = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_mk = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_di = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_mu = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_lz = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_cbl = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_lu = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.Data; A380SecComputer_B.capt_roll_stick_pos = A380SecComputer_U.in.analog_inputs.capt_roll_stick_pos; - A380SecComputer_B.SSM_i2 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_pw = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_ah = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_m2 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_en = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_ek = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.Data; - A380SecComputer_B.SSM_dq = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_iy = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.Data; - A380SecComputer_B.SSM_px = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_lk = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_gzd = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_dc = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_mo = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_gc = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.Data; + A380SecComputer_B.SSM_me = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_am = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.Data; + A380SecComputer_B.SSM_mj = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_mo = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_a5 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_dg = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.Data; A380SecComputer_B.fo_roll_stick_pos = A380SecComputer_U.in.analog_inputs.fo_roll_stick_pos; - A380SecComputer_B.SSM_lbo = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_ca = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_p5 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_pix = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.Data; - A380SecComputer_B.SSM_mk = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_di = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.Data; - A380SecComputer_B.SSM_mu = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_lz = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.Data; - A380SecComputer_B.SSM_cbl = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_lu = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_bt = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_e1 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_om = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_fp = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_ar = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_command_deg.SSM; + A380SecComputer_B.Data_ns = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_command_deg.Data; + A380SecComputer_B.SSM_ce = A380SecComputer_U.in.bus_inputs.prim_1_bus.upper_rudder_command_deg.SSM; + A380SecComputer_B.Data_m3 = A380SecComputer_U.in.bus_inputs.prim_1_bus.upper_rudder_command_deg.Data; + A380SecComputer_B.SSM_ed = A380SecComputer_U.in.bus_inputs.prim_1_bus.lower_rudder_command_deg.SSM; + A380SecComputer_B.Data_oj = A380SecComputer_U.in.bus_inputs.prim_1_bus.lower_rudder_command_deg.Data; A380SecComputer_B.elevator_1_pos_deg = A380SecComputer_U.in.analog_inputs.elevator_1_pos_deg; - A380SecComputer_B.SSM_gzd = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_dc = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_mo = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_gc = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_me = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_am = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_mj = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_mo = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_a5 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_dg = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_jh = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_jy = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_je = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_j1 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_jt = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_fc = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_cui = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_of = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_mq = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_pedal_position_deg.SSM; + A380SecComputer_B.Data_lg = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_pedal_position_deg.Data; A380SecComputer_B.elevator_2_pos_deg = A380SecComputer_U.in.analog_inputs.elevator_2_pos_deg; - A380SecComputer_B.SSM_bt = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_e1 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_om = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_command_deg.SSM; - A380SecComputer_B.Data_fp = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_command_deg.Data; - A380SecComputer_B.SSM_ar = A380SecComputer_U.in.bus_inputs.prim_1_bus.upper_rudder_command_deg.SSM; - A380SecComputer_B.Data_ns = A380SecComputer_U.in.bus_inputs.prim_1_bus.upper_rudder_command_deg.Data; - A380SecComputer_B.SSM_ce = A380SecComputer_U.in.bus_inputs.prim_1_bus.lower_rudder_command_deg.SSM; - A380SecComputer_B.Data_m3 = A380SecComputer_U.in.bus_inputs.prim_1_bus.lower_rudder_command_deg.Data; - A380SecComputer_B.SSM_ed = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_oj = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_ni = A380SecComputer_U.in.bus_inputs.prim_1_bus.aileron_status_word.SSM; + A380SecComputer_B.Data_n4 = A380SecComputer_U.in.bus_inputs.prim_1_bus.aileron_status_word.Data; + A380SecComputer_B.SSM_df = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_ot = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_oe = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_gv = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_2_position_deg.Data; + A380SecComputer_B.SSM_ha = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_ou = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_op = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_dh = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_2_position_deg.Data; + A380SecComputer_B.monotonic_time = A380SecComputer_U.in.time.monotonic_time; A380SecComputer_B.elevator_3_pos_deg = A380SecComputer_U.in.analog_inputs.elevator_3_pos_deg; - A380SecComputer_B.SSM_jh = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_jy = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.Data; - A380SecComputer_B.SSM_je = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_j1 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_jt = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_fc = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_cui = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_pedal_position_deg.SSM; - A380SecComputer_B.Data_of = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_pedal_position_deg.Data; - A380SecComputer_B.SSM_mq = A380SecComputer_U.in.bus_inputs.prim_1_bus.aileron_status_word.SSM; - A380SecComputer_B.Data_lg = A380SecComputer_U.in.bus_inputs.prim_1_bus.aileron_status_word.Data; + A380SecComputer_B.SSM_a50 = A380SecComputer_U.in.bus_inputs.prim_1_bus.spoiler_status_word.SSM; + A380SecComputer_B.Data_ph = A380SecComputer_U.in.bus_inputs.prim_1_bus.spoiler_status_word.Data; + A380SecComputer_B.SSM_og = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_position_deg.SSM; + A380SecComputer_B.Data_gs = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_position_deg.Data; + A380SecComputer_B.SSM_a4 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_position_deg.SSM; + A380SecComputer_B.Data_fd4 = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_position_deg.Data; + A380SecComputer_B.SSM_bv = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_status_word.SSM; + A380SecComputer_B.Data_hm = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_status_word.Data; + A380SecComputer_B.SSM_bo = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_1_position_deg.SSM; + A380SecComputer_B.Data_i2 = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_1_position_deg.Data; A380SecComputer_B.ths_pos_deg = A380SecComputer_U.in.analog_inputs.ths_pos_deg; - A380SecComputer_B.SSM_ni = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_n4 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_1_position_deg.Data; - A380SecComputer_B.SSM_df = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_ot = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_oe = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_gv = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_1_position_deg.Data; - A380SecComputer_B.SSM_ha = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_ou = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_op = A380SecComputer_U.in.bus_inputs.prim_1_bus.spoiler_status_word.SSM; - A380SecComputer_B.Data_dh = A380SecComputer_U.in.bus_inputs.prim_1_bus.spoiler_status_word.Data; - A380SecComputer_B.monotonic_time = A380SecComputer_U.in.time.monotonic_time; + A380SecComputer_B.SSM_d1 = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_2_position_deg.SSM; + A380SecComputer_B.Data_og = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_2_position_deg.Data; + A380SecComputer_B.SSM_hy = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.Data_fv = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_3_position_deg.Data; + A380SecComputer_B.SSM_gi = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_position_deg.SSM; + A380SecComputer_B.Data_oc = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_position_deg.Data; + A380SecComputer_B.SSM_pp = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_status_word.SSM; + A380SecComputer_B.Data_kq = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_status_word.Data; + A380SecComputer_B.SSM_iab = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_1_position_deg.SSM; + A380SecComputer_B.Data_ne = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_1_position_deg.Data; A380SecComputer_B.left_aileron_1_pos_deg = A380SecComputer_U.in.analog_inputs.left_aileron_1_pos_deg; - A380SecComputer_B.SSM_a50 = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_position_deg.SSM; - A380SecComputer_B.Data_ph = A380SecComputer_U.in.bus_inputs.prim_1_bus.left_spoiler_position_deg.Data; - A380SecComputer_B.SSM_og = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_position_deg.SSM; - A380SecComputer_B.Data_gs = A380SecComputer_U.in.bus_inputs.prim_1_bus.right_spoiler_position_deg.Data; - A380SecComputer_B.SSM_a4 = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_status_word.SSM; - A380SecComputer_B.Data_fd4 = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_status_word.Data; - A380SecComputer_B.SSM_bv = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_1_position_deg.SSM; - A380SecComputer_B.Data_hm = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_1_position_deg.Data; - A380SecComputer_B.SSM_bo = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_2_position_deg.SSM; - A380SecComputer_B.Data_i2 = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_2_position_deg.Data; + A380SecComputer_B.SSM_jtv = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_2_position_deg.SSM; + A380SecComputer_B.Data_it = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_2_position_deg.Data; + A380SecComputer_B.SSM_fy = A380SecComputer_U.in.bus_inputs.prim_1_bus.fctl_law_status_word.SSM; + A380SecComputer_B.Data_ch = A380SecComputer_U.in.bus_inputs.prim_1_bus.fctl_law_status_word.Data; + A380SecComputer_B.SSM_d4 = A380SecComputer_U.in.bus_inputs.prim_1_bus.discrete_status_word_1.SSM; + A380SecComputer_B.Data_bb = A380SecComputer_U.in.bus_inputs.prim_1_bus.discrete_status_word_1.Data; + A380SecComputer_B.SSM_ars = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_ol = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_din = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_hw = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.Data; A380SecComputer_B.left_aileron_2_pos_deg = A380SecComputer_U.in.analog_inputs.left_aileron_2_pos_deg; - A380SecComputer_B.SSM_d1 = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_3_position_deg.SSM; - A380SecComputer_B.Data_og = A380SecComputer_U.in.bus_inputs.prim_1_bus.elevator_3_position_deg.Data; - A380SecComputer_B.SSM_hy = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_position_deg.SSM; - A380SecComputer_B.Data_fv = A380SecComputer_U.in.bus_inputs.prim_1_bus.ths_position_deg.Data; - A380SecComputer_B.SSM_gi = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_status_word.SSM; - A380SecComputer_B.Data_oc = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_status_word.Data; - A380SecComputer_B.SSM_pp = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_1_position_deg.SSM; - A380SecComputer_B.Data_kq = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_1_position_deg.Data; - A380SecComputer_B.SSM_iab = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_2_position_deg.SSM; - A380SecComputer_B.Data_ne = A380SecComputer_U.in.bus_inputs.prim_1_bus.rudder_2_position_deg.Data; + A380SecComputer_B.SSM_m3 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_hs = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_np = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_fj = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_ax = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_ky = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_cl = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_h5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_es = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_ku = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.Data; A380SecComputer_B.right_aileron_1_pos_deg = A380SecComputer_U.in.analog_inputs.right_aileron_1_pos_deg; - A380SecComputer_B.SSM_jtv = A380SecComputer_U.in.bus_inputs.prim_1_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_it = A380SecComputer_U.in.bus_inputs.prim_1_bus.fctl_law_status_word.Data; - A380SecComputer_B.SSM_fy = A380SecComputer_U.in.bus_inputs.prim_1_bus.discrete_status_word_1.SSM; - A380SecComputer_B.Data_ch = A380SecComputer_U.in.bus_inputs.prim_1_bus.discrete_status_word_1.Data; - A380SecComputer_B.SSM_d4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_bb = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_ars = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_ol = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_din = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_hw = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_gi1 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_jp = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_jz = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_nu = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_kt = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_br = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_ds = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_ae = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.Data; + A380SecComputer_B.SSM_eg = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_pe = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.Data; A380SecComputer_B.right_aileron_2_pos_deg = A380SecComputer_U.in.analog_inputs.right_aileron_2_pos_deg; - A380SecComputer_B.SSM_m3 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_hs = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_np = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_fj = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_ax = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_ky = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_cl = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_h5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.Data; - A380SecComputer_B.SSM_es = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_ku = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_a0 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_fy = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_cv = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_na = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_ea = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_my = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_p4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_i4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_m2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_cx = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.Data; A380SecComputer_B.left_spoiler_1_pos_deg = A380SecComputer_U.in.analog_inputs.left_spoiler_1_pos_deg; - A380SecComputer_B.SSM_gi1 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_jp = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.Data; - A380SecComputer_B.SSM_jz = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_nu = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.Data; - A380SecComputer_B.SSM_kt = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_br = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_ds = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_ae = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_eg = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_pe = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_bt0 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_nz = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_nr = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_id = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_fr = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_o2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_cc = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_gqq = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.Data; + A380SecComputer_B.SSM_lm = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_md = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.Data; A380SecComputer_B.right_spoiler_1_pos_deg = A380SecComputer_U.in.analog_inputs.right_spoiler_1_pos_deg; - A380SecComputer_B.SSM_a0 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_fy = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.Data; - A380SecComputer_B.SSM_cv = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_na = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_ea = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_my = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_p4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_i4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.Data; - A380SecComputer_B.SSM_m2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_cx = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_mkm = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_cz = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_jhd = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_pm = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_av = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_bj = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_ira = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_ox = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_ge = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_command_deg.SSM; + A380SecComputer_B.Data_pe5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_command_deg.Data; A380SecComputer_B.left_spoiler_2_pos_deg = A380SecComputer_U.in.analog_inputs.left_spoiler_2_pos_deg; - A380SecComputer_B.SSM_bt0 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_nz = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.Data; - A380SecComputer_B.SSM_nr = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_id = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.Data; - A380SecComputer_B.SSM_fr = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_o2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_cc = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_gqq = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_lm = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_md = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_lv = A380SecComputer_U.in.bus_inputs.prim_2_bus.upper_rudder_command_deg.SSM; + A380SecComputer_B.Data_jj = A380SecComputer_U.in.bus_inputs.prim_2_bus.upper_rudder_command_deg.Data; + A380SecComputer_B.SSM_cg = A380SecComputer_U.in.bus_inputs.prim_2_bus.lower_rudder_command_deg.SSM; + A380SecComputer_B.Data_p5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.lower_rudder_command_deg.Data; + A380SecComputer_B.SSM_be = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_ekl = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_axb = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_nd = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_nz = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_n2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.Data; A380SecComputer_B.right_spoiler_2_pos_deg = A380SecComputer_U.in.analog_inputs.right_spoiler_2_pos_deg; - A380SecComputer_B.SSM_mkm = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_cz = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_jhd = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_pm = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_av = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_bj = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_ira = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_command_deg.SSM; - A380SecComputer_B.Data_ox = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_command_deg.Data; - A380SecComputer_B.SSM_ge = A380SecComputer_U.in.bus_inputs.prim_2_bus.upper_rudder_command_deg.SSM; - A380SecComputer_B.Data_pe5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.upper_rudder_command_deg.Data; + A380SecComputer_B.SSM_cx = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_dl = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_gh = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_pedal_position_deg.SSM; + A380SecComputer_B.Data_gs2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_pedal_position_deg.Data; + A380SecComputer_B.SSM_ks = A380SecComputer_U.in.bus_inputs.prim_2_bus.aileron_status_word.SSM; + A380SecComputer_B.Data_h4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.aileron_status_word.Data; + A380SecComputer_B.SSM_pw = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_e3 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_fh = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_f5h = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_2_position_deg.Data; + A380SecComputer_B.slew_on = A380SecComputer_U.in.sim_data.slew_on; A380SecComputer_B.rudder_1_pos_deg = A380SecComputer_U.in.analog_inputs.rudder_1_pos_deg; - A380SecComputer_B.SSM_lv = A380SecComputer_U.in.bus_inputs.prim_2_bus.lower_rudder_command_deg.SSM; - A380SecComputer_B.Data_jj = A380SecComputer_U.in.bus_inputs.prim_2_bus.lower_rudder_command_deg.Data; - A380SecComputer_B.SSM_cg = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_p5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.Data; - A380SecComputer_B.SSM_be = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_ekl = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.Data; - A380SecComputer_B.SSM_axb = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_nd = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_nz = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_n2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_gzn = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_an = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_oo = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_i4o = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_2_position_deg.Data; + A380SecComputer_B.SSM_evh = A380SecComputer_U.in.bus_inputs.prim_2_bus.spoiler_status_word.SSM; + A380SecComputer_B.Data_af = A380SecComputer_U.in.bus_inputs.prim_2_bus.spoiler_status_word.Data; + A380SecComputer_B.SSM_cn = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_position_deg.SSM; + A380SecComputer_B.Data_bm = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_position_deg.Data; + A380SecComputer_B.SSM_co = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_position_deg.SSM; + A380SecComputer_B.Data_dk = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_position_deg.Data; A380SecComputer_B.rudder_2_pos_deg = A380SecComputer_U.in.analog_inputs.rudder_2_pos_deg; - A380SecComputer_B.SSM_cx = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_pedal_position_deg.SSM; - A380SecComputer_B.Data_dl = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_pedal_position_deg.Data; - A380SecComputer_B.SSM_gh = A380SecComputer_U.in.bus_inputs.prim_2_bus.aileron_status_word.SSM; - A380SecComputer_B.Data_gs2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.aileron_status_word.Data; - A380SecComputer_B.SSM_ks = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_h4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_1_position_deg.Data; - A380SecComputer_B.SSM_pw = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_e3 = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_fh = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_f5h = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_1_position_deg.Data; - A380SecComputer_B.slew_on = A380SecComputer_U.in.sim_data.slew_on; + A380SecComputer_B.SSM_pe = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_status_word.SSM; + A380SecComputer_B.Data_nv = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_status_word.Data; + A380SecComputer_B.SSM_cgz = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_1_position_deg.SSM; + A380SecComputer_B.Data_jpf = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_1_position_deg.Data; + A380SecComputer_B.SSM_fw = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_2_position_deg.SSM; + A380SecComputer_B.Data_i5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_2_position_deg.Data; + A380SecComputer_B.SSM_h4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.Data_k2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_3_position_deg.Data; + A380SecComputer_B.SSM_cb3 = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_position_deg.SSM; + A380SecComputer_B.Data_as = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_position_deg.Data; A380SecComputer_B.rudder_pedal_pos_deg = A380SecComputer_U.in.analog_inputs.rudder_pedal_pos_deg; - A380SecComputer_B.SSM_gzn = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_an = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_oo = A380SecComputer_U.in.bus_inputs.prim_2_bus.spoiler_status_word.SSM; - A380SecComputer_B.Data_i4o = A380SecComputer_U.in.bus_inputs.prim_2_bus.spoiler_status_word.Data; - A380SecComputer_B.SSM_evh = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_position_deg.SSM; - A380SecComputer_B.Data_af = A380SecComputer_U.in.bus_inputs.prim_2_bus.left_spoiler_position_deg.Data; - A380SecComputer_B.SSM_cn = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_position_deg.SSM; - A380SecComputer_B.Data_bm = A380SecComputer_U.in.bus_inputs.prim_2_bus.right_spoiler_position_deg.Data; - A380SecComputer_B.SSM_co = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_status_word.SSM; - A380SecComputer_B.Data_dk = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_status_word.Data; - A380SecComputer_B.rudder_trim_pos_deg = A380SecComputer_U.in.analog_inputs.rudder_trim_pos_deg; - A380SecComputer_B.SSM_pe = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_1_position_deg.SSM; - A380SecComputer_B.Data_nv = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_1_position_deg.Data; - A380SecComputer_B.SSM_cgz = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_2_position_deg.SSM; - A380SecComputer_B.Data_jpf = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_2_position_deg.Data; - A380SecComputer_B.SSM_fw = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_3_position_deg.SSM; - A380SecComputer_B.Data_i5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.elevator_3_position_deg.Data; - A380SecComputer_B.SSM_h4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_position_deg.SSM; - A380SecComputer_B.Data_k2 = A380SecComputer_U.in.bus_inputs.prim_2_bus.ths_position_deg.Data; - A380SecComputer_B.SSM_cb3 = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_status_word.SSM; - A380SecComputer_B.Data_as = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_status_word.Data; - A380SecComputer_B.SSM_pj = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_standard_ft.SSM; + A380SecComputer_B.SSM_pj = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_status_word.SSM; + A380SecComputer_B.Data_gk = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_status_word.Data; A380SecComputer_B.SSM_dv = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_1_position_deg.SSM; - A380SecComputer_B.Data_gk = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_1_position_deg.Data; + A380SecComputer_B.Data_jl = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_1_position_deg.Data; A380SecComputer_B.SSM_i4 = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_2_position_deg.SSM; - A380SecComputer_B.Data_jl = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_2_position_deg.Data; + A380SecComputer_B.Data_e32 = A380SecComputer_U.in.bus_inputs.prim_2_bus.rudder_2_position_deg.Data; A380SecComputer_B.SSM_fm = A380SecComputer_U.in.bus_inputs.prim_2_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_e32 = A380SecComputer_U.in.bus_inputs.prim_2_bus.fctl_law_status_word.Data; + A380SecComputer_B.Data_ih = A380SecComputer_U.in.bus_inputs.prim_2_bus.fctl_law_status_word.Data; A380SecComputer_B.SSM_e5 = A380SecComputer_U.in.bus_inputs.prim_2_bus.discrete_status_word_1.SSM; - A380SecComputer_B.Data_ih = A380SecComputer_U.in.bus_inputs.prim_2_bus.discrete_status_word_1.Data; + A380SecComputer_B.Data_du = A380SecComputer_U.in.bus_inputs.prim_2_bus.discrete_status_word_1.Data; + A380SecComputer_B.rudder_trim_pos_deg = A380SecComputer_U.in.analog_inputs.rudder_trim_pos_deg; A380SecComputer_B.SSM_bf = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_du = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.Data; - A380SecComputer_B.Data_nx = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_standard_ft.Data; + A380SecComputer_B.Data_nx = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.Data; A380SecComputer_B.SSM_fd = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_inboard_aileron_command_deg.SSM; A380SecComputer_B.Data_n0 = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_inboard_aileron_command_deg.Data; A380SecComputer_B.SSM_fv = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_midboard_aileron_command_deg.SSM; @@ -2384,9 +2370,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_om = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_midboard_aileron_command_deg.Data; A380SecComputer_B.SSM_j5 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_outboard_aileron_command_deg.SSM; A380SecComputer_B.Data_nr = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_ng = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.SSM; + A380SecComputer_B.SSM_ng = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_standard_ft.SSM; + A380SecComputer_B.SSM_cs = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.SSM; A380SecComputer_B.Data_p3 = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_cs = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_corrected_ft.SSM; A380SecComputer_B.SSM_ls = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_1_command_deg.SSM; A380SecComputer_B.Data_nb = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_1_command_deg.Data; A380SecComputer_B.SSM_dg = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_1_command_deg.SSM; @@ -2395,9 +2381,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_al = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_2_command_deg.Data; A380SecComputer_B.SSM_p2 = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_2_command_deg.SSM; A380SecComputer_B.Data_gu = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_2_command_deg.Data; + A380SecComputer_B.Data_ix = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_standard_ft.Data; A380SecComputer_B.SSM_bo0 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_ix = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.Data; - A380SecComputer_B.Data_do = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_corrected_ft.Data; + A380SecComputer_B.Data_do = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.Data; A380SecComputer_B.SSM_bc = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_3_command_deg.SSM; A380SecComputer_B.Data_hu = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_3_command_deg.Data; A380SecComputer_B.SSM_h0 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_4_command_deg.SSM; @@ -2406,9 +2392,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_i2y = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_4_command_deg.Data; A380SecComputer_B.SSM_mqp = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_5_command_deg.SSM; A380SecComputer_B.Data_pg = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_ba = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.SSM; + A380SecComputer_B.SSM_ba = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_corrected_ft.SSM; + A380SecComputer_B.SSM_in = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.SSM; A380SecComputer_B.Data_ni = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_in = A380SecComputer_U.in.bus_inputs.adr_1_bus.mach.SSM; A380SecComputer_B.SSM_ff = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_6_command_deg.SSM; A380SecComputer_B.Data_fr = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_6_command_deg.Data; A380SecComputer_B.SSM_ic = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_6_command_deg.SSM; @@ -2417,9 +2403,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_nxl = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_7_command_deg.Data; A380SecComputer_B.SSM_ja = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_7_command_deg.SSM; A380SecComputer_B.Data_jh = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_7_command_deg.Data; + A380SecComputer_B.Data_gl = A380SecComputer_U.in.bus_inputs.adr_1_bus.altitude_corrected_ft.Data; A380SecComputer_B.SSM_js = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_gl = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.Data; - A380SecComputer_B.Data_gn = A380SecComputer_U.in.bus_inputs.adr_1_bus.mach.Data; + A380SecComputer_B.Data_gn = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.Data; A380SecComputer_B.SSM_is3 = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_8_command_deg.SSM; A380SecComputer_B.Data_myb = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_8_command_deg.Data; A380SecComputer_B.SSM_ag = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_inboard_elevator_command_deg.SSM; @@ -2428,9 +2414,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_o5o = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_inboard_elevator_command_deg.Data; A380SecComputer_B.SSM_ph = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_outboard_elevator_command_deg.SSM; A380SecComputer_B.Data_l5 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_jw = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_B.SSM_jw = A380SecComputer_U.in.bus_inputs.adr_1_bus.mach.SSM; + A380SecComputer_B.SSM_jy = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.SSM; A380SecComputer_B.Data_dc2 = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_jy = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_computed_kn.SSM; A380SecComputer_B.SSM_j1 = A380SecComputer_U.in.bus_inputs.prim_3_bus.ths_command_deg.SSM; A380SecComputer_B.Data_gr = A380SecComputer_U.in.bus_inputs.prim_3_bus.ths_command_deg.Data; A380SecComputer_B.SSM_ov = A380SecComputer_U.in.bus_inputs.prim_3_bus.upper_rudder_command_deg.SSM; @@ -2439,9 +2425,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_i3 = A380SecComputer_U.in.bus_inputs.prim_3_bus.lower_rudder_command_deg.Data; A380SecComputer_B.SSM_b4 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_sidestick_pitch_command_deg.SSM; A380SecComputer_B.Data_et = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_sidestick_pitch_command_deg.Data; + A380SecComputer_B.Data_mc = A380SecComputer_U.in.bus_inputs.adr_1_bus.mach.Data; A380SecComputer_B.SSM_gb = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_mc = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.Data; - A380SecComputer_B.Data_k3 = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_computed_kn.Data; + A380SecComputer_B.Data_k3 = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.Data; A380SecComputer_B.SSM_oh = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_f2 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_sidestick_roll_command_deg.Data; A380SecComputer_B.SSM_mm5 = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_sidestick_roll_command_deg.SSM; @@ -2450,10 +2436,10 @@ void A380SecComputer::step() A380SecComputer_B.Data_ed = A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_pedal_position_deg.Data; A380SecComputer_B.SSM_c2 = A380SecComputer_U.in.bus_inputs.prim_3_bus.aileron_status_word.SSM; A380SecComputer_B.Data_o2j = A380SecComputer_U.in.bus_inputs.prim_3_bus.aileron_status_word.Data; - A380SecComputer_B.SSM_hc = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_i43 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_aileron_1_position_deg.Data; A380SecComputer_B.pause_on = A380SecComputer_U.in.sim_data.pause_on; - A380SecComputer_B.SSM_ktr = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_true_kn.SSM; + A380SecComputer_B.SSM_hc = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_computed_kn.SSM; + A380SecComputer_B.SSM_ktr = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_i43 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_aileron_1_position_deg.Data; A380SecComputer_B.SSM_gl = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_aileron_2_position_deg.SSM; A380SecComputer_B.Data_ic = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_aileron_2_position_deg.Data; A380SecComputer_B.SSM_my = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_aileron_1_position_deg.SSM; @@ -2462,9 +2448,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_jg = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_aileron_2_position_deg.Data; A380SecComputer_B.SSM_go = A380SecComputer_U.in.bus_inputs.prim_3_bus.spoiler_status_word.SSM; A380SecComputer_B.Data_cu = A380SecComputer_U.in.bus_inputs.prim_3_bus.spoiler_status_word.Data; + A380SecComputer_B.Data_ep = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_computed_kn.Data; A380SecComputer_B.SSM_e5c = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_position_deg.SSM; - A380SecComputer_B.Data_ep = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_position_deg.Data; - A380SecComputer_B.Data_d3 = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_true_kn.Data; + A380SecComputer_B.Data_d3 = A380SecComputer_U.in.bus_inputs.prim_3_bus.left_spoiler_position_deg.Data; A380SecComputer_B.SSM_dk = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_position_deg.SSM; A380SecComputer_B.Data_bt = A380SecComputer_U.in.bus_inputs.prim_3_bus.right_spoiler_position_deg.Data; A380SecComputer_B.SSM_evc = A380SecComputer_U.in.bus_inputs.prim_3_bus.elevator_status_word.SSM; @@ -2473,9 +2459,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_jl3 = A380SecComputer_U.in.bus_inputs.prim_3_bus.elevator_1_position_deg.Data; A380SecComputer_B.SSM_af = A380SecComputer_U.in.bus_inputs.prim_3_bus.elevator_2_position_deg.SSM; A380SecComputer_B.Data_nm = A380SecComputer_U.in.bus_inputs.prim_3_bus.elevator_2_position_deg.Data; - A380SecComputer_B.SSM_npr = A380SecComputer_U.in.bus_inputs.prim_3_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.SSM_npr = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_true_kn.SSM; + A380SecComputer_B.SSM_ew = A380SecComputer_U.in.bus_inputs.prim_3_bus.elevator_3_position_deg.SSM; A380SecComputer_B.Data_ia = A380SecComputer_U.in.bus_inputs.prim_3_bus.elevator_3_position_deg.Data; - A380SecComputer_B.SSM_ew = A380SecComputer_U.in.bus_inputs.adr_1_bus.vertical_speed_ft_min.SSM; A380SecComputer_B.SSM_lt = A380SecComputer_U.in.bus_inputs.prim_3_bus.ths_position_deg.SSM; A380SecComputer_B.Data_j0 = A380SecComputer_U.in.bus_inputs.prim_3_bus.ths_position_deg.Data; A380SecComputer_B.SSM_ger = A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_status_word.SSM; @@ -2484,9 +2470,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_hp = A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_1_position_deg.Data; A380SecComputer_B.SSM_co2 = A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_2_position_deg.SSM; A380SecComputer_B.Data_ct = A380SecComputer_U.in.bus_inputs.prim_3_bus.rudder_2_position_deg.Data; + A380SecComputer_B.Data_pc = A380SecComputer_U.in.bus_inputs.adr_1_bus.airspeed_true_kn.Data; A380SecComputer_B.SSM_ny = A380SecComputer_U.in.bus_inputs.prim_3_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_pc = A380SecComputer_U.in.bus_inputs.prim_3_bus.fctl_law_status_word.Data; - A380SecComputer_B.Data_nzt = A380SecComputer_U.in.bus_inputs.adr_1_bus.vertical_speed_ft_min.Data; + A380SecComputer_B.Data_nzt = A380SecComputer_U.in.bus_inputs.prim_3_bus.fctl_law_status_word.Data; A380SecComputer_B.SSM_l4 = A380SecComputer_U.in.bus_inputs.prim_3_bus.discrete_status_word_1.SSM; A380SecComputer_B.Data_c0 = A380SecComputer_U.in.bus_inputs.prim_3_bus.discrete_status_word_1.Data; A380SecComputer_B.SSM_nm = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_sidestick_pitch_command_deg.SSM; @@ -2495,9 +2481,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_lm = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_sidestick_pitch_command_deg.Data; A380SecComputer_B.SSM_dl = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_fz = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_dx = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.SSM; + A380SecComputer_B.SSM_dx = A380SecComputer_U.in.bus_inputs.adr_1_bus.vertical_speed_ft_min.SSM; + A380SecComputer_B.SSM_a5h = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_oz = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_a5h = A380SecComputer_U.in.bus_inputs.adr_1_bus.aoa_corrected_deg.SSM; A380SecComputer_B.SSM_fl = A380SecComputer_U.in.bus_inputs.sec_x_bus.rudder_pedal_position_deg.SSM; A380SecComputer_B.Data_gf = A380SecComputer_U.in.bus_inputs.sec_x_bus.rudder_pedal_position_deg.Data; A380SecComputer_B.SSM_p3 = A380SecComputer_U.in.bus_inputs.sec_x_bus.aileron_status_word.SSM; @@ -2506,9 +2492,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_a0z = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_aileron_1_position_deg.Data; A380SecComputer_B.SSM_bm = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_aileron_2_position_deg.SSM; A380SecComputer_B.Data_fk = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_aileron_2_position_deg.Data; + A380SecComputer_B.Data_bu = A380SecComputer_U.in.bus_inputs.adr_1_bus.vertical_speed_ft_min.Data; A380SecComputer_B.SSM_nl = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_bu = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_aileron_1_position_deg.Data; - A380SecComputer_B.Data_o23 = A380SecComputer_U.in.bus_inputs.adr_1_bus.aoa_corrected_deg.Data; + A380SecComputer_B.Data_o23 = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_aileron_1_position_deg.Data; A380SecComputer_B.SSM_grm = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_aileron_2_position_deg.SSM; A380SecComputer_B.Data_g3 = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_aileron_2_position_deg.Data; A380SecComputer_B.SSM_gzm = A380SecComputer_U.in.bus_inputs.sec_x_bus.spoiler_status_word.SSM; @@ -2517,9 +2503,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_pwf = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_spoiler_1_position_deg.Data; A380SecComputer_B.SSM_aa = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_spoiler_1_position_deg.SSM; A380SecComputer_B.Data_gvk = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_spoiler_1_position_deg.Data; - A380SecComputer_B.SSM_fvk = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.SSM; + A380SecComputer_B.SSM_fvk = A380SecComputer_U.in.bus_inputs.adr_1_bus.aoa_corrected_deg.SSM; + A380SecComputer_B.SSM_lw = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.SSM; A380SecComputer_B.Data_ln = A380SecComputer_U.in.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.Data; - A380SecComputer_B.SSM_lw = A380SecComputer_U.in.bus_inputs.adr_1_bus.corrected_average_static_pressure.SSM; A380SecComputer_B.SSM_fa = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_spoiler_2_position_deg.SSM; A380SecComputer_B.Data_ka = A380SecComputer_U.in.bus_inputs.sec_x_bus.right_spoiler_2_position_deg.Data; A380SecComputer_B.SSM_lbx = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_status_word.SSM; @@ -2528,9 +2514,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_m4 = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_1_position_deg.Data; A380SecComputer_B.SSM_a1 = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_2_position_deg.SSM; A380SecComputer_B.Data_fki = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_2_position_deg.Data; + A380SecComputer_B.Data_bv = A380SecComputer_U.in.bus_inputs.adr_1_bus.aoa_corrected_deg.Data; A380SecComputer_B.SSM_p1 = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_3_position_deg.SSM; - A380SecComputer_B.Data_bv = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_3_position_deg.Data; - A380SecComputer_B.Data_m21 = A380SecComputer_U.in.bus_inputs.adr_1_bus.corrected_average_static_pressure.Data; + A380SecComputer_B.Data_m21 = A380SecComputer_U.in.bus_inputs.sec_x_bus.elevator_3_position_deg.Data; A380SecComputer_B.SSM_cn2 = A380SecComputer_U.in.bus_inputs.sec_x_bus.ths_position_deg.SSM; A380SecComputer_B.Data_nbg = A380SecComputer_U.in.bus_inputs.sec_x_bus.ths_position_deg.Data; A380SecComputer_B.SSM_an3 = A380SecComputer_U.in.bus_inputs.sec_x_bus.rudder_status_word.SSM; @@ -2539,9 +2525,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_ki = A380SecComputer_U.in.bus_inputs.sec_x_bus.rudder_1_position_deg.Data; A380SecComputer_B.SSM_dp = A380SecComputer_U.in.bus_inputs.sec_x_bus.rudder_2_position_deg.SSM; A380SecComputer_B.Data_p5p = A380SecComputer_U.in.bus_inputs.sec_x_bus.rudder_2_position_deg.Data; - A380SecComputer_B.SSM_boy = A380SecComputer_U.in.bus_inputs.sec_x_bus.fctl_law_status_word.SSM; + A380SecComputer_B.SSM_boy = A380SecComputer_U.in.bus_inputs.adr_1_bus.corrected_average_static_pressure.SSM; + A380SecComputer_B.SSM_lg = A380SecComputer_U.in.bus_inputs.sec_x_bus.fctl_law_status_word.SSM; A380SecComputer_B.Data_nry = A380SecComputer_U.in.bus_inputs.sec_x_bus.fctl_law_status_word.Data; - A380SecComputer_B.SSM_lg = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_standard_ft.SSM; A380SecComputer_B.SSM_cm = A380SecComputer_U.in.bus_inputs.sec_x_bus.misc_data_status_word.SSM; A380SecComputer_B.Data_mh = A380SecComputer_U.in.bus_inputs.sec_x_bus.misc_data_status_word.Data; A380SecComputer_B.SSM_hl = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_sidestick_pitch_command_deg.SSM; @@ -2550,9 +2536,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_hy = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_sidestick_pitch_command_deg.Data; A380SecComputer_B.SSM_b42 = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_j04 = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_sidestick_roll_command_deg.Data; + A380SecComputer_B.Data_pf = A380SecComputer_U.in.bus_inputs.adr_1_bus.corrected_average_static_pressure.Data; A380SecComputer_B.SSM_anz = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_pf = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.Data; - A380SecComputer_B.Data_pl = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_standard_ft.Data; + A380SecComputer_B.Data_pl = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.Data; A380SecComputer_B.SSM_d2 = A380SecComputer_U.in.bus_inputs.sec_y_bus.rudder_pedal_position_deg.SSM; A380SecComputer_B.Data_gb = A380SecComputer_U.in.bus_inputs.sec_y_bus.rudder_pedal_position_deg.Data; A380SecComputer_B.SSM_gov = A380SecComputer_U.in.bus_inputs.sec_y_bus.aileron_status_word.SSM; @@ -2561,10 +2547,10 @@ void A380SecComputer::step() A380SecComputer_B.Data_ai = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_aileron_1_position_deg.Data; A380SecComputer_B.SSM_pe3 = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_aileron_2_position_deg.SSM; A380SecComputer_B.Data_gfr = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_jj = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_czp = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_aileron_1_position_deg.Data; A380SecComputer_B.tracking_mode_on_override = A380SecComputer_U.in.sim_data.tracking_mode_on_override; - A380SecComputer_B.SSM_jx = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_corrected_ft.SSM; + A380SecComputer_B.SSM_jj = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_standard_ft.SSM; + A380SecComputer_B.SSM_jx = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_czp = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_aileron_1_position_deg.Data; A380SecComputer_B.SSM_npl = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_aileron_2_position_deg.SSM; A380SecComputer_B.Data_fm = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_aileron_2_position_deg.Data; A380SecComputer_B.SSM_gf = A380SecComputer_U.in.bus_inputs.sec_y_bus.spoiler_status_word.SSM; @@ -2573,9 +2559,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_g1 = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_spoiler_1_position_deg.Data; A380SecComputer_B.SSM_fhm = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_spoiler_1_position_deg.SSM; A380SecComputer_B.Data_j4 = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_spoiler_1_position_deg.Data; + A380SecComputer_B.Data_jyh = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_standard_ft.Data; A380SecComputer_B.SSM_ltj = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.SSM; - A380SecComputer_B.Data_jyh = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.Data; - A380SecComputer_B.Data_e4 = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_corrected_ft.Data; + A380SecComputer_B.Data_e4 = A380SecComputer_U.in.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.Data; A380SecComputer_B.SSM_hn = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_spoiler_2_position_deg.SSM; A380SecComputer_B.Data_ghs = A380SecComputer_U.in.bus_inputs.sec_y_bus.right_spoiler_2_position_deg.Data; A380SecComputer_B.SSM_h3 = A380SecComputer_U.in.bus_inputs.sec_y_bus.elevator_status_word.SSM; @@ -2584,9 +2570,9 @@ void A380SecComputer::step() A380SecComputer_B.Data_lzt = A380SecComputer_U.in.bus_inputs.sec_y_bus.elevator_1_position_deg.Data; A380SecComputer_B.SSM_p0 = A380SecComputer_U.in.bus_inputs.sec_y_bus.elevator_2_position_deg.SSM; A380SecComputer_B.Data_kn = A380SecComputer_U.in.bus_inputs.sec_y_bus.elevator_2_position_deg.Data; - A380SecComputer_B.SSM_fu = A380SecComputer_U.in.bus_inputs.sec_y_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.SSM_fu = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_corrected_ft.SSM; + A380SecComputer_B.SSM_hr = A380SecComputer_U.in.bus_inputs.sec_y_bus.elevator_3_position_deg.SSM; A380SecComputer_B.Data_nab = A380SecComputer_U.in.bus_inputs.sec_y_bus.elevator_3_position_deg.Data; - A380SecComputer_B.SSM_hr = A380SecComputer_U.in.bus_inputs.adr_2_bus.mach.SSM; A380SecComputer_B.SSM_bi = A380SecComputer_U.in.bus_inputs.sec_y_bus.ths_position_deg.SSM; A380SecComputer_B.Data_lgf = A380SecComputer_U.in.bus_inputs.sec_y_bus.ths_position_deg.Data; A380SecComputer_B.SSM_bd = A380SecComputer_U.in.bus_inputs.sec_y_bus.rudder_status_word.SSM; @@ -2595,54 +2581,50 @@ void A380SecComputer::step() A380SecComputer_B.Data_dt = A380SecComputer_U.in.bus_inputs.sec_y_bus.rudder_1_position_deg.Data; A380SecComputer_B.SSM_la = A380SecComputer_U.in.bus_inputs.sec_y_bus.rudder_2_position_deg.SSM; A380SecComputer_B.Data_b1 = A380SecComputer_U.in.bus_inputs.sec_y_bus.rudder_2_position_deg.Data; + A380SecComputer_B.Data_nmr = A380SecComputer_U.in.bus_inputs.adr_2_bus.altitude_corrected_ft.Data; A380SecComputer_B.SSM_l1 = A380SecComputer_U.in.bus_inputs.sec_y_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_nmr = A380SecComputer_U.in.bus_inputs.sec_y_bus.fctl_law_status_word.Data; - A380SecComputer_B.Data_ea = A380SecComputer_U.in.bus_inputs.adr_2_bus.mach.Data; + A380SecComputer_B.Data_ea = A380SecComputer_U.in.bus_inputs.sec_y_bus.fctl_law_status_word.Data; A380SecComputer_B.SSM_dy = A380SecComputer_U.in.bus_inputs.sec_y_bus.misc_data_status_word.SSM; A380SecComputer_B.Data_nib = A380SecComputer_U.in.bus_inputs.sec_y_bus.misc_data_status_word.Data; - A380SecComputer_B.SSM_ie = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_computed_kn.SSM; - A380SecComputer_B.Data_i2t = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_computed_kn.Data; - A380SecComputer_B.SSM_kf = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_true_kn.SSM; - A380SecComputer_B.Data_ng = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_true_kn.Data; - A380SecComputer_B.SSM_p5l = A380SecComputer_U.in.bus_inputs.adr_2_bus.vertical_speed_ft_min.SSM; - A380SecComputer_B.Data_h31 = A380SecComputer_U.in.bus_inputs.adr_2_bus.vertical_speed_ft_min.Data; + A380SecComputer_B.SSM_ie = A380SecComputer_U.in.bus_inputs.adr_2_bus.mach.SSM; + A380SecComputer_B.Data_i2t = A380SecComputer_U.in.bus_inputs.adr_2_bus.mach.Data; + A380SecComputer_B.SSM_kf = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_computed_kn.SSM; + A380SecComputer_B.Data_ng = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_computed_kn.Data; + A380SecComputer_B.SSM_p5l = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_true_kn.SSM; + A380SecComputer_B.Data_h31 = A380SecComputer_U.in.bus_inputs.adr_2_bus.airspeed_true_kn.Data; A380SecComputer_B.tailstrike_protection_on = A380SecComputer_U.in.sim_data.tailstrike_protection_on; - A380SecComputer_B.SSM_g3 = A380SecComputer_U.in.bus_inputs.adr_2_bus.aoa_corrected_deg.SSM; - A380SecComputer_B.Data_ew = A380SecComputer_U.in.bus_inputs.adr_2_bus.aoa_corrected_deg.Data; - A380SecComputer_B.SSM_b3 = A380SecComputer_U.in.bus_inputs.adr_2_bus.corrected_average_static_pressure.SSM; - A380SecComputer_B.Data_j1s = A380SecComputer_U.in.bus_inputs.adr_2_bus.corrected_average_static_pressure.Data; - A380SecComputer_B.SSM_dxv = A380SecComputer_U.in.bus_inputs.ir_1_bus.discrete_word_1.SSM; - A380SecComputer_B.Data_j5 = A380SecComputer_U.in.bus_inputs.ir_1_bus.discrete_word_1.Data; - A380SecComputer_B.SSM_mxz = A380SecComputer_U.in.bus_inputs.ir_1_bus.latitude_deg.SSM; - A380SecComputer_B.Data_cw = A380SecComputer_U.in.bus_inputs.ir_1_bus.latitude_deg.Data; - A380SecComputer_B.SSM_kk4 = A380SecComputer_U.in.bus_inputs.ir_1_bus.longitude_deg.SSM; - A380SecComputer_B.Data_gqa = A380SecComputer_U.in.bus_inputs.ir_1_bus.longitude_deg.Data; + A380SecComputer_B.SSM_g3 = A380SecComputer_U.in.bus_inputs.adr_2_bus.vertical_speed_ft_min.SSM; + A380SecComputer_B.Data_ew = A380SecComputer_U.in.bus_inputs.adr_2_bus.vertical_speed_ft_min.Data; + A380SecComputer_B.SSM_b3 = A380SecComputer_U.in.bus_inputs.adr_2_bus.aoa_corrected_deg.SSM; + A380SecComputer_B.Data_j1s = A380SecComputer_U.in.bus_inputs.adr_2_bus.aoa_corrected_deg.Data; + A380SecComputer_B.SSM_dxv = A380SecComputer_U.in.bus_inputs.adr_2_bus.corrected_average_static_pressure.SSM; + A380SecComputer_B.Data_j5 = A380SecComputer_U.in.bus_inputs.adr_2_bus.corrected_average_static_pressure.Data; + A380SecComputer_B.SSM_mxz = A380SecComputer_U.in.bus_inputs.ir_1_bus.discrete_word_1.SSM; + A380SecComputer_B.Data_cw = A380SecComputer_U.in.bus_inputs.ir_1_bus.discrete_word_1.Data; + A380SecComputer_B.SSM_kk4 = A380SecComputer_U.in.bus_inputs.ir_1_bus.latitude_deg.SSM; + A380SecComputer_B.Data_gqa = A380SecComputer_U.in.bus_inputs.ir_1_bus.latitude_deg.Data; A380SecComputer_B.computer_running = A380SecComputer_U.in.sim_data.computer_running; - A380SecComputer_B.SSM_cy = A380SecComputer_U.in.bus_inputs.ir_1_bus.ground_speed_kn.SSM; - A380SecComputer_B.Data_hz = A380SecComputer_U.in.bus_inputs.ir_1_bus.ground_speed_kn.Data; - A380SecComputer_B.SSM_ju = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_true_deg.SSM; - A380SecComputer_B.Data_fri = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_true_deg.Data; - A380SecComputer_B.SSM_ey = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_true_deg.SSM; - A380SecComputer_B.Data_cm = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_true_deg.Data; - A380SecComputer_B.SSM_jr = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_speed_kn.SSM; - A380SecComputer_B.Data_czj = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_speed_kn.Data; - A380SecComputer_B.SSM_hs = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_direction_true_deg.SSM; - A380SecComputer_B.Data_mb = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_direction_true_deg.Data; + A380SecComputer_B.SSM_cy = A380SecComputer_U.in.bus_inputs.ir_1_bus.longitude_deg.SSM; + A380SecComputer_B.Data_hz = A380SecComputer_U.in.bus_inputs.ir_1_bus.longitude_deg.Data; + A380SecComputer_B.SSM_ju = A380SecComputer_U.in.bus_inputs.ir_1_bus.ground_speed_kn.SSM; + A380SecComputer_B.Data_fri = A380SecComputer_U.in.bus_inputs.ir_1_bus.ground_speed_kn.Data; + A380SecComputer_B.SSM_ey = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_true_deg.SSM; + A380SecComputer_B.Data_cm = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_true_deg.Data; + A380SecComputer_B.SSM_jr = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_true_deg.SSM; + A380SecComputer_B.Data_czj = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_true_deg.Data; + A380SecComputer_B.SSM_hs = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_speed_kn.SSM; + A380SecComputer_B.Data_mb = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_speed_kn.Data; A380SecComputer_B.sec_overhead_button_pressed = A380SecComputer_U.in.discrete_inputs.sec_overhead_button_pressed; - A380SecComputer_B.SSM_mx3 = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_magnetic_deg.SSM; - A380SecComputer_B.Data_gk4 = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_magnetic_deg.Data; - A380SecComputer_B.SSM_er = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_magnetic_deg.SSM; - A380SecComputer_B.Data_gbt = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_magnetic_deg.Data; - A380SecComputer_B.SSM_hm = A380SecComputer_U.in.bus_inputs.ir_1_bus.drift_angle_deg.SSM; - A380SecComputer_B.Data_p0 = A380SecComputer_U.in.bus_inputs.ir_1_bus.drift_angle_deg.Data; - A380SecComputer_B.SSM_dm = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_angle_deg.SSM; - A380SecComputer_B.Data_dn = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_angle_deg.Data; - A380SecComputer_B.SSM_fk = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_accel_g.SSM; - A380SecComputer_B.Data_iyw = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_accel_g.Data; - A380SecComputer_MATLABFunction_j(0.0, A380SecComputer_P.HysteresisNode2_highTrigger, - A380SecComputer_P.HysteresisNode2_lowTrigger, &rtb_OR1, &A380SecComputer_DWork.sf_MATLABFunction_jg); - A380SecComputer_MATLABFunction_j(0.0, A380SecComputer_P.HysteresisNode3_highTrigger, - A380SecComputer_P.HysteresisNode3_lowTrigger, &rtb_OR1, &A380SecComputer_DWork.sf_MATLABFunction_br); + A380SecComputer_B.SSM_mx3 = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_direction_true_deg.SSM; + A380SecComputer_B.Data_gk4 = A380SecComputer_U.in.bus_inputs.ir_1_bus.wind_direction_true_deg.Data; + A380SecComputer_B.SSM_er = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_magnetic_deg.SSM; + A380SecComputer_B.Data_gbt = A380SecComputer_U.in.bus_inputs.ir_1_bus.track_angle_magnetic_deg.Data; + A380SecComputer_B.SSM_hm = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_magnetic_deg.SSM; + A380SecComputer_B.Data_p0 = A380SecComputer_U.in.bus_inputs.ir_1_bus.heading_magnetic_deg.Data; + A380SecComputer_B.SSM_dm = A380SecComputer_U.in.bus_inputs.ir_1_bus.drift_angle_deg.SSM; + A380SecComputer_B.Data_dn = A380SecComputer_U.in.bus_inputs.ir_1_bus.drift_angle_deg.Data; + A380SecComputer_B.SSM_fk = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_angle_deg.SSM; + A380SecComputer_B.Data_iyw = A380SecComputer_U.in.bus_inputs.ir_1_bus.flight_path_angle_deg.Data; A380SecComputer_DWork.Delay_DSTATE_c = rtb_AND1_p; A380SecComputer_DWork.Delay1_DSTATE = rtb_AND7; A380SecComputer_DWork.Memory_PreviousInput_n = A380SecComputer_DWork.Delay_DSTATE_d; @@ -2672,6 +2654,8 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.discrete_inputs.rudder_trim_reset_pressed = A380SecComputer_B.rudder_trim_reset_pressed; A380SecComputer_Y.out.data.discrete_inputs.pitch_trim_up_pressed = A380SecComputer_B.pitch_trim_up_pressed; A380SecComputer_Y.out.data.discrete_inputs.pitch_trim_down_pressed = A380SecComputer_B.pitch_trim_down_pressed; + A380SecComputer_Y.out.data.discrete_inputs.rat_deployed = A380SecComputer_B.rat_deployed; + A380SecComputer_Y.out.data.discrete_inputs.rat_contactor_closed = A380SecComputer_B.rat_contactor_closed; A380SecComputer_Y.out.data.discrete_inputs.green_low_pressure = A380SecComputer_B.green_low_pressure; A380SecComputer_Y.out.data.discrete_inputs.yellow_low_pressure = A380SecComputer_B.yellow_low_pressure; A380SecComputer_Y.out.data.analog_inputs.capt_pitch_stick_pos = A380SecComputer_B.capt_pitch_stick_pos; @@ -2694,394 +2678,392 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.analog_inputs.rudder_2_pos_deg = A380SecComputer_B.rudder_2_pos_deg; A380SecComputer_Y.out.data.analog_inputs.rudder_pedal_pos_deg = A380SecComputer_B.rudder_pedal_pos_deg; A380SecComputer_Y.out.data.analog_inputs.rudder_trim_pos_deg = A380SecComputer_B.rudder_trim_pos_deg; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_standard_ft.SSM = A380SecComputer_B.SSM_pj; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_standard_ft.Data = A380SecComputer_B.Data_nx; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_corrected_ft.SSM = A380SecComputer_B.SSM_cs; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_corrected_ft.Data = A380SecComputer_B.Data_do; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.mach.SSM = A380SecComputer_B.SSM_in; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.mach.Data = A380SecComputer_B.Data_gn; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_computed_kn.SSM = A380SecComputer_B.SSM_jy; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_computed_kn.Data = A380SecComputer_B.Data_k3; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_true_kn.SSM = A380SecComputer_B.SSM_ktr; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_true_kn.Data = A380SecComputer_B.Data_d3; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.SSM = A380SecComputer_B.SSM_ew; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.Data = A380SecComputer_B.Data_nzt; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.aoa_corrected_deg.SSM = A380SecComputer_B.SSM_a5h; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.aoa_corrected_deg.Data = A380SecComputer_B.Data_o23; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.SSM = A380SecComputer_B.SSM_lw; - A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.Data = A380SecComputer_B.Data_m21; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_standard_ft.SSM = A380SecComputer_B.SSM_lg; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_standard_ft.Data = A380SecComputer_B.Data_pl; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_corrected_ft.SSM = A380SecComputer_B.SSM_jx; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_corrected_ft.Data = A380SecComputer_B.Data_e4; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.mach.SSM = A380SecComputer_B.SSM_hr; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.mach.Data = A380SecComputer_B.Data_ea; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_computed_kn.SSM = A380SecComputer_B.SSM_ie; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_computed_kn.Data = A380SecComputer_B.Data_i2t; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_true_kn.SSM = A380SecComputer_B.SSM_kf; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_true_kn.Data = A380SecComputer_B.Data_ng; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.SSM = A380SecComputer_B.SSM_p5l; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.Data = A380SecComputer_B.Data_h31; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.aoa_corrected_deg.SSM = A380SecComputer_B.SSM_g3; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.aoa_corrected_deg.Data = A380SecComputer_B.Data_ew; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.SSM = A380SecComputer_B.SSM_b3; - A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.Data = A380SecComputer_B.Data_j1s; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.discrete_word_1.SSM = A380SecComputer_B.SSM_dxv; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.discrete_word_1.Data = A380SecComputer_B.Data_j5; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.latitude_deg.SSM = A380SecComputer_B.SSM_mxz; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.latitude_deg.Data = A380SecComputer_B.Data_cw; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.longitude_deg.SSM = A380SecComputer_B.SSM_kk4; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.longitude_deg.Data = A380SecComputer_B.Data_gqa; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.ground_speed_kn.SSM = A380SecComputer_B.SSM_cy; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.ground_speed_kn.Data = A380SecComputer_B.Data_hz; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_true_deg.SSM = A380SecComputer_B.SSM_ju; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_true_deg.Data = A380SecComputer_B.Data_fri; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_true_deg.SSM = A380SecComputer_B.SSM_ey; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_true_deg.Data = A380SecComputer_B.Data_cm; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_speed_kn.SSM = A380SecComputer_B.SSM_jr; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_speed_kn.Data = A380SecComputer_B.Data_czj; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_direction_true_deg.SSM = A380SecComputer_B.SSM_hs; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_direction_true_deg.Data = A380SecComputer_B.Data_mb; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.SSM = A380SecComputer_B.SSM_mx3; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.Data = A380SecComputer_B.Data_gk4; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_magnetic_deg.SSM = A380SecComputer_B.SSM_er; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_magnetic_deg.Data = A380SecComputer_B.Data_gbt; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.drift_angle_deg.SSM = A380SecComputer_B.SSM_hm; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.drift_angle_deg.Data = A380SecComputer_B.Data_p0; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_angle_deg.SSM = A380SecComputer_B.SSM_dm; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_angle_deg.Data = A380SecComputer_B.Data_dn; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_accel_g.SSM = A380SecComputer_B.SSM_fk; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_accel_g.Data = A380SecComputer_B.Data_iyw; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_angle_deg.SSM = A380SecComputer_B.SSM; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_angle_deg.Data = A380SecComputer_B.Data; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_angle_deg.SSM = A380SecComputer_B.SSM_k; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_angle_deg.Data = A380SecComputer_B.Data_f; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.SSM = A380SecComputer_B.SSM_kx; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.Data = A380SecComputer_B.Data_fw; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.SSM = A380SecComputer_B.SSM_kxx; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.Data = A380SecComputer_B.Data_fwx; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxt; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.Data = A380SecComputer_B.Data_fwxk; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_long_accel_g.SSM = A380SecComputer_B.SSM_kxxta; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_long_accel_g.Data = A380SecComputer_B.Data_fwxkf; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_lat_accel_g.SSM = A380SecComputer_B.SSM_kxxtac; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_lat_accel_g.Data = A380SecComputer_B.Data_fwxkft; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_normal_accel_g.SSM = A380SecComputer_B.SSM_kxxtac0; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_normal_accel_g.Data = A380SecComputer_B.Data_fwxkftc; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxtac0z; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.Data = A380SecComputer_B.Data_fwxkftc3; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxtac0zt; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.Data = A380SecComputer_B.Data_fwxkftc3e; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxtac0ztg; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.Data = A380SecComputer_B.Data_fwxkftc3ep; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_alt_ft.SSM = A380SecComputer_B.SSM_kxxtac0ztgf; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_alt_ft.Data = A380SecComputer_B.Data_fwxkftc3epg; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_kxxtac0ztgf2; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.Data = A380SecComputer_B.Data_fwxkftc3epgt; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_kxxtac0ztgf2u; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.Data = A380SecComputer_B.Data_fwxkftc3epgtd; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.vertical_accel_g.SSM = A380SecComputer_B.SSM_kxxtac0ztgf2ux; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.vertical_accel_g.Data = A380SecComputer_B.Data_fwxkftc3epgtdx; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.SSM = - A380SecComputer_B.SSM_kxxtac0ztgf2uxn; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.Data = - A380SecComputer_B.Data_fwxkftc3epgtdxc; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.north_south_velocity_kn.SSM = A380SecComputer_B.SSM_ky; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.north_south_velocity_kn.Data = A380SecComputer_B.Data_h; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.east_west_velocity_kn.SSM = A380SecComputer_B.SSM_d; - A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.east_west_velocity_kn.Data = A380SecComputer_B.Data_e; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.discrete_word_1.SSM = A380SecComputer_B.SSM_h; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.discrete_word_1.Data = A380SecComputer_B.Data_j; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.latitude_deg.SSM = A380SecComputer_B.SSM_kb; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.latitude_deg.Data = A380SecComputer_B.Data_d; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.longitude_deg.SSM = A380SecComputer_B.SSM_p; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.longitude_deg.Data = A380SecComputer_B.Data_p; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.ground_speed_kn.SSM = A380SecComputer_B.SSM_di; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.ground_speed_kn.Data = A380SecComputer_B.Data_i; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_true_deg.SSM = A380SecComputer_B.SSM_j; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_true_deg.Data = A380SecComputer_B.Data_g; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_true_deg.SSM = A380SecComputer_B.SSM_i; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_true_deg.Data = A380SecComputer_B.Data_a; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_speed_kn.SSM = A380SecComputer_B.SSM_g; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_speed_kn.Data = A380SecComputer_B.Data_eb; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_direction_true_deg.SSM = A380SecComputer_B.SSM_db; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_direction_true_deg.Data = A380SecComputer_B.Data_jo; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.SSM = A380SecComputer_B.SSM_n; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.Data = A380SecComputer_B.Data_ex; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_magnetic_deg.SSM = A380SecComputer_B.SSM_a; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_magnetic_deg.Data = A380SecComputer_B.Data_fd; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.drift_angle_deg.SSM = A380SecComputer_B.SSM_ir; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.drift_angle_deg.Data = A380SecComputer_B.Data_ja; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_angle_deg.SSM = A380SecComputer_B.SSM_hu; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_angle_deg.Data = A380SecComputer_B.Data_k; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_accel_g.SSM = A380SecComputer_B.SSM_e; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_accel_g.Data = A380SecComputer_B.Data_joy; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_angle_deg.SSM = A380SecComputer_B.SSM_gr; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_angle_deg.Data = A380SecComputer_B.Data_h3; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_angle_deg.SSM = A380SecComputer_B.SSM_ev; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_angle_deg.Data = A380SecComputer_B.Data_a0; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.SSM = A380SecComputer_B.SSM_l; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.Data = A380SecComputer_B.Data_b; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.SSM = A380SecComputer_B.SSM_ei; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.Data = A380SecComputer_B.Data_eq; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.SSM = A380SecComputer_B.SSM_an; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.Data = A380SecComputer_B.Data_iz; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_long_accel_g.SSM = A380SecComputer_B.SSM_c; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_long_accel_g.Data = A380SecComputer_B.Data_j2; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_lat_accel_g.SSM = A380SecComputer_B.SSM_cb; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_lat_accel_g.Data = A380SecComputer_B.Data_o; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_normal_accel_g.SSM = A380SecComputer_B.SSM_lb; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_normal_accel_g.Data = A380SecComputer_B.Data_m; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.SSM = A380SecComputer_B.SSM_ia; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.Data = A380SecComputer_B.Data_oq; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.SSM = A380SecComputer_B.SSM_kyz; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.Data = A380SecComputer_B.Data_fo; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.SSM = A380SecComputer_B.SSM_as; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.Data = A380SecComputer_B.Data_p1; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_alt_ft.SSM = A380SecComputer_B.SSM_is; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_alt_ft.Data = A380SecComputer_B.Data_p1y; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_ca; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.Data = A380SecComputer_B.Data_l; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_o; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.Data = A380SecComputer_B.Data_kp; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.vertical_accel_g.SSM = A380SecComputer_B.SSM_ak; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.vertical_accel_g.Data = A380SecComputer_B.Data_k0; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.SSM = A380SecComputer_B.SSM_cbj; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.Data = A380SecComputer_B.Data_pi; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.north_south_velocity_kn.SSM = A380SecComputer_B.SSM_cu; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.north_south_velocity_kn.Data = A380SecComputer_B.Data_dm; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.east_west_velocity_kn.SSM = A380SecComputer_B.SSM_nn; - A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.east_west_velocity_kn.Data = A380SecComputer_B.Data_f5; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.SSM = A380SecComputer_B.SSM_b; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.Data = A380SecComputer_B.Data_js; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.SSM = A380SecComputer_B.SSM_m; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.Data = A380SecComputer_B.Data_ee; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.SSM = A380SecComputer_B.SSM_f; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.Data = A380SecComputer_B.Data_ig; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.SSM = A380SecComputer_B.SSM_bp; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.Data = A380SecComputer_B.Data_mk; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.SSM = A380SecComputer_B.SSM_hb; - A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.Data = A380SecComputer_B.Data_pu; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.SSM = A380SecComputer_B.SSM_gz; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.Data = A380SecComputer_B.Data_ly; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.SSM = A380SecComputer_B.SSM_pv; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.Data = A380SecComputer_B.Data_jq; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.SSM = A380SecComputer_B.SSM_mf; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.Data = A380SecComputer_B.Data_o5; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.SSM = A380SecComputer_B.SSM_m0; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.Data = A380SecComputer_B.Data_lyw; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.SSM = A380SecComputer_B.SSM_kd; - A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.Data = A380SecComputer_B.Data_gq; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_pu; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_n; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_nv; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_bq; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_d5; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_dmn; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_eo; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_jn; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_nd; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_c; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_bq; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_lx; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_hi; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.Data = A380SecComputer_B.Data_jb; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_mm; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.Data = A380SecComputer_B.Data_fn; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_kz; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.Data = A380SecComputer_B.Data_od; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_il; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.Data = A380SecComputer_B.Data_ez; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_i2; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.Data = A380SecComputer_B.Data_pw; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_ah; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.Data = A380SecComputer_B.Data_m2; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_en; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.Data = A380SecComputer_B.Data_ek; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_dq; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.Data = A380SecComputer_B.Data_iy; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_px; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.Data = A380SecComputer_B.Data_lk; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_lbo; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.Data = A380SecComputer_B.Data_ca; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_p5; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.Data = A380SecComputer_B.Data_pix; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_mk; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.Data = A380SecComputer_B.Data_di; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_mu; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.Data = A380SecComputer_B.Data_lz; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_cbl; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.Data = A380SecComputer_B.Data_lu; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_gzd; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.Data = A380SecComputer_B.Data_dc; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_mo; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.Data = A380SecComputer_B.Data_gc; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_me; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_am; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_mj; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_mo; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_a5; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_dg; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_bt; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_e1; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_command_deg.SSM = A380SecComputer_B.SSM_om; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_command_deg.Data = A380SecComputer_B.Data_fp; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.SSM = A380SecComputer_B.SSM_ar; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.Data = A380SecComputer_B.Data_ns; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.SSM = A380SecComputer_B.SSM_ce; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.Data = A380SecComputer_B.Data_m3; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_ed; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_oj; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_jh; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_jy; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_je; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_j1; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_jt; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_fc; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.SSM = A380SecComputer_B.SSM_cui; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.Data = A380SecComputer_B.Data_of; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.aileron_status_word.SSM = A380SecComputer_B.SSM_mq; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.aileron_status_word.Data = A380SecComputer_B.Data_lg; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_ni; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.Data = A380SecComputer_B.Data_n4; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_df; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.Data = A380SecComputer_B.Data_ot; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_oe; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.Data = A380SecComputer_B.Data_gv; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_ha; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.Data = A380SecComputer_B.Data_ou; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.spoiler_status_word.SSM = A380SecComputer_B.SSM_op; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.spoiler_status_word.Data = A380SecComputer_B.Data_dh; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.SSM = A380SecComputer_B.SSM_a50; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.Data = A380SecComputer_B.Data_ph; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.SSM = A380SecComputer_B.SSM_og; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.Data = A380SecComputer_B.Data_gs; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_status_word.SSM = A380SecComputer_B.SSM_a4; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_status_word.Data = A380SecComputer_B.Data_fd4; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_1_position_deg.SSM = A380SecComputer_B.SSM_bv; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_1_position_deg.Data = A380SecComputer_B.Data_hm; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_2_position_deg.SSM = A380SecComputer_B.SSM_bo; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_2_position_deg.Data = A380SecComputer_B.Data_i2; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_d1; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_og; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_position_deg.SSM = A380SecComputer_B.SSM_hy; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_position_deg.Data = A380SecComputer_B.Data_fv; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_status_word.SSM = A380SecComputer_B.SSM_gi; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_status_word.Data = A380SecComputer_B.Data_oc; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_1_position_deg.SSM = A380SecComputer_B.SSM_pp; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_1_position_deg.Data = A380SecComputer_B.Data_kq; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_2_position_deg.SSM = A380SecComputer_B.SSM_iab; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_2_position_deg.Data = A380SecComputer_B.Data_ne; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.fctl_law_status_word.SSM = A380SecComputer_B.SSM_jtv; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_it; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.discrete_status_word_1.SSM = A380SecComputer_B.SSM_fy; - A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.discrete_status_word_1.Data = A380SecComputer_B.Data_ch; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_d4; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_bb; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_ars; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_ol; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_din; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_hw; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_m3; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_hs; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_np; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_fj; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_ax; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_ky; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_cl; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.Data = A380SecComputer_B.Data_h5; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_es; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.Data = A380SecComputer_B.Data_ku; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_gi1; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.Data = A380SecComputer_B.Data_jp; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_jz; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.Data = A380SecComputer_B.Data_nu; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_kt; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.Data = A380SecComputer_B.Data_br; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_ds; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.Data = A380SecComputer_B.Data_ae; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_eg; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.Data = A380SecComputer_B.Data_pe; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_a0; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.Data = A380SecComputer_B.Data_fy; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_cv; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.Data = A380SecComputer_B.Data_na; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_ea; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.Data = A380SecComputer_B.Data_my; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_p4; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.Data = A380SecComputer_B.Data_i4; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_m2; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.Data = A380SecComputer_B.Data_cx; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_bt0; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.Data = A380SecComputer_B.Data_nz; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_nr; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.Data = A380SecComputer_B.Data_id; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_fr; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.Data = A380SecComputer_B.Data_o2; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_cc; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.Data = A380SecComputer_B.Data_gqq; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_lm; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_md; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_mkm; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_cz; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_jhd; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_pm; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_av; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_bj; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_command_deg.SSM = A380SecComputer_B.SSM_ira; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_command_deg.Data = A380SecComputer_B.Data_ox; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.SSM = A380SecComputer_B.SSM_ge; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.Data = A380SecComputer_B.Data_pe5; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.SSM = A380SecComputer_B.SSM_lv; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.Data = A380SecComputer_B.Data_jj; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_cg; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_p5; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_be; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_ekl; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_axb; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_nd; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_nz; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_n2; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.SSM = A380SecComputer_B.SSM_cx; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.Data = A380SecComputer_B.Data_dl; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.aileron_status_word.SSM = A380SecComputer_B.SSM_gh; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.aileron_status_word.Data = A380SecComputer_B.Data_gs2; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_ks; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.Data = A380SecComputer_B.Data_h4; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_pw; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.Data = A380SecComputer_B.Data_e3; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_fh; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.Data = A380SecComputer_B.Data_f5h; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_gzn; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.Data = A380SecComputer_B.Data_an; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.spoiler_status_word.SSM = A380SecComputer_B.SSM_oo; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.spoiler_status_word.Data = A380SecComputer_B.Data_i4o; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.SSM = A380SecComputer_B.SSM_evh; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.Data = A380SecComputer_B.Data_af; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.SSM = A380SecComputer_B.SSM_cn; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.Data = A380SecComputer_B.Data_bm; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_status_word.SSM = A380SecComputer_B.SSM_co; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_status_word.Data = A380SecComputer_B.Data_dk; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_1_position_deg.SSM = A380SecComputer_B.SSM_pe; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_1_position_deg.Data = A380SecComputer_B.Data_nv; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_2_position_deg.SSM = A380SecComputer_B.SSM_cgz; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_2_position_deg.Data = A380SecComputer_B.Data_jpf; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_fw; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_i5; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_position_deg.SSM = A380SecComputer_B.SSM_h4; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_position_deg.Data = A380SecComputer_B.Data_k2; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_status_word.SSM = A380SecComputer_B.SSM_cb3; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_status_word.Data = A380SecComputer_B.Data_as; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_standard_ft.SSM = A380SecComputer_B.SSM_ng; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_standard_ft.Data = A380SecComputer_B.Data_ix; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_corrected_ft.SSM = A380SecComputer_B.SSM_ba; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.altitude_corrected_ft.Data = A380SecComputer_B.Data_gl; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.mach.SSM = A380SecComputer_B.SSM_jw; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.mach.Data = A380SecComputer_B.Data_mc; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_computed_kn.SSM = A380SecComputer_B.SSM_hc; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_computed_kn.Data = A380SecComputer_B.Data_ep; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_true_kn.SSM = A380SecComputer_B.SSM_npr; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.airspeed_true_kn.Data = A380SecComputer_B.Data_pc; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.SSM = A380SecComputer_B.SSM_dx; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.Data = A380SecComputer_B.Data_bu; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.aoa_corrected_deg.SSM = A380SecComputer_B.SSM_fvk; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.aoa_corrected_deg.Data = A380SecComputer_B.Data_bv; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.SSM = A380SecComputer_B.SSM_boy; + A380SecComputer_Y.out.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.Data = A380SecComputer_B.Data_pf; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_standard_ft.SSM = A380SecComputer_B.SSM_jj; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_standard_ft.Data = A380SecComputer_B.Data_jyh; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_corrected_ft.SSM = A380SecComputer_B.SSM_fu; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.altitude_corrected_ft.Data = A380SecComputer_B.Data_nmr; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.mach.SSM = A380SecComputer_B.SSM_ie; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.mach.Data = A380SecComputer_B.Data_i2t; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_computed_kn.SSM = A380SecComputer_B.SSM_kf; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_computed_kn.Data = A380SecComputer_B.Data_ng; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_true_kn.SSM = A380SecComputer_B.SSM_p5l; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.airspeed_true_kn.Data = A380SecComputer_B.Data_h31; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.SSM = A380SecComputer_B.SSM_g3; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.Data = A380SecComputer_B.Data_ew; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.aoa_corrected_deg.SSM = A380SecComputer_B.SSM_b3; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.aoa_corrected_deg.Data = A380SecComputer_B.Data_j1s; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.SSM = A380SecComputer_B.SSM_dxv; + A380SecComputer_Y.out.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.Data = A380SecComputer_B.Data_j5; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.discrete_word_1.SSM = A380SecComputer_B.SSM_mxz; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.discrete_word_1.Data = A380SecComputer_B.Data_cw; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.latitude_deg.SSM = A380SecComputer_B.SSM_kk4; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.latitude_deg.Data = A380SecComputer_B.Data_gqa; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.longitude_deg.SSM = A380SecComputer_B.SSM_cy; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.longitude_deg.Data = A380SecComputer_B.Data_hz; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.ground_speed_kn.SSM = A380SecComputer_B.SSM_ju; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.ground_speed_kn.Data = A380SecComputer_B.Data_fri; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_true_deg.SSM = A380SecComputer_B.SSM_ey; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_true_deg.Data = A380SecComputer_B.Data_cm; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_true_deg.SSM = A380SecComputer_B.SSM_jr; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_true_deg.Data = A380SecComputer_B.Data_czj; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_speed_kn.SSM = A380SecComputer_B.SSM_hs; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_speed_kn.Data = A380SecComputer_B.Data_mb; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_direction_true_deg.SSM = A380SecComputer_B.SSM_mx3; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.wind_direction_true_deg.Data = A380SecComputer_B.Data_gk4; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.SSM = A380SecComputer_B.SSM_er; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.Data = A380SecComputer_B.Data_gbt; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_magnetic_deg.SSM = A380SecComputer_B.SSM_hm; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.heading_magnetic_deg.Data = A380SecComputer_B.Data_p0; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.drift_angle_deg.SSM = A380SecComputer_B.SSM_dm; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.drift_angle_deg.Data = A380SecComputer_B.Data_dn; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_angle_deg.SSM = A380SecComputer_B.SSM_fk; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_angle_deg.Data = A380SecComputer_B.Data_iyw; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_accel_g.SSM = A380SecComputer_B.SSM; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.flight_path_accel_g.Data = A380SecComputer_B.Data; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_angle_deg.SSM = A380SecComputer_B.SSM_k; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_angle_deg.Data = A380SecComputer_B.Data_f; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_angle_deg.SSM = A380SecComputer_B.SSM_kx; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_angle_deg.Data = A380SecComputer_B.Data_fw; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.SSM = A380SecComputer_B.SSM_kxx; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.Data = A380SecComputer_B.Data_fwx; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxt; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.Data = A380SecComputer_B.Data_fwxk; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxta; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.Data = A380SecComputer_B.Data_fwxkf; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_long_accel_g.SSM = A380SecComputer_B.SSM_kxxtac; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_long_accel_g.Data = A380SecComputer_B.Data_fwxkft; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_lat_accel_g.SSM = A380SecComputer_B.SSM_kxxtac0; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_lat_accel_g.Data = A380SecComputer_B.Data_fwxkftc; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_normal_accel_g.SSM = A380SecComputer_B.SSM_kxxtac0z; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.body_normal_accel_g.Data = A380SecComputer_B.Data_fwxkftc3; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxtac0zt; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.Data = A380SecComputer_B.Data_fwxkftc3e; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxtac0ztg; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.Data = A380SecComputer_B.Data_fwxkftc3ep; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.SSM = A380SecComputer_B.SSM_kxxtac0ztgf; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.Data = A380SecComputer_B.Data_fwxkftc3epg; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_alt_ft.SSM = A380SecComputer_B.SSM_kxxtac0ztgf2; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_alt_ft.Data = A380SecComputer_B.Data_fwxkftc3epgt; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_kxxtac0ztgf2u; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.Data = A380SecComputer_B.Data_fwxkftc3epgtd; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_kxxtac0ztgf2ux; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.Data = A380SecComputer_B.Data_fwxkftc3epgtdx; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.vertical_accel_g.SSM = A380SecComputer_B.SSM_kxxtac0ztgf2uxn; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.vertical_accel_g.Data = A380SecComputer_B.Data_fwxkftc3epgtdxc; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.SSM = A380SecComputer_B.SSM_ky; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.Data = A380SecComputer_B.Data_h; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.north_south_velocity_kn.SSM = A380SecComputer_B.SSM_d; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.north_south_velocity_kn.Data = A380SecComputer_B.Data_e; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.east_west_velocity_kn.SSM = A380SecComputer_B.SSM_h; + A380SecComputer_Y.out.data.bus_inputs.ir_1_bus.east_west_velocity_kn.Data = A380SecComputer_B.Data_j; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.discrete_word_1.SSM = A380SecComputer_B.SSM_kb; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.discrete_word_1.Data = A380SecComputer_B.Data_d; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.latitude_deg.SSM = A380SecComputer_B.SSM_p; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.latitude_deg.Data = A380SecComputer_B.Data_p; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.longitude_deg.SSM = A380SecComputer_B.SSM_di; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.longitude_deg.Data = A380SecComputer_B.Data_i; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.ground_speed_kn.SSM = A380SecComputer_B.SSM_j; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.ground_speed_kn.Data = A380SecComputer_B.Data_g; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_true_deg.SSM = A380SecComputer_B.SSM_i; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_true_deg.Data = A380SecComputer_B.Data_a; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_true_deg.SSM = A380SecComputer_B.SSM_g; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_true_deg.Data = A380SecComputer_B.Data_eb; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_speed_kn.SSM = A380SecComputer_B.SSM_db; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_speed_kn.Data = A380SecComputer_B.Data_jo; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_direction_true_deg.SSM = A380SecComputer_B.SSM_n; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.wind_direction_true_deg.Data = A380SecComputer_B.Data_ex; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.SSM = A380SecComputer_B.SSM_a; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.Data = A380SecComputer_B.Data_fd; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_magnetic_deg.SSM = A380SecComputer_B.SSM_ir; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.heading_magnetic_deg.Data = A380SecComputer_B.Data_ja; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.drift_angle_deg.SSM = A380SecComputer_B.SSM_hu; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.drift_angle_deg.Data = A380SecComputer_B.Data_k; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_angle_deg.SSM = A380SecComputer_B.SSM_e; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_angle_deg.Data = A380SecComputer_B.Data_joy; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_accel_g.SSM = A380SecComputer_B.SSM_gr; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.flight_path_accel_g.Data = A380SecComputer_B.Data_h3; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_angle_deg.SSM = A380SecComputer_B.SSM_ev; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_angle_deg.Data = A380SecComputer_B.Data_a0; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_angle_deg.SSM = A380SecComputer_B.SSM_l; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_angle_deg.Data = A380SecComputer_B.Data_b; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.SSM = A380SecComputer_B.SSM_ei; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.Data = A380SecComputer_B.Data_eq; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.SSM = A380SecComputer_B.SSM_an; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.Data = A380SecComputer_B.Data_iz; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.SSM = A380SecComputer_B.SSM_c; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.Data = A380SecComputer_B.Data_j2; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_long_accel_g.SSM = A380SecComputer_B.SSM_cb; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_long_accel_g.Data = A380SecComputer_B.Data_o; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_lat_accel_g.SSM = A380SecComputer_B.SSM_lb; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_lat_accel_g.Data = A380SecComputer_B.Data_m; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_normal_accel_g.SSM = A380SecComputer_B.SSM_ia; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.body_normal_accel_g.Data = A380SecComputer_B.Data_oq; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.SSM = A380SecComputer_B.SSM_kyz; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.Data = A380SecComputer_B.Data_fo; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.SSM = A380SecComputer_B.SSM_as; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.Data = A380SecComputer_B.Data_p1; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.SSM = A380SecComputer_B.SSM_is; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.Data = A380SecComputer_B.Data_p1y; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_alt_ft.SSM = A380SecComputer_B.SSM_ca; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_alt_ft.Data = A380SecComputer_B.Data_l; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_o; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.Data = A380SecComputer_B.Data_kp; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.SSM = A380SecComputer_B.SSM_ak; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.Data = A380SecComputer_B.Data_k0; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.vertical_accel_g.SSM = A380SecComputer_B.SSM_cbj; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.vertical_accel_g.Data = A380SecComputer_B.Data_pi; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.SSM = A380SecComputer_B.SSM_cu; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.Data = A380SecComputer_B.Data_dm; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.north_south_velocity_kn.SSM = A380SecComputer_B.SSM_nn; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.north_south_velocity_kn.Data = A380SecComputer_B.Data_f5; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.east_west_velocity_kn.SSM = A380SecComputer_B.SSM_b; + A380SecComputer_Y.out.data.bus_inputs.ir_2_bus.east_west_velocity_kn.Data = A380SecComputer_B.Data_js; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.SSM = A380SecComputer_B.SSM_m; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.Data = A380SecComputer_B.Data_ee; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.SSM = A380SecComputer_B.SSM_f; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.Data = A380SecComputer_B.Data_ig; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.SSM = A380SecComputer_B.SSM_bp; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.Data = A380SecComputer_B.Data_mk; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.SSM = A380SecComputer_B.SSM_hb; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.Data = A380SecComputer_B.Data_pu; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.SSM = A380SecComputer_B.SSM_gz; + A380SecComputer_Y.out.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.Data = A380SecComputer_B.Data_ly; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.SSM = A380SecComputer_B.SSM_pv; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.Data = A380SecComputer_B.Data_jq; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.SSM = A380SecComputer_B.SSM_mf; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.Data = A380SecComputer_B.Data_o5; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.SSM = A380SecComputer_B.SSM_m0; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.Data = A380SecComputer_B.Data_lyw; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.SSM = A380SecComputer_B.SSM_kd; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.Data = A380SecComputer_B.Data_gq; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.SSM = A380SecComputer_B.SSM_pu; + A380SecComputer_Y.out.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.Data = A380SecComputer_B.Data_n; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_nv; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_bq; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_d5; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_dmn; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_eo; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_jn; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_nd; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_c; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_bq; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_lx; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_hi; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_jb; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_mm; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.Data = A380SecComputer_B.Data_fn; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_kz; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.Data = A380SecComputer_B.Data_od; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_il; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.Data = A380SecComputer_B.Data_ez; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_i2; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.Data = A380SecComputer_B.Data_pw; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_ah; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.Data = A380SecComputer_B.Data_m2; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_en; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.Data = A380SecComputer_B.Data_ek; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_dq; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.Data = A380SecComputer_B.Data_iy; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_px; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.Data = A380SecComputer_B.Data_lk; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_lbo; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.Data = A380SecComputer_B.Data_ca; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_p5; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.Data = A380SecComputer_B.Data_pix; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_mk; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.Data = A380SecComputer_B.Data_di; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_mu; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.Data = A380SecComputer_B.Data_lz; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_cbl; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.Data = A380SecComputer_B.Data_lu; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_gzd; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.Data = A380SecComputer_B.Data_dc; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_mo; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.Data = A380SecComputer_B.Data_gc; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_me; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.Data = A380SecComputer_B.Data_am; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_mj; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_mo; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_a5; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_dg; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_bt; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_e1; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_om; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_fp; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_command_deg.SSM = A380SecComputer_B.SSM_ar; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_command_deg.Data = A380SecComputer_B.Data_ns; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.SSM = A380SecComputer_B.SSM_ce; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.Data = A380SecComputer_B.Data_m3; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.SSM = A380SecComputer_B.SSM_ed; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.Data = A380SecComputer_B.Data_oj; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_jh; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_jy; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_je; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_j1; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_jt; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_fc; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_cui; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_of; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.SSM = A380SecComputer_B.SSM_mq; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.Data = A380SecComputer_B.Data_lg; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.aileron_status_word.SSM = A380SecComputer_B.SSM_ni; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.aileron_status_word.Data = A380SecComputer_B.Data_n4; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_df; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.Data = A380SecComputer_B.Data_ot; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_oe; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.Data = A380SecComputer_B.Data_gv; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_ha; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.Data = A380SecComputer_B.Data_ou; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_op; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.Data = A380SecComputer_B.Data_dh; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.spoiler_status_word.SSM = A380SecComputer_B.SSM_a50; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.spoiler_status_word.Data = A380SecComputer_B.Data_ph; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.SSM = A380SecComputer_B.SSM_og; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.Data = A380SecComputer_B.Data_gs; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.SSM = A380SecComputer_B.SSM_a4; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.Data = A380SecComputer_B.Data_fd4; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_status_word.SSM = A380SecComputer_B.SSM_bv; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_status_word.Data = A380SecComputer_B.Data_hm; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_1_position_deg.SSM = A380SecComputer_B.SSM_bo; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_1_position_deg.Data = A380SecComputer_B.Data_i2; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_2_position_deg.SSM = A380SecComputer_B.SSM_d1; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_2_position_deg.Data = A380SecComputer_B.Data_og; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_hy; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_fv; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_position_deg.SSM = A380SecComputer_B.SSM_gi; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.ths_position_deg.Data = A380SecComputer_B.Data_oc; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_status_word.SSM = A380SecComputer_B.SSM_pp; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_status_word.Data = A380SecComputer_B.Data_kq; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_1_position_deg.SSM = A380SecComputer_B.SSM_iab; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_1_position_deg.Data = A380SecComputer_B.Data_ne; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_2_position_deg.SSM = A380SecComputer_B.SSM_jtv; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.rudder_2_position_deg.Data = A380SecComputer_B.Data_it; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.fctl_law_status_word.SSM = A380SecComputer_B.SSM_fy; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_ch; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.discrete_status_word_1.SSM = A380SecComputer_B.SSM_d4; + A380SecComputer_Y.out.data.bus_inputs.prim_1_bus.discrete_status_word_1.Data = A380SecComputer_B.Data_bb; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_ars; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_ol; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_din; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_hw; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_m3; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_hs; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_np; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_fj; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_ax; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_ky; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_cl; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_h5; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_es; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.Data = A380SecComputer_B.Data_ku; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_gi1; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.Data = A380SecComputer_B.Data_jp; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_jz; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.Data = A380SecComputer_B.Data_nu; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_kt; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.Data = A380SecComputer_B.Data_br; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_ds; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.Data = A380SecComputer_B.Data_ae; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_eg; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.Data = A380SecComputer_B.Data_pe; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_a0; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.Data = A380SecComputer_B.Data_fy; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_cv; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.Data = A380SecComputer_B.Data_na; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_ea; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.Data = A380SecComputer_B.Data_my; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_p4; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.Data = A380SecComputer_B.Data_i4; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_m2; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.Data = A380SecComputer_B.Data_cx; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_bt0; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.Data = A380SecComputer_B.Data_nz; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_nr; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.Data = A380SecComputer_B.Data_id; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_fr; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.Data = A380SecComputer_B.Data_o2; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_cc; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.Data = A380SecComputer_B.Data_gqq; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_lm; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.Data = A380SecComputer_B.Data_md; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_mkm; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_cz; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_jhd; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_pm; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_av; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_bj; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_ira; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_ox; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_command_deg.SSM = A380SecComputer_B.SSM_ge; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_command_deg.Data = A380SecComputer_B.Data_pe5; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.SSM = A380SecComputer_B.SSM_lv; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.Data = A380SecComputer_B.Data_jj; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.SSM = A380SecComputer_B.SSM_cg; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.Data = A380SecComputer_B.Data_p5; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_be; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_ekl; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_axb; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_nd; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_nz; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_n2; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_cx; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_dl; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.SSM = A380SecComputer_B.SSM_gh; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.Data = A380SecComputer_B.Data_gs2; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.aileron_status_word.SSM = A380SecComputer_B.SSM_ks; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.aileron_status_word.Data = A380SecComputer_B.Data_h4; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_pw; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.Data = A380SecComputer_B.Data_e3; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_fh; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.Data = A380SecComputer_B.Data_f5h; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_gzn; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.Data = A380SecComputer_B.Data_an; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_oo; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.Data = A380SecComputer_B.Data_i4o; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.spoiler_status_word.SSM = A380SecComputer_B.SSM_evh; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.spoiler_status_word.Data = A380SecComputer_B.Data_af; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.SSM = A380SecComputer_B.SSM_cn; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.Data = A380SecComputer_B.Data_bm; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.SSM = A380SecComputer_B.SSM_co; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.Data = A380SecComputer_B.Data_dk; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_status_word.SSM = A380SecComputer_B.SSM_pe; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_status_word.Data = A380SecComputer_B.Data_nv; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_1_position_deg.SSM = A380SecComputer_B.SSM_cgz; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_1_position_deg.Data = A380SecComputer_B.Data_jpf; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_2_position_deg.SSM = A380SecComputer_B.SSM_fw; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_2_position_deg.Data = A380SecComputer_B.Data_i5; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_h4; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_k2; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_position_deg.SSM = A380SecComputer_B.SSM_cb3; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.ths_position_deg.Data = A380SecComputer_B.Data_as; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_status_word.SSM = A380SecComputer_B.SSM_pj; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_status_word.Data = A380SecComputer_B.Data_gk; A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_1_position_deg.SSM = A380SecComputer_B.SSM_dv; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_1_position_deg.Data = A380SecComputer_B.Data_gk; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_1_position_deg.Data = A380SecComputer_B.Data_jl; A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_2_position_deg.SSM = A380SecComputer_B.SSM_i4; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_2_position_deg.Data = A380SecComputer_B.Data_jl; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.rudder_2_position_deg.Data = A380SecComputer_B.Data_e32; A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.fctl_law_status_word.SSM = A380SecComputer_B.SSM_fm; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_e32; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_ih; A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.discrete_status_word_1.SSM = A380SecComputer_B.SSM_e5; - A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.discrete_status_word_1.Data = A380SecComputer_B.Data_ih; + A380SecComputer_Y.out.data.bus_inputs.prim_2_bus.discrete_status_word_1.Data = A380SecComputer_B.Data_du; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_bf; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_du; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_nx; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_inboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_fd; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_inboard_aileron_command_deg.Data = A380SecComputer_B.Data_n0; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_midboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_fv; @@ -3090,7 +3072,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_midboard_aileron_command_deg.Data = A380SecComputer_B.Data_om; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_j5; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_nr; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_ng; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.SSM = A380SecComputer_B.SSM_cs; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.Data = A380SecComputer_B.Data_p3; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_1_command_deg.SSM = A380SecComputer_B.SSM_ls; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_1_command_deg.Data = A380SecComputer_B.Data_nb; @@ -3101,7 +3083,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_2_command_deg.SSM = A380SecComputer_B.SSM_p2; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_2_command_deg.Data = A380SecComputer_B.Data_gu; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_bo0; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.Data = A380SecComputer_B.Data_ix; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.Data = A380SecComputer_B.Data_do; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_3_command_deg.SSM = A380SecComputer_B.SSM_bc; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_3_command_deg.Data = A380SecComputer_B.Data_hu; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_4_command_deg.SSM = A380SecComputer_B.SSM_h0; @@ -3110,7 +3092,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_4_command_deg.Data = A380SecComputer_B.Data_i2y; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_mqp; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_5_command_deg.Data = A380SecComputer_B.Data_pg; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_ba; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.SSM = A380SecComputer_B.SSM_in; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.Data = A380SecComputer_B.Data_ni; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_6_command_deg.SSM = A380SecComputer_B.SSM_ff; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_6_command_deg.Data = A380SecComputer_B.Data_fr; @@ -3121,7 +3103,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_7_command_deg.SSM = A380SecComputer_B.SSM_ja; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_7_command_deg.Data = A380SecComputer_B.Data_jh; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_js; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.Data = A380SecComputer_B.Data_gl; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.Data = A380SecComputer_B.Data_gn; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_8_command_deg.SSM = A380SecComputer_B.SSM_is3; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_8_command_deg.Data = A380SecComputer_B.Data_myb; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_inboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_ag; @@ -3130,7 +3112,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_inboard_elevator_command_deg.Data = A380SecComputer_B.Data_o5o; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_ph; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_l5; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_jw; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.SSM = A380SecComputer_B.SSM_jy; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.Data = A380SecComputer_B.Data_dc2; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.ths_command_deg.SSM = A380SecComputer_B.SSM_j1; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.ths_command_deg.Data = A380SecComputer_B.Data_gr; @@ -3141,7 +3123,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_b4; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_et; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_gb; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_mc; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_k3; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_oh; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_f2; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_mm5; @@ -3150,7 +3132,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.rudder_pedal_position_deg.Data = A380SecComputer_B.Data_ed; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.aileron_status_word.SSM = A380SecComputer_B.SSM_c2; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.aileron_status_word.Data = A380SecComputer_B.Data_o2j; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_hc; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_ktr; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_aileron_1_position_deg.Data = A380SecComputer_B.Data_i43; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_gl; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_aileron_2_position_deg.Data = A380SecComputer_B.Data_ic; @@ -3161,7 +3143,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.spoiler_status_word.SSM = A380SecComputer_B.SSM_go; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.spoiler_status_word.Data = A380SecComputer_B.Data_cu; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_position_deg.SSM = A380SecComputer_B.SSM_e5c; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_position_deg.Data = A380SecComputer_B.Data_ep; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.left_spoiler_position_deg.Data = A380SecComputer_B.Data_d3; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_position_deg.SSM = A380SecComputer_B.SSM_dk; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.right_spoiler_position_deg.Data = A380SecComputer_B.Data_bt; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.elevator_status_word.SSM = A380SecComputer_B.SSM_evc; @@ -3170,7 +3152,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.elevator_1_position_deg.Data = A380SecComputer_B.Data_jl3; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.elevator_2_position_deg.SSM = A380SecComputer_B.SSM_af; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.elevator_2_position_deg.Data = A380SecComputer_B.Data_nm; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_npr; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_ew; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_ia; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.ths_position_deg.SSM = A380SecComputer_B.SSM_lt; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.ths_position_deg.Data = A380SecComputer_B.Data_j0; @@ -3181,7 +3163,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.rudder_2_position_deg.SSM = A380SecComputer_B.SSM_co2; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.rudder_2_position_deg.Data = A380SecComputer_B.Data_ct; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.fctl_law_status_word.SSM = A380SecComputer_B.SSM_ny; - A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_pc; + A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_nzt; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.discrete_status_word_1.SSM = A380SecComputer_B.SSM_l4; A380SecComputer_Y.out.data.bus_inputs.prim_3_bus.discrete_status_word_1.Data = A380SecComputer_B.Data_c0; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_sidestick_pitch_command_deg.SSM = A380SecComputer_B.SSM_nm; @@ -3190,7 +3172,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_sidestick_pitch_command_deg.Data = A380SecComputer_B.Data_lm; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_dl; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_fz; - A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_dx; + A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_a5h; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_oz; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.rudder_pedal_position_deg.SSM = A380SecComputer_B.SSM_fl; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.rudder_pedal_position_deg.Data = A380SecComputer_B.Data_gf; @@ -3201,7 +3183,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_bm; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_aileron_2_position_deg.Data = A380SecComputer_B.Data_fk; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_nl; - A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_aileron_1_position_deg.Data = A380SecComputer_B.Data_bu; + A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_aileron_1_position_deg.Data = A380SecComputer_B.Data_o23; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_grm; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_aileron_2_position_deg.Data = A380SecComputer_B.Data_g3; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.spoiler_status_word.SSM = A380SecComputer_B.SSM_gzm; @@ -3210,7 +3192,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_spoiler_1_position_deg.Data = A380SecComputer_B.Data_pwf; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_spoiler_1_position_deg.SSM = A380SecComputer_B.SSM_aa; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_spoiler_1_position_deg.Data = A380SecComputer_B.Data_gvk; - A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.SSM = A380SecComputer_B.SSM_fvk; + A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.SSM = A380SecComputer_B.SSM_lw; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.Data = A380SecComputer_B.Data_ln; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_spoiler_2_position_deg.SSM = A380SecComputer_B.SSM_fa; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.right_spoiler_2_position_deg.Data = A380SecComputer_B.Data_ka; @@ -3221,7 +3203,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.elevator_2_position_deg.SSM = A380SecComputer_B.SSM_a1; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.elevator_2_position_deg.Data = A380SecComputer_B.Data_fki; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_p1; - A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_bv; + A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_m21; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.ths_position_deg.SSM = A380SecComputer_B.SSM_cn2; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.ths_position_deg.Data = A380SecComputer_B.Data_nbg; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.rudder_status_word.SSM = A380SecComputer_B.SSM_an3; @@ -3230,7 +3212,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.rudder_1_position_deg.Data = A380SecComputer_B.Data_ki; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.rudder_2_position_deg.SSM = A380SecComputer_B.SSM_dp; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.rudder_2_position_deg.Data = A380SecComputer_B.Data_p5p; - A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.fctl_law_status_word.SSM = A380SecComputer_B.SSM_boy; + A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.fctl_law_status_word.SSM = A380SecComputer_B.SSM_lg; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_nry; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.misc_data_status_word.SSM = A380SecComputer_B.SSM_cm; A380SecComputer_Y.out.data.bus_inputs.sec_x_bus.misc_data_status_word.Data = A380SecComputer_B.Data_mh; @@ -3241,7 +3223,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_b42; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_j04; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.SSM = A380SecComputer_B.SSM_anz; - A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_pf; + A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.Data = A380SecComputer_B.Data_pl; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.rudder_pedal_position_deg.SSM = A380SecComputer_B.SSM_d2; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.rudder_pedal_position_deg.Data = A380SecComputer_B.Data_gb; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.aileron_status_word.SSM = A380SecComputer_B.SSM_gov; @@ -3250,7 +3232,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_aileron_1_position_deg.Data = A380SecComputer_B.Data_ai; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_pe3; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_aileron_2_position_deg.Data = A380SecComputer_B.Data_gfr; - A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_jj; + A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_aileron_1_position_deg.SSM = A380SecComputer_B.SSM_jx; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_aileron_1_position_deg.Data = A380SecComputer_B.Data_czp; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_aileron_2_position_deg.SSM = A380SecComputer_B.SSM_npl; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_aileron_2_position_deg.Data = A380SecComputer_B.Data_fm; @@ -3261,7 +3243,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_spoiler_1_position_deg.SSM = A380SecComputer_B.SSM_fhm; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_spoiler_1_position_deg.Data = A380SecComputer_B.Data_j4; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.SSM = A380SecComputer_B.SSM_ltj; - A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.Data = A380SecComputer_B.Data_jyh; + A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.Data = A380SecComputer_B.Data_e4; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_spoiler_2_position_deg.SSM = A380SecComputer_B.SSM_hn; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.right_spoiler_2_position_deg.Data = A380SecComputer_B.Data_ghs; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.elevator_status_word.SSM = A380SecComputer_B.SSM_h3; @@ -3270,7 +3252,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.elevator_1_position_deg.Data = A380SecComputer_B.Data_lzt; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.elevator_2_position_deg.SSM = A380SecComputer_B.SSM_p0; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.elevator_2_position_deg.Data = A380SecComputer_B.Data_kn; - A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_fu; + A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.elevator_3_position_deg.SSM = A380SecComputer_B.SSM_hr; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.elevator_3_position_deg.Data = A380SecComputer_B.Data_nab; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.ths_position_deg.SSM = A380SecComputer_B.SSM_bi; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.ths_position_deg.Data = A380SecComputer_B.Data_lgf; @@ -3281,7 +3263,7 @@ void A380SecComputer::step() A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.rudder_2_position_deg.SSM = A380SecComputer_B.SSM_la; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.rudder_2_position_deg.Data = A380SecComputer_B.Data_b1; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.fctl_law_status_word.SSM = A380SecComputer_B.SSM_l1; - A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_nmr; + A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.fctl_law_status_word.Data = A380SecComputer_B.Data_ea; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.misc_data_status_word.SSM = A380SecComputer_B.SSM_dy; A380SecComputer_Y.out.data.bus_inputs.sec_y_bus.misc_data_status_word.Data = A380SecComputer_B.Data_nib; A380SecComputer_Y.out.data.bus_inputs.irdc_5_a_bus = A380SecComputer_B.irdc_5_a_bus; @@ -3320,6 +3302,8 @@ void A380SecComputer::initialize() A380SecComputer_B.rudder_trim_reset_pressed = A380SecComputer_P.out_Y0.data.discrete_inputs.rudder_trim_reset_pressed; A380SecComputer_B.pitch_trim_up_pressed = A380SecComputer_P.out_Y0.data.discrete_inputs.pitch_trim_up_pressed; A380SecComputer_B.pitch_trim_down_pressed = A380SecComputer_P.out_Y0.data.discrete_inputs.pitch_trim_down_pressed; + A380SecComputer_B.rat_deployed = A380SecComputer_P.out_Y0.data.discrete_inputs.rat_deployed; + A380SecComputer_B.rat_contactor_closed = A380SecComputer_P.out_Y0.data.discrete_inputs.rat_contactor_closed; A380SecComputer_B.green_low_pressure = A380SecComputer_P.out_Y0.data.discrete_inputs.green_low_pressure; A380SecComputer_B.yellow_low_pressure = A380SecComputer_P.out_Y0.data.discrete_inputs.yellow_low_pressure; A380SecComputer_B.capt_pitch_stick_pos = A380SecComputer_P.out_Y0.data.analog_inputs.capt_pitch_stick_pos; @@ -3342,408 +3326,405 @@ void A380SecComputer::initialize() A380SecComputer_B.rudder_2_pos_deg = A380SecComputer_P.out_Y0.data.analog_inputs.rudder_2_pos_deg; A380SecComputer_B.rudder_pedal_pos_deg = A380SecComputer_P.out_Y0.data.analog_inputs.rudder_pedal_pos_deg; A380SecComputer_B.rudder_trim_pos_deg = A380SecComputer_P.out_Y0.data.analog_inputs.rudder_trim_pos_deg; - A380SecComputer_B.SSM_pj = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_standard_ft.SSM; - A380SecComputer_B.Data_nx = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_standard_ft.Data; - A380SecComputer_B.SSM_cs = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_corrected_ft.SSM; - A380SecComputer_B.Data_do = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_corrected_ft.Data; - A380SecComputer_B.SSM_in = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.mach.SSM; - A380SecComputer_B.Data_gn = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.mach.Data; - A380SecComputer_B.SSM_jy = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_computed_kn.SSM; - A380SecComputer_B.Data_k3 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_computed_kn.Data; - A380SecComputer_B.SSM_ktr = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_true_kn.SSM; - A380SecComputer_B.Data_d3 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_true_kn.Data; - A380SecComputer_B.SSM_ew = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.SSM; - A380SecComputer_B.Data_nzt = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.Data; - A380SecComputer_B.SSM_a5h = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.aoa_corrected_deg.SSM; - A380SecComputer_B.Data_o23 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.aoa_corrected_deg.Data; - A380SecComputer_B.SSM_lw = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.SSM; - A380SecComputer_B.Data_m21 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.Data; - A380SecComputer_B.SSM_lg = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_standard_ft.SSM; - A380SecComputer_B.Data_pl = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_standard_ft.Data; - A380SecComputer_B.SSM_jx = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_corrected_ft.SSM; - A380SecComputer_B.Data_e4 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_corrected_ft.Data; - A380SecComputer_B.SSM_hr = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.mach.SSM; - A380SecComputer_B.Data_ea = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.mach.Data; - A380SecComputer_B.SSM_ie = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_computed_kn.SSM; - A380SecComputer_B.Data_i2t = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_computed_kn.Data; - A380SecComputer_B.SSM_kf = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_true_kn.SSM; - A380SecComputer_B.Data_ng = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_true_kn.Data; - A380SecComputer_B.SSM_p5l = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.SSM; - A380SecComputer_B.Data_h31 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.Data; - A380SecComputer_B.SSM_g3 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.aoa_corrected_deg.SSM; - A380SecComputer_B.Data_ew = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.aoa_corrected_deg.Data; - A380SecComputer_B.SSM_b3 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.SSM; - A380SecComputer_B.Data_j1s = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.Data; - A380SecComputer_B.SSM_dxv = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.discrete_word_1.SSM; - A380SecComputer_B.Data_j5 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.discrete_word_1.Data; - A380SecComputer_B.SSM_mxz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.latitude_deg.SSM; - A380SecComputer_B.Data_cw = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.latitude_deg.Data; - A380SecComputer_B.SSM_kk4 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.longitude_deg.SSM; - A380SecComputer_B.Data_gqa = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.longitude_deg.Data; - A380SecComputer_B.SSM_cy = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.ground_speed_kn.SSM; - A380SecComputer_B.Data_hz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.ground_speed_kn.Data; - A380SecComputer_B.SSM_ju = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_true_deg.SSM; - A380SecComputer_B.Data_fri = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_true_deg.Data; - A380SecComputer_B.SSM_ey = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_true_deg.SSM; - A380SecComputer_B.Data_cm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_true_deg.Data; - A380SecComputer_B.SSM_jr = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_speed_kn.SSM; - A380SecComputer_B.Data_czj = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_speed_kn.Data; - A380SecComputer_B.SSM_hs = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_direction_true_deg.SSM; - A380SecComputer_B.Data_mb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_direction_true_deg.Data; - A380SecComputer_B.SSM_mx3 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.SSM; - A380SecComputer_B.Data_gk4 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.Data; - A380SecComputer_B.SSM_er = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_magnetic_deg.SSM; - A380SecComputer_B.Data_gbt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_magnetic_deg.Data; - A380SecComputer_B.SSM_hm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.drift_angle_deg.SSM; - A380SecComputer_B.Data_p0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.drift_angle_deg.Data; - A380SecComputer_B.SSM_dm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_angle_deg.SSM; - A380SecComputer_B.Data_dn = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_angle_deg.Data; - A380SecComputer_B.SSM_fk = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_accel_g.SSM; - A380SecComputer_B.Data_iyw = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_accel_g.Data; - A380SecComputer_B.SSM = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_angle_deg.SSM; - A380SecComputer_B.Data = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_angle_deg.Data; - A380SecComputer_B.SSM_k = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_angle_deg.SSM; - A380SecComputer_B.Data_f = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_angle_deg.Data; - A380SecComputer_B.SSM_kx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.SSM; - A380SecComputer_B.Data_fw = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.Data; - A380SecComputer_B.SSM_kxx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.SSM; - A380SecComputer_B.Data_fwx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxk = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxta = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_long_accel_g.SSM; - A380SecComputer_B.Data_fwxkf = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_long_accel_g.Data; - A380SecComputer_B.SSM_kxxtac = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_lat_accel_g.SSM; - A380SecComputer_B.Data_fwxkft = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_lat_accel_g.Data; - A380SecComputer_B.SSM_kxxtac0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_normal_accel_g.SSM; - A380SecComputer_B.Data_fwxkftc = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_normal_accel_g.Data; - A380SecComputer_B.SSM_kxxtac0z = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxkftc3 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxtac0zt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxkftc3e = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxtac0ztg = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.SSM; - A380SecComputer_B.Data_fwxkftc3ep = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.Data; - A380SecComputer_B.SSM_kxxtac0ztgf = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_alt_ft.SSM; - A380SecComputer_B.Data_fwxkftc3epg = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_alt_ft.Data; - A380SecComputer_B.SSM_kxxtac0ztgf2 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_fwxkftc3epgt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.Data; - A380SecComputer_B.SSM_kxxtac0ztgf2u = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_fwxkftc3epgtd = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.Data; - A380SecComputer_B.SSM_kxxtac0ztgf2ux = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.vertical_accel_g.SSM; - A380SecComputer_B.Data_fwxkftc3epgtdx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.vertical_accel_g.Data; - A380SecComputer_B.SSM_kxxtac0ztgf2uxn = - A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.SSM; - A380SecComputer_B.Data_fwxkftc3epgtdxc = - A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.Data; - A380SecComputer_B.SSM_ky = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.north_south_velocity_kn.SSM; - A380SecComputer_B.Data_h = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.north_south_velocity_kn.Data; - A380SecComputer_B.SSM_d = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.east_west_velocity_kn.SSM; - A380SecComputer_B.Data_e = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.east_west_velocity_kn.Data; - A380SecComputer_B.SSM_h = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.discrete_word_1.SSM; - A380SecComputer_B.Data_j = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.discrete_word_1.Data; - A380SecComputer_B.SSM_kb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.latitude_deg.SSM; - A380SecComputer_B.Data_d = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.latitude_deg.Data; - A380SecComputer_B.SSM_p = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.longitude_deg.SSM; - A380SecComputer_B.Data_p = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.longitude_deg.Data; - A380SecComputer_B.SSM_di = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.ground_speed_kn.SSM; - A380SecComputer_B.Data_i = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.ground_speed_kn.Data; - A380SecComputer_B.SSM_j = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_true_deg.SSM; - A380SecComputer_B.Data_g = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_true_deg.Data; - A380SecComputer_B.SSM_i = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_true_deg.SSM; - A380SecComputer_B.Data_a = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_true_deg.Data; - A380SecComputer_B.SSM_g = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_speed_kn.SSM; - A380SecComputer_B.Data_eb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_speed_kn.Data; - A380SecComputer_B.SSM_db = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_direction_true_deg.SSM; - A380SecComputer_B.Data_jo = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_direction_true_deg.Data; - A380SecComputer_B.SSM_n = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.SSM; - A380SecComputer_B.Data_ex = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.Data; - A380SecComputer_B.SSM_a = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_magnetic_deg.SSM; - A380SecComputer_B.Data_fd = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_magnetic_deg.Data; - A380SecComputer_B.SSM_ir = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.drift_angle_deg.SSM; - A380SecComputer_B.Data_ja = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.drift_angle_deg.Data; - A380SecComputer_B.SSM_hu = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_angle_deg.SSM; - A380SecComputer_B.Data_k = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_angle_deg.Data; - A380SecComputer_B.SSM_e = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_accel_g.SSM; - A380SecComputer_B.Data_joy = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_accel_g.Data; - A380SecComputer_B.SSM_gr = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_angle_deg.SSM; - A380SecComputer_B.Data_h3 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_angle_deg.Data; - A380SecComputer_B.SSM_ev = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_angle_deg.SSM; - A380SecComputer_B.Data_a0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_angle_deg.Data; - A380SecComputer_B.SSM_l = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.SSM; - A380SecComputer_B.Data_b = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.Data; - A380SecComputer_B.SSM_ei = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.SSM; - A380SecComputer_B.Data_eq = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.Data; - A380SecComputer_B.SSM_an = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.SSM; - A380SecComputer_B.Data_iz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.Data; - A380SecComputer_B.SSM_c = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_long_accel_g.SSM; - A380SecComputer_B.Data_j2 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_long_accel_g.Data; - A380SecComputer_B.SSM_cb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_lat_accel_g.SSM; - A380SecComputer_B.Data_o = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_lat_accel_g.Data; - A380SecComputer_B.SSM_lb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_normal_accel_g.SSM; - A380SecComputer_B.Data_m = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_normal_accel_g.Data; - A380SecComputer_B.SSM_ia = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.SSM; - A380SecComputer_B.Data_oq = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.Data; - A380SecComputer_B.SSM_kyz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.SSM; - A380SecComputer_B.Data_fo = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.Data; - A380SecComputer_B.SSM_as = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.SSM; - A380SecComputer_B.Data_p1 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.Data; - A380SecComputer_B.SSM_is = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_alt_ft.SSM; - A380SecComputer_B.Data_p1y = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_alt_ft.Data; - A380SecComputer_B.SSM_ca = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_l = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.Data; - A380SecComputer_B.SSM_o = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.SSM; - A380SecComputer_B.Data_kp = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.Data; - A380SecComputer_B.SSM_ak = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.vertical_accel_g.SSM; - A380SecComputer_B.Data_k0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.vertical_accel_g.Data; - A380SecComputer_B.SSM_cbj = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.SSM; - A380SecComputer_B.Data_pi = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.Data; - A380SecComputer_B.SSM_cu = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.north_south_velocity_kn.SSM; - A380SecComputer_B.Data_dm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.north_south_velocity_kn.Data; - A380SecComputer_B.SSM_nn = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.east_west_velocity_kn.SSM; - A380SecComputer_B.Data_f5 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.east_west_velocity_kn.Data; - A380SecComputer_B.SSM_b = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.SSM; - A380SecComputer_B.Data_js = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.Data; - A380SecComputer_B.SSM_m = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.SSM; - A380SecComputer_B.Data_ee = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.Data; - A380SecComputer_B.SSM_f = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.SSM; - A380SecComputer_B.Data_ig = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.Data; - A380SecComputer_B.SSM_bp = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.SSM; - A380SecComputer_B.Data_mk = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.Data; - A380SecComputer_B.SSM_hb = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.SSM; - A380SecComputer_B.Data_pu = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.Data; - A380SecComputer_B.SSM_gz = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.SSM; - A380SecComputer_B.Data_ly = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.Data; - A380SecComputer_B.SSM_pv = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.SSM; - A380SecComputer_B.Data_jq = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.Data; - A380SecComputer_B.SSM_mf = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.SSM; - A380SecComputer_B.Data_o5 = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.Data; - A380SecComputer_B.SSM_m0 = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.SSM; - A380SecComputer_B.Data_lyw = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.Data; - A380SecComputer_B.SSM_kd = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.SSM; - A380SecComputer_B.Data_gq = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.Data; + A380SecComputer_B.SSM_ng = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_standard_ft.SSM; + A380SecComputer_B.Data_ix = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_standard_ft.Data; + A380SecComputer_B.SSM_ba = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_corrected_ft.SSM; + A380SecComputer_B.Data_gl = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.altitude_corrected_ft.Data; + A380SecComputer_B.SSM_jw = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.mach.SSM; + A380SecComputer_B.Data_mc = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.mach.Data; + A380SecComputer_B.SSM_hc = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_computed_kn.SSM; + A380SecComputer_B.Data_ep = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_computed_kn.Data; + A380SecComputer_B.SSM_npr = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_true_kn.SSM; + A380SecComputer_B.Data_pc = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.airspeed_true_kn.Data; + A380SecComputer_B.SSM_dx = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.SSM; + A380SecComputer_B.Data_bu = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.vertical_speed_ft_min.Data; + A380SecComputer_B.SSM_fvk = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.aoa_corrected_deg.SSM; + A380SecComputer_B.Data_bv = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.aoa_corrected_deg.Data; + A380SecComputer_B.SSM_boy = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.SSM; + A380SecComputer_B.Data_pf = A380SecComputer_P.out_Y0.data.bus_inputs.adr_1_bus.corrected_average_static_pressure.Data; + A380SecComputer_B.SSM_jj = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_standard_ft.SSM; + A380SecComputer_B.Data_jyh = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_standard_ft.Data; + A380SecComputer_B.SSM_fu = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_corrected_ft.SSM; + A380SecComputer_B.Data_nmr = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.altitude_corrected_ft.Data; + A380SecComputer_B.SSM_ie = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.mach.SSM; + A380SecComputer_B.Data_i2t = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.mach.Data; + A380SecComputer_B.SSM_kf = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_computed_kn.SSM; + A380SecComputer_B.Data_ng = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_computed_kn.Data; + A380SecComputer_B.SSM_p5l = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_true_kn.SSM; + A380SecComputer_B.Data_h31 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.airspeed_true_kn.Data; + A380SecComputer_B.SSM_g3 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.SSM; + A380SecComputer_B.Data_ew = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.vertical_speed_ft_min.Data; + A380SecComputer_B.SSM_b3 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.aoa_corrected_deg.SSM; + A380SecComputer_B.Data_j1s = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.aoa_corrected_deg.Data; + A380SecComputer_B.SSM_dxv = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.SSM; + A380SecComputer_B.Data_j5 = A380SecComputer_P.out_Y0.data.bus_inputs.adr_2_bus.corrected_average_static_pressure.Data; + A380SecComputer_B.SSM_mxz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.discrete_word_1.SSM; + A380SecComputer_B.Data_cw = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.discrete_word_1.Data; + A380SecComputer_B.SSM_kk4 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.latitude_deg.SSM; + A380SecComputer_B.Data_gqa = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.latitude_deg.Data; + A380SecComputer_B.SSM_cy = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.longitude_deg.SSM; + A380SecComputer_B.Data_hz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.longitude_deg.Data; + A380SecComputer_B.SSM_ju = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.ground_speed_kn.SSM; + A380SecComputer_B.Data_fri = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.ground_speed_kn.Data; + A380SecComputer_B.SSM_ey = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_true_deg.SSM; + A380SecComputer_B.Data_cm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_true_deg.Data; + A380SecComputer_B.SSM_jr = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_true_deg.SSM; + A380SecComputer_B.Data_czj = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_true_deg.Data; + A380SecComputer_B.SSM_hs = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_speed_kn.SSM; + A380SecComputer_B.Data_mb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_speed_kn.Data; + A380SecComputer_B.SSM_mx3 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_direction_true_deg.SSM; + A380SecComputer_B.Data_gk4 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.wind_direction_true_deg.Data; + A380SecComputer_B.SSM_er = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.SSM; + A380SecComputer_B.Data_gbt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_magnetic_deg.Data; + A380SecComputer_B.SSM_hm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_magnetic_deg.SSM; + A380SecComputer_B.Data_p0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.heading_magnetic_deg.Data; + A380SecComputer_B.SSM_dm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.drift_angle_deg.SSM; + A380SecComputer_B.Data_dn = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.drift_angle_deg.Data; + A380SecComputer_B.SSM_fk = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_angle_deg.SSM; + A380SecComputer_B.Data_iyw = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_angle_deg.Data; + A380SecComputer_B.SSM = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_accel_g.SSM; + A380SecComputer_B.Data = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.flight_path_accel_g.Data; + A380SecComputer_B.SSM_k = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_angle_deg.SSM; + A380SecComputer_B.Data_f = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_angle_deg.Data; + A380SecComputer_B.SSM_kx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_angle_deg.SSM; + A380SecComputer_B.Data_fw = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_angle_deg.Data; + A380SecComputer_B.SSM_kxx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.SSM; + A380SecComputer_B.Data_fwx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_pitch_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxk = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_roll_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxta = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkf = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_yaw_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxtac = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_long_accel_g.SSM; + A380SecComputer_B.Data_fwxkft = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_long_accel_g.Data; + A380SecComputer_B.SSM_kxxtac0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_lat_accel_g.SSM; + A380SecComputer_B.Data_fwxkftc = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_lat_accel_g.Data; + A380SecComputer_B.SSM_kxxtac0z = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_normal_accel_g.SSM; + A380SecComputer_B.Data_fwxkftc3 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.body_normal_accel_g.Data; + A380SecComputer_B.SSM_kxxtac0zt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkftc3e = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.track_angle_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxtac0ztg = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkftc3ep = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.pitch_att_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxtac0ztgf = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.SSM; + A380SecComputer_B.Data_fwxkftc3epg = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.roll_att_rate_deg_s.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_alt_ft.SSM; + A380SecComputer_B.Data_fwxkftc3epgt = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_alt_ft.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2u = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_fwxkftc3epgtd = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.along_track_horiz_acc_g.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2ux = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_fwxkftc3epgtdx = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.cross_track_horiz_acc_g.Data; + A380SecComputer_B.SSM_kxxtac0ztgf2uxn = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.vertical_accel_g.SSM; + A380SecComputer_B.Data_fwxkftc3epgtdxc = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.vertical_accel_g.Data; + A380SecComputer_B.SSM_ky = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.SSM; + A380SecComputer_B.Data_h = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.inertial_vertical_speed_ft_s.Data; + A380SecComputer_B.SSM_d = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.north_south_velocity_kn.SSM; + A380SecComputer_B.Data_e = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.north_south_velocity_kn.Data; + A380SecComputer_B.SSM_h = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.east_west_velocity_kn.SSM; + A380SecComputer_B.Data_j = A380SecComputer_P.out_Y0.data.bus_inputs.ir_1_bus.east_west_velocity_kn.Data; + A380SecComputer_B.SSM_kb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.discrete_word_1.SSM; + A380SecComputer_B.Data_d = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.discrete_word_1.Data; + A380SecComputer_B.SSM_p = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.latitude_deg.SSM; + A380SecComputer_B.Data_p = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.latitude_deg.Data; + A380SecComputer_B.SSM_di = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.longitude_deg.SSM; + A380SecComputer_B.Data_i = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.longitude_deg.Data; + A380SecComputer_B.SSM_j = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.ground_speed_kn.SSM; + A380SecComputer_B.Data_g = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.ground_speed_kn.Data; + A380SecComputer_B.SSM_i = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_true_deg.SSM; + A380SecComputer_B.Data_a = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_true_deg.Data; + A380SecComputer_B.SSM_g = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_true_deg.SSM; + A380SecComputer_B.Data_eb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_true_deg.Data; + A380SecComputer_B.SSM_db = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_speed_kn.SSM; + A380SecComputer_B.Data_jo = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_speed_kn.Data; + A380SecComputer_B.SSM_n = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_direction_true_deg.SSM; + A380SecComputer_B.Data_ex = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.wind_direction_true_deg.Data; + A380SecComputer_B.SSM_a = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.SSM; + A380SecComputer_B.Data_fd = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_magnetic_deg.Data; + A380SecComputer_B.SSM_ir = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_magnetic_deg.SSM; + A380SecComputer_B.Data_ja = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.heading_magnetic_deg.Data; + A380SecComputer_B.SSM_hu = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.drift_angle_deg.SSM; + A380SecComputer_B.Data_k = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.drift_angle_deg.Data; + A380SecComputer_B.SSM_e = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_angle_deg.SSM; + A380SecComputer_B.Data_joy = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_angle_deg.Data; + A380SecComputer_B.SSM_gr = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_accel_g.SSM; + A380SecComputer_B.Data_h3 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.flight_path_accel_g.Data; + A380SecComputer_B.SSM_ev = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_angle_deg.SSM; + A380SecComputer_B.Data_a0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_angle_deg.Data; + A380SecComputer_B.SSM_l = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_angle_deg.SSM; + A380SecComputer_B.Data_b = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_angle_deg.Data; + A380SecComputer_B.SSM_ei = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.SSM; + A380SecComputer_B.Data_eq = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_pitch_rate_deg_s.Data; + A380SecComputer_B.SSM_an = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.SSM; + A380SecComputer_B.Data_iz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_roll_rate_deg_s.Data; + A380SecComputer_B.SSM_c = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.SSM; + A380SecComputer_B.Data_j2 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_yaw_rate_deg_s.Data; + A380SecComputer_B.SSM_cb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_long_accel_g.SSM; + A380SecComputer_B.Data_o = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_long_accel_g.Data; + A380SecComputer_B.SSM_lb = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_lat_accel_g.SSM; + A380SecComputer_B.Data_m = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_lat_accel_g.Data; + A380SecComputer_B.SSM_ia = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_normal_accel_g.SSM; + A380SecComputer_B.Data_oq = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.body_normal_accel_g.Data; + A380SecComputer_B.SSM_kyz = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.SSM; + A380SecComputer_B.Data_fo = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.track_angle_rate_deg_s.Data; + A380SecComputer_B.SSM_as = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.SSM; + A380SecComputer_B.Data_p1 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.pitch_att_rate_deg_s.Data; + A380SecComputer_B.SSM_is = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.SSM; + A380SecComputer_B.Data_p1y = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.roll_att_rate_deg_s.Data; + A380SecComputer_B.SSM_ca = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_alt_ft.SSM; + A380SecComputer_B.Data_l = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_alt_ft.Data; + A380SecComputer_B.SSM_o = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_kp = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.along_track_horiz_acc_g.Data; + A380SecComputer_B.SSM_ak = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.SSM; + A380SecComputer_B.Data_k0 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.cross_track_horiz_acc_g.Data; + A380SecComputer_B.SSM_cbj = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.vertical_accel_g.SSM; + A380SecComputer_B.Data_pi = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.vertical_accel_g.Data; + A380SecComputer_B.SSM_cu = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.SSM; + A380SecComputer_B.Data_dm = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.inertial_vertical_speed_ft_s.Data; + A380SecComputer_B.SSM_nn = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.north_south_velocity_kn.SSM; + A380SecComputer_B.Data_f5 = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.north_south_velocity_kn.Data; + A380SecComputer_B.SSM_b = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.east_west_velocity_kn.SSM; + A380SecComputer_B.Data_js = A380SecComputer_P.out_Y0.data.bus_inputs.ir_2_bus.east_west_velocity_kn.Data; + A380SecComputer_B.SSM_m = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.SSM; + A380SecComputer_B.Data_ee = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_component_status_word.Data; + A380SecComputer_B.SSM_f = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.SSM; + A380SecComputer_B.Data_ig = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_system_status_word.Data; + A380SecComputer_B.SSM_bp = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.SSM; + A380SecComputer_B.Data_mk = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_flap_actual_position_word.Data; + A380SecComputer_B.SSM_hb = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.SSM; + A380SecComputer_B.Data_pu = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.slat_actual_position_deg.Data; + A380SecComputer_B.SSM_gz = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.SSM; + A380SecComputer_B.Data_ly = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_1_bus.flap_actual_position_deg.Data; + A380SecComputer_B.SSM_pv = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.SSM; + A380SecComputer_B.Data_jq = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_component_status_word.Data; + A380SecComputer_B.SSM_mf = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.SSM; + A380SecComputer_B.Data_o5 = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_system_status_word.Data; + A380SecComputer_B.SSM_m0 = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.SSM; + A380SecComputer_B.Data_lyw = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_flap_actual_position_word.Data; + A380SecComputer_B.SSM_kd = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.SSM; + A380SecComputer_B.Data_gq = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.slat_actual_position_deg.Data; + A380SecComputer_B.SSM_pu = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.SSM; + A380SecComputer_B.Data_n = A380SecComputer_P.out_Y0.data.bus_inputs.sfcc_2_bus.flap_actual_position_deg.Data; A380SecComputer_B.irdc_5_a_bus = A380SecComputer_P.out_Y0.data.bus_inputs.irdc_5_a_bus; A380SecComputer_B.irdc_5_b_bus = A380SecComputer_P.out_Y0.data.bus_inputs.irdc_5_b_bus; - A380SecComputer_B.SSM_pu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_n = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_nv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_bq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_d5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.SSM; + A380SecComputer_B.SSM_nv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_bq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_d5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.SSM; A380SecComputer_B.Data_dmn = - A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_eo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_jn = - A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_nd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_c = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_bq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_lx = + A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_eo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_jn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_midboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_nd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_c = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_midboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_bq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_lx = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_hi = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_jb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_hi = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_jb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.Data; - A380SecComputer_B.SSM_mm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_fn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.Data; - A380SecComputer_B.SSM_kz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_od = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.Data; - A380SecComputer_B.SSM_il = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_ez = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.Data; - A380SecComputer_B.SSM_i2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_pw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_ah = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_m2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_en = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_ek = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.Data; - A380SecComputer_B.SSM_dq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_iy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.Data; - A380SecComputer_B.SSM_px = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_lk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_lbo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_ca = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_p5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_pix = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.Data; - A380SecComputer_B.SSM_mk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_di = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.Data; - A380SecComputer_B.SSM_mu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_lz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.Data; - A380SecComputer_B.SSM_cbl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_lu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.Data; - A380SecComputer_B.SSM_gzd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_dc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_mo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_gc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_me = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_am = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_mj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_mo = - A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_a5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.SSM; + A380SecComputer_B.SSM_mm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_fn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_kz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_od = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_il = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_ez = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_i2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_pw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_ah = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_m2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_3_command_deg.Data; + A380SecComputer_B.SSM_en = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_ek = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_3_command_deg.Data; + A380SecComputer_B.SSM_dq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_iy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_px = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_lk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_lbo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_ca = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_p5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_pix = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_mk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_di = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_mu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_lz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_cbl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_lu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_gzd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_dc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_mo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_gc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_8_command_deg.Data; + A380SecComputer_B.SSM_me = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_am = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_8_command_deg.Data; + A380SecComputer_B.SSM_mj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_mo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_a5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.SSM; A380SecComputer_B.Data_dg = - A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_bt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_bt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.SSM; A380SecComputer_B.Data_e1 = + A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_outboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_om = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_fp = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_om = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_command_deg.SSM; - A380SecComputer_B.Data_fp = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_command_deg.Data; - A380SecComputer_B.SSM_ar = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.SSM; - A380SecComputer_B.Data_ns = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.Data; - A380SecComputer_B.SSM_ce = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.SSM; - A380SecComputer_B.Data_m3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.Data; - A380SecComputer_B.SSM_ed = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_oj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.Data; - A380SecComputer_B.SSM_jh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_jy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.Data; - A380SecComputer_B.SSM_je = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_j1 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_jt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_fc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_cui = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.SSM; - A380SecComputer_B.Data_of = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.Data; - A380SecComputer_B.SSM_mq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.aileron_status_word.SSM; - A380SecComputer_B.Data_lg = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.aileron_status_word.Data; - A380SecComputer_B.SSM_ni = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_n4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.Data; - A380SecComputer_B.SSM_df = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_ot = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_oe = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_gv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.Data; - A380SecComputer_B.SSM_ha = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_ou = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_op = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.spoiler_status_word.SSM; - A380SecComputer_B.Data_dh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.spoiler_status_word.Data; - A380SecComputer_B.SSM_a50 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.SSM; - A380SecComputer_B.Data_ph = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.Data; - A380SecComputer_B.SSM_og = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.SSM; - A380SecComputer_B.Data_gs = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.Data; - A380SecComputer_B.SSM_a4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_status_word.SSM; - A380SecComputer_B.Data_fd4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_status_word.Data; - A380SecComputer_B.SSM_bv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_1_position_deg.SSM; - A380SecComputer_B.Data_hm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_1_position_deg.Data; - A380SecComputer_B.SSM_bo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_2_position_deg.SSM; - A380SecComputer_B.Data_i2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_2_position_deg.Data; - A380SecComputer_B.SSM_d1 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_3_position_deg.SSM; - A380SecComputer_B.Data_og = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_3_position_deg.Data; - A380SecComputer_B.SSM_hy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_position_deg.SSM; - A380SecComputer_B.Data_fv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_position_deg.Data; - A380SecComputer_B.SSM_gi = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_status_word.SSM; - A380SecComputer_B.Data_oc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_status_word.Data; - A380SecComputer_B.SSM_pp = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_1_position_deg.SSM; - A380SecComputer_B.Data_kq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_1_position_deg.Data; - A380SecComputer_B.SSM_iab = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_2_position_deg.SSM; - A380SecComputer_B.Data_ne = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_2_position_deg.Data; - A380SecComputer_B.SSM_jtv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_it = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.fctl_law_status_word.Data; - A380SecComputer_B.SSM_fy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.discrete_status_word_1.SSM; - A380SecComputer_B.Data_ch = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.discrete_status_word_1.Data; - A380SecComputer_B.SSM_d4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_bb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_ars = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_ol = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_din = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_hw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_m3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_hs = + A380SecComputer_B.SSM_ar = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_command_deg.SSM; + A380SecComputer_B.Data_ns = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_command_deg.Data; + A380SecComputer_B.SSM_ce = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.SSM; + A380SecComputer_B.Data_m3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.upper_rudder_command_deg.Data; + A380SecComputer_B.SSM_ed = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.SSM; + A380SecComputer_B.Data_oj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.lower_rudder_command_deg.Data; + A380SecComputer_B.SSM_jh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_jy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_je = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_j1 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_jt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_fc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_cui = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_of = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_mq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.SSM; + A380SecComputer_B.Data_lg = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_pedal_position_deg.Data; + A380SecComputer_B.SSM_ni = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.aileron_status_word.SSM; + A380SecComputer_B.Data_n4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.aileron_status_word.Data; + A380SecComputer_B.SSM_df = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_ot = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_oe = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_gv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_aileron_2_position_deg.Data; + A380SecComputer_B.SSM_ha = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_ou = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_op = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_dh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_aileron_2_position_deg.Data; + A380SecComputer_B.SSM_a50 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.spoiler_status_word.SSM; + A380SecComputer_B.Data_ph = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.spoiler_status_word.Data; + A380SecComputer_B.SSM_og = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.SSM; + A380SecComputer_B.Data_gs = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.left_spoiler_position_deg.Data; + A380SecComputer_B.SSM_a4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.SSM; + A380SecComputer_B.Data_fd4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.right_spoiler_position_deg.Data; + A380SecComputer_B.SSM_bv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_status_word.SSM; + A380SecComputer_B.Data_hm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_status_word.Data; + A380SecComputer_B.SSM_bo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_1_position_deg.SSM; + A380SecComputer_B.Data_i2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_1_position_deg.Data; + A380SecComputer_B.SSM_d1 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_2_position_deg.SSM; + A380SecComputer_B.Data_og = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_2_position_deg.Data; + A380SecComputer_B.SSM_hy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.Data_fv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.elevator_3_position_deg.Data; + A380SecComputer_B.SSM_gi = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_position_deg.SSM; + A380SecComputer_B.Data_oc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.ths_position_deg.Data; + A380SecComputer_B.SSM_pp = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_status_word.SSM; + A380SecComputer_B.Data_kq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_status_word.Data; + A380SecComputer_B.SSM_iab = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_1_position_deg.SSM; + A380SecComputer_B.Data_ne = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_1_position_deg.Data; + A380SecComputer_B.SSM_jtv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_2_position_deg.SSM; + A380SecComputer_B.Data_it = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.rudder_2_position_deg.Data; + A380SecComputer_B.SSM_fy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.fctl_law_status_word.SSM; + A380SecComputer_B.Data_ch = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.fctl_law_status_word.Data; + A380SecComputer_B.SSM_d4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.discrete_status_word_1.SSM; + A380SecComputer_B.Data_bb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_1_bus.discrete_status_word_1.Data; + A380SecComputer_B.SSM_ars = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_ol = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_din = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_hw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_m3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_hs = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_midboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_np = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_fj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_midboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_np = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_fj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_ax = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_ky = + A380SecComputer_B.SSM_ax = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_ky = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_aileron_command_deg.Data; + A380SecComputer_B.SSM_cl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.SSM; + A380SecComputer_B.Data_h5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_cl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_h5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.Data; - A380SecComputer_B.SSM_es = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.SSM; - A380SecComputer_B.Data_ku = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.Data; - A380SecComputer_B.SSM_gi1 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_jp = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.Data; - A380SecComputer_B.SSM_jz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.SSM; - A380SecComputer_B.Data_nu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.Data; - A380SecComputer_B.SSM_kt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_br = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_ds = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_ae = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.Data; - A380SecComputer_B.SSM_eg = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_pe = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.Data; - A380SecComputer_B.SSM_a0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.SSM; - A380SecComputer_B.Data_fy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.Data; - A380SecComputer_B.SSM_cv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_na = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_ea = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.SSM; - A380SecComputer_B.Data_my = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_p4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_i4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.Data; - A380SecComputer_B.SSM_m2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.SSM; - A380SecComputer_B.Data_cx = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.Data; - A380SecComputer_B.SSM_bt0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_nz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.Data; - A380SecComputer_B.SSM_nr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.SSM; - A380SecComputer_B.Data_id = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.Data; - A380SecComputer_B.SSM_fr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_o2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_cc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_gqq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.Data; - A380SecComputer_B.SSM_lm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_md = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_mkm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.SSM; - A380SecComputer_B.Data_cz = - A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_jhd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.SSM; + A380SecComputer_B.SSM_es = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_ku = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_gi1 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.SSM; + A380SecComputer_B.Data_jp = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_1_command_deg.Data; + A380SecComputer_B.SSM_jz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_nu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_kt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.SSM; + A380SecComputer_B.Data_br = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_2_command_deg.Data; + A380SecComputer_B.SSM_ds = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_ae = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_3_command_deg.Data; + A380SecComputer_B.SSM_eg = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.SSM; + A380SecComputer_B.Data_pe = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_3_command_deg.Data; + A380SecComputer_B.SSM_a0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_fy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_cv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.SSM; + A380SecComputer_B.Data_na = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_4_command_deg.Data; + A380SecComputer_B.SSM_ea = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_my = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_p4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.SSM; + A380SecComputer_B.Data_i4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_5_command_deg.Data; + A380SecComputer_B.SSM_m2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_cx = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_bt0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.SSM; + A380SecComputer_B.Data_nz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_6_command_deg.Data; + A380SecComputer_B.SSM_nr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_id = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_fr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.SSM; + A380SecComputer_B.Data_o2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_7_command_deg.Data; + A380SecComputer_B.SSM_cc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_gqq = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_8_command_deg.Data; + A380SecComputer_B.SSM_lm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.SSM; + A380SecComputer_B.Data_md = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_8_command_deg.Data; + A380SecComputer_B.SSM_mkm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_cz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_jhd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.SSM; A380SecComputer_B.Data_pm = - A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_av = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_inboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_av = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.SSM; A380SecComputer_B.Data_bj = + A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_outboard_elevator_command_deg.Data; + A380SecComputer_B.SSM_ira = + A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_B.Data_ox = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_ira = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_command_deg.SSM; - A380SecComputer_B.Data_ox = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_command_deg.Data; - A380SecComputer_B.SSM_ge = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.SSM; - A380SecComputer_B.Data_pe5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.Data; - A380SecComputer_B.SSM_lv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.SSM; - A380SecComputer_B.Data_jj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.Data; - A380SecComputer_B.SSM_cg = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_p5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.Data; - A380SecComputer_B.SSM_be = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_ekl = - A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.Data; - A380SecComputer_B.SSM_axb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_nd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_nz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_n2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_cx = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.SSM; - A380SecComputer_B.Data_dl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.Data; - A380SecComputer_B.SSM_gh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.aileron_status_word.SSM; - A380SecComputer_B.Data_gs2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.aileron_status_word.Data; - A380SecComputer_B.SSM_ks = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_h4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.Data; - A380SecComputer_B.SSM_pw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_e3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_fh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_f5h = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.Data; - A380SecComputer_B.SSM_gzn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.SSM; - A380SecComputer_B.Data_an = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_oo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.spoiler_status_word.SSM; - A380SecComputer_B.Data_i4o = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.spoiler_status_word.Data; - A380SecComputer_B.SSM_evh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.SSM; - A380SecComputer_B.Data_af = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.Data; - A380SecComputer_B.SSM_cn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.SSM; - A380SecComputer_B.Data_bm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.Data; - A380SecComputer_B.SSM_co = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_status_word.SSM; - A380SecComputer_B.Data_dk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_status_word.Data; - A380SecComputer_B.SSM_pe = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_1_position_deg.SSM; - A380SecComputer_B.Data_nv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_1_position_deg.Data; - A380SecComputer_B.SSM_cgz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_2_position_deg.SSM; - A380SecComputer_B.Data_jpf = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_2_position_deg.Data; - A380SecComputer_B.SSM_fw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_3_position_deg.SSM; - A380SecComputer_B.Data_i5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_3_position_deg.Data; - A380SecComputer_B.SSM_h4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_position_deg.SSM; - A380SecComputer_B.Data_k2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_position_deg.Data; - A380SecComputer_B.SSM_cb3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_status_word.SSM; - A380SecComputer_B.Data_as = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_status_word.Data; + A380SecComputer_B.SSM_ge = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_command_deg.SSM; + A380SecComputer_B.Data_pe5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_command_deg.Data; + A380SecComputer_B.SSM_lv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.SSM; + A380SecComputer_B.Data_jj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.upper_rudder_command_deg.Data; + A380SecComputer_B.SSM_cg = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.SSM; + A380SecComputer_B.Data_p5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.lower_rudder_command_deg.Data; + A380SecComputer_B.SSM_be = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_ekl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_axb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.SSM; + A380SecComputer_B.Data_nd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_pitch_command_deg.Data; + A380SecComputer_B.SSM_nz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_n2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_cx = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.SSM; + A380SecComputer_B.Data_dl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_sidestick_roll_command_deg.Data; + A380SecComputer_B.SSM_gh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.SSM; + A380SecComputer_B.Data_gs2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_pedal_position_deg.Data; + A380SecComputer_B.SSM_ks = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.aileron_status_word.SSM; + A380SecComputer_B.Data_h4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.aileron_status_word.Data; + A380SecComputer_B.SSM_pw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_e3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_fh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_f5h = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_aileron_2_position_deg.Data; + A380SecComputer_B.SSM_gzn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.SSM; + A380SecComputer_B.Data_an = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_1_position_deg.Data; + A380SecComputer_B.SSM_oo = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.SSM; + A380SecComputer_B.Data_i4o = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_aileron_2_position_deg.Data; + A380SecComputer_B.SSM_evh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.spoiler_status_word.SSM; + A380SecComputer_B.Data_af = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.spoiler_status_word.Data; + A380SecComputer_B.SSM_cn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.SSM; + A380SecComputer_B.Data_bm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.left_spoiler_position_deg.Data; + A380SecComputer_B.SSM_co = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.SSM; + A380SecComputer_B.Data_dk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.right_spoiler_position_deg.Data; + A380SecComputer_B.SSM_pe = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_status_word.SSM; + A380SecComputer_B.Data_nv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_status_word.Data; + A380SecComputer_B.SSM_cgz = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_1_position_deg.SSM; + A380SecComputer_B.Data_jpf = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_1_position_deg.Data; + A380SecComputer_B.SSM_fw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_2_position_deg.SSM; + A380SecComputer_B.Data_i5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_2_position_deg.Data; + A380SecComputer_B.SSM_h4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.Data_k2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.elevator_3_position_deg.Data; + A380SecComputer_B.SSM_cb3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_position_deg.SSM; + A380SecComputer_B.Data_as = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.ths_position_deg.Data; + A380SecComputer_B.SSM_pj = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_status_word.SSM; + A380SecComputer_B.Data_gk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_status_word.Data; A380SecComputer_B.SSM_dv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_1_position_deg.SSM; - A380SecComputer_B.Data_gk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_1_position_deg.Data; + A380SecComputer_B.Data_jl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_1_position_deg.Data; A380SecComputer_B.SSM_i4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_2_position_deg.SSM; - A380SecComputer_B.Data_jl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_2_position_deg.Data; + A380SecComputer_B.Data_e32 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.rudder_2_position_deg.Data; A380SecComputer_B.SSM_fm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_e32 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.fctl_law_status_word.Data; + A380SecComputer_B.Data_ih = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.fctl_law_status_word.Data; A380SecComputer_B.SSM_e5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.discrete_status_word_1.SSM; - A380SecComputer_B.Data_ih = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.discrete_status_word_1.Data; + A380SecComputer_B.Data_du = A380SecComputer_P.out_Y0.data.bus_inputs.prim_2_bus.discrete_status_word_1.Data; A380SecComputer_B.SSM_bf = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.SSM; - A380SecComputer_B.Data_du = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.Data; + A380SecComputer_B.Data_nx = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_inboard_aileron_command_deg.Data; A380SecComputer_B.SSM_fd = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_inboard_aileron_command_deg.SSM; A380SecComputer_B.Data_n0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_inboard_aileron_command_deg.Data; A380SecComputer_B.SSM_fv = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_midboard_aileron_command_deg.SSM; @@ -3754,7 +3735,7 @@ void A380SecComputer::initialize() A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_midboard_aileron_command_deg.Data; A380SecComputer_B.SSM_j5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_outboard_aileron_command_deg.SSM; A380SecComputer_B.Data_nr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_outboard_aileron_command_deg.Data; - A380SecComputer_B.SSM_ng = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.SSM; + A380SecComputer_B.SSM_cs = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.SSM; A380SecComputer_B.Data_p3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_outboard_aileron_command_deg.Data; A380SecComputer_B.SSM_ls = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_1_command_deg.SSM; @@ -3766,7 +3747,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_p2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_2_command_deg.SSM; A380SecComputer_B.Data_gu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_2_command_deg.Data; A380SecComputer_B.SSM_bo0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.SSM; - A380SecComputer_B.Data_ix = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.Data; + A380SecComputer_B.Data_do = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_3_command_deg.Data; A380SecComputer_B.SSM_bc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_3_command_deg.SSM; A380SecComputer_B.Data_hu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_3_command_deg.Data; A380SecComputer_B.SSM_h0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_4_command_deg.SSM; @@ -3775,7 +3756,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_i2y = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_4_command_deg.Data; A380SecComputer_B.SSM_mqp = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_5_command_deg.SSM; A380SecComputer_B.Data_pg = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_5_command_deg.Data; - A380SecComputer_B.SSM_ba = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.SSM; + A380SecComputer_B.SSM_in = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.SSM; A380SecComputer_B.Data_ni = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_5_command_deg.Data; A380SecComputer_B.SSM_ff = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_6_command_deg.SSM; A380SecComputer_B.Data_fr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_6_command_deg.Data; @@ -3786,7 +3767,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_ja = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_7_command_deg.SSM; A380SecComputer_B.Data_jh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_7_command_deg.Data; A380SecComputer_B.SSM_js = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.SSM; - A380SecComputer_B.Data_gl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.Data; + A380SecComputer_B.Data_gn = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_8_command_deg.Data; A380SecComputer_B.SSM_is3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_8_command_deg.SSM; A380SecComputer_B.Data_myb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_8_command_deg.Data; A380SecComputer_B.SSM_ag = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_inboard_elevator_command_deg.SSM; @@ -3797,7 +3778,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_ph = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_outboard_elevator_command_deg.SSM; A380SecComputer_B.Data_l5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_outboard_elevator_command_deg.Data; - A380SecComputer_B.SSM_jw = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.SSM; + A380SecComputer_B.SSM_jy = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.SSM; A380SecComputer_B.Data_dc2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_outboard_elevator_command_deg.Data; A380SecComputer_B.SSM_j1 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.ths_command_deg.SSM; @@ -3809,7 +3790,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_b4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_sidestick_pitch_command_deg.SSM; A380SecComputer_B.Data_et = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_sidestick_pitch_command_deg.Data; A380SecComputer_B.SSM_gb = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.SSM; - A380SecComputer_B.Data_mc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.Data; + A380SecComputer_B.Data_k3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_sidestick_pitch_command_deg.Data; A380SecComputer_B.SSM_oh = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_f2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_sidestick_roll_command_deg.Data; A380SecComputer_B.SSM_mm5 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_sidestick_roll_command_deg.SSM; @@ -3818,7 +3799,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_ed = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.rudder_pedal_position_deg.Data; A380SecComputer_B.SSM_c2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.aileron_status_word.SSM; A380SecComputer_B.Data_o2j = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.aileron_status_word.Data; - A380SecComputer_B.SSM_hc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_aileron_1_position_deg.SSM; + A380SecComputer_B.SSM_ktr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_aileron_1_position_deg.SSM; A380SecComputer_B.Data_i43 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_aileron_1_position_deg.Data; A380SecComputer_B.SSM_gl = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_aileron_2_position_deg.SSM; A380SecComputer_B.Data_ic = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_aileron_2_position_deg.Data; @@ -3829,7 +3810,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_go = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.spoiler_status_word.SSM; A380SecComputer_B.Data_cu = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.spoiler_status_word.Data; A380SecComputer_B.SSM_e5c = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_position_deg.SSM; - A380SecComputer_B.Data_ep = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_position_deg.Data; + A380SecComputer_B.Data_d3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.left_spoiler_position_deg.Data; A380SecComputer_B.SSM_dk = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_position_deg.SSM; A380SecComputer_B.Data_bt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.right_spoiler_position_deg.Data; A380SecComputer_B.SSM_evc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.elevator_status_word.SSM; @@ -3838,7 +3819,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_jl3 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.elevator_1_position_deg.Data; A380SecComputer_B.SSM_af = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.elevator_2_position_deg.SSM; A380SecComputer_B.Data_nm = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.elevator_2_position_deg.Data; - A380SecComputer_B.SSM_npr = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.SSM_ew = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.elevator_3_position_deg.SSM; A380SecComputer_B.Data_ia = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.elevator_3_position_deg.Data; A380SecComputer_B.SSM_lt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.ths_position_deg.SSM; A380SecComputer_B.Data_j0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.ths_position_deg.Data; @@ -3849,7 +3830,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_co2 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.rudder_2_position_deg.SSM; A380SecComputer_B.Data_ct = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.rudder_2_position_deg.Data; A380SecComputer_B.SSM_ny = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_pc = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.fctl_law_status_word.Data; + A380SecComputer_B.Data_nzt = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.fctl_law_status_word.Data; A380SecComputer_B.SSM_l4 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.discrete_status_word_1.SSM; A380SecComputer_B.Data_c0 = A380SecComputer_P.out_Y0.data.bus_inputs.prim_3_bus.discrete_status_word_1.Data; A380SecComputer_B.SSM_nm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_sidestick_pitch_command_deg.SSM; @@ -3858,7 +3839,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_lm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_sidestick_pitch_command_deg.Data; A380SecComputer_B.SSM_dl = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_fz = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_sidestick_roll_command_deg.Data; - A380SecComputer_B.SSM_dx = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.SSM; + A380SecComputer_B.SSM_a5h = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_oz = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_sidestick_roll_command_deg.Data; A380SecComputer_B.SSM_fl = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.rudder_pedal_position_deg.SSM; A380SecComputer_B.Data_gf = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.rudder_pedal_position_deg.Data; @@ -3869,7 +3850,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_bm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_aileron_2_position_deg.SSM; A380SecComputer_B.Data_fk = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_aileron_2_position_deg.Data; A380SecComputer_B.SSM_nl = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_aileron_1_position_deg.SSM; - A380SecComputer_B.Data_bu = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_aileron_1_position_deg.Data; + A380SecComputer_B.Data_o23 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_aileron_1_position_deg.Data; A380SecComputer_B.SSM_grm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_aileron_2_position_deg.SSM; A380SecComputer_B.Data_g3 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_aileron_2_position_deg.Data; A380SecComputer_B.SSM_gzm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.spoiler_status_word.SSM; @@ -3878,7 +3859,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_pwf = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_spoiler_1_position_deg.Data; A380SecComputer_B.SSM_aa = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_spoiler_1_position_deg.SSM; A380SecComputer_B.Data_gvk = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_spoiler_1_position_deg.Data; - A380SecComputer_B.SSM_fvk = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.SSM; + A380SecComputer_B.SSM_lw = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.SSM; A380SecComputer_B.Data_ln = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.left_spoiler_2_position_deg.Data; A380SecComputer_B.SSM_fa = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_spoiler_2_position_deg.SSM; A380SecComputer_B.Data_ka = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.right_spoiler_2_position_deg.Data; @@ -3889,7 +3870,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_a1 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.elevator_2_position_deg.SSM; A380SecComputer_B.Data_fki = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.elevator_2_position_deg.Data; A380SecComputer_B.SSM_p1 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.elevator_3_position_deg.SSM; - A380SecComputer_B.Data_bv = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.elevator_3_position_deg.Data; + A380SecComputer_B.Data_m21 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.elevator_3_position_deg.Data; A380SecComputer_B.SSM_cn2 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.ths_position_deg.SSM; A380SecComputer_B.Data_nbg = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.ths_position_deg.Data; A380SecComputer_B.SSM_an3 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.rudder_status_word.SSM; @@ -3898,7 +3879,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_ki = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.rudder_1_position_deg.Data; A380SecComputer_B.SSM_dp = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.rudder_2_position_deg.SSM; A380SecComputer_B.Data_p5p = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.rudder_2_position_deg.Data; - A380SecComputer_B.SSM_boy = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.fctl_law_status_word.SSM; + A380SecComputer_B.SSM_lg = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.fctl_law_status_word.SSM; A380SecComputer_B.Data_nry = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.fctl_law_status_word.Data; A380SecComputer_B.SSM_cm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.misc_data_status_word.SSM; A380SecComputer_B.Data_mh = A380SecComputer_P.out_Y0.data.bus_inputs.sec_x_bus.misc_data_status_word.Data; @@ -3909,7 +3890,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_b42 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_sidestick_roll_command_deg.SSM; A380SecComputer_B.Data_j04 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_sidestick_roll_command_deg.Data; A380SecComputer_B.SSM_anz = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.SSM; - A380SecComputer_B.Data_pf = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.Data; + A380SecComputer_B.Data_pl = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_sidestick_roll_command_deg.Data; A380SecComputer_B.SSM_d2 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.rudder_pedal_position_deg.SSM; A380SecComputer_B.Data_gb = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.rudder_pedal_position_deg.Data; A380SecComputer_B.SSM_gov = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.aileron_status_word.SSM; @@ -3918,7 +3899,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_ai = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_aileron_1_position_deg.Data; A380SecComputer_B.SSM_pe3 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_aileron_2_position_deg.SSM; A380SecComputer_B.Data_gfr = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_aileron_2_position_deg.Data; - A380SecComputer_B.SSM_jj = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_aileron_1_position_deg.SSM; + A380SecComputer_B.SSM_jx = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_aileron_1_position_deg.SSM; A380SecComputer_B.Data_czp = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_aileron_1_position_deg.Data; A380SecComputer_B.SSM_npl = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_aileron_2_position_deg.SSM; A380SecComputer_B.Data_fm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_aileron_2_position_deg.Data; @@ -3929,7 +3910,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_fhm = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_spoiler_1_position_deg.SSM; A380SecComputer_B.Data_j4 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_spoiler_1_position_deg.Data; A380SecComputer_B.SSM_ltj = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.SSM; - A380SecComputer_B.Data_jyh = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.Data; + A380SecComputer_B.Data_e4 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.left_spoiler_2_position_deg.Data; A380SecComputer_B.SSM_hn = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_spoiler_2_position_deg.SSM; A380SecComputer_B.Data_ghs = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.right_spoiler_2_position_deg.Data; A380SecComputer_B.SSM_h3 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.elevator_status_word.SSM; @@ -3938,7 +3919,7 @@ void A380SecComputer::initialize() A380SecComputer_B.Data_lzt = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.elevator_1_position_deg.Data; A380SecComputer_B.SSM_p0 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.elevator_2_position_deg.SSM; A380SecComputer_B.Data_kn = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.elevator_2_position_deg.Data; - A380SecComputer_B.SSM_fu = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.elevator_3_position_deg.SSM; + A380SecComputer_B.SSM_hr = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.elevator_3_position_deg.SSM; A380SecComputer_B.Data_nab = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.elevator_3_position_deg.Data; A380SecComputer_B.SSM_bi = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.ths_position_deg.SSM; A380SecComputer_B.Data_lgf = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.ths_position_deg.Data; @@ -3949,7 +3930,7 @@ void A380SecComputer::initialize() A380SecComputer_B.SSM_la = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.rudder_2_position_deg.SSM; A380SecComputer_B.Data_b1 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.rudder_2_position_deg.Data; A380SecComputer_B.SSM_l1 = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.fctl_law_status_word.SSM; - A380SecComputer_B.Data_nmr = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.fctl_law_status_word.Data; + A380SecComputer_B.Data_ea = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.fctl_law_status_word.Data; A380SecComputer_B.SSM_dy = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.misc_data_status_word.SSM; A380SecComputer_B.Data_nib = A380SecComputer_P.out_Y0.data.bus_inputs.sec_y_bus.misc_data_status_word.Data; A380SecComputer_B.laws = A380SecComputer_P.out_Y0.laws; diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.h b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.h index 4e8aba70646..926fa376097 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.h +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer.h @@ -21,15 +21,11 @@ class A380SecComputer final boolean_T pY_not_empty; }; - struct rtDW_MATLABFunction_A380SecComputer_k_T { + struct rtDW_MATLABFunction_A380SecComputer_c_T { real_T timeSinceCondition; boolean_T output; }; - struct rtDW_MATLABFunction_A380SecComputer_km_T { - boolean_T output; - }; - struct rtDW_MATLABFunction_A380SecComputer_b_T { boolean_T previousInput; boolean_T previousInput_not_empty; @@ -48,9 +44,9 @@ class A380SecComputer final real_T fo_roll_stick_pos; real_T elevator_1_pos_deg; real_T elevator_2_pos_deg; + real_T monotonic_time; real_T elevator_3_pos_deg; real_T ths_pos_deg; - real_T monotonic_time; real_T left_aileron_1_pos_deg; real_T left_aileron_2_pos_deg; real_T right_aileron_1_pos_deg; @@ -661,6 +657,8 @@ class A380SecComputer final boolean_T rudder_trim_reset_pressed; boolean_T pitch_trim_up_pressed; boolean_T pitch_trim_down_pressed; + boolean_T rat_deployed; + boolean_T rat_contactor_closed; boolean_T green_low_pressure; boolean_T yellow_low_pressure; boolean_T slew_on; @@ -692,12 +690,10 @@ class A380SecComputer final rtDW_MATLABFunction_A380SecComputer_b_T sf_MATLABFunction_ek; rtDW_MATLABFunction_A380SecComputer_b_T sf_MATLABFunction_nu; rtDW_MATLABFunction_A380SecComputer_b_T sf_MATLABFunction_g4; - rtDW_MATLABFunction_A380SecComputer_k_T sf_MATLABFunction_j2; - rtDW_MATLABFunction_A380SecComputer_k_T sf_MATLABFunction_g2; - rtDW_MATLABFunction_A380SecComputer_km_T sf_MATLABFunction_br; - rtDW_MATLABFunction_A380SecComputer_km_T sf_MATLABFunction_jg; - rtDW_MATLABFunction_A380SecComputer_k_T sf_MATLABFunction_gf; - rtDW_MATLABFunction_A380SecComputer_k_T sf_MATLABFunction_cj; + rtDW_MATLABFunction_A380SecComputer_c_T sf_MATLABFunction_j2; + rtDW_MATLABFunction_A380SecComputer_c_T sf_MATLABFunction_g2; + rtDW_MATLABFunction_A380SecComputer_c_T sf_MATLABFunction_bd; + rtDW_MATLABFunction_A380SecComputer_c_T sf_MATLABFunction_mg; rtDW_RateLimiter_A380SecComputer_o_T sf_RateLimiter_cd; rtDW_RateLimiter_A380SecComputer_o_T sf_RateLimiter_p0; rtDW_RateLimiter_A380SecComputer_o_T sf_RateLimiter_c; @@ -785,8 +781,6 @@ class A380SecComputer final real_T CompareToConstant1_const; real_T CompareToConstant1_const_p; real_T CompareToConstant1_const_d; - real_T HysteresisNode2_highTrigger; - real_T HysteresisNode3_highTrigger; real_T RateLimiterVariableTs2_lo; real_T RateLimiterGenericVariableTs_lo; real_T RateLimiterGenericVariableTs1_lo; @@ -803,8 +797,6 @@ class A380SecComputer final real_T RateLimiterGenericVariableTs_lo_f; real_T RateLimiterGenericVariableTs1_lo_c; real_T RateLimiterGenericVariableTs2_lo_k; - real_T HysteresisNode2_lowTrigger; - real_T HysteresisNode3_lowTrigger; real_T ConfirmNode_timeDelay; real_T ConfirmNode2_timeDelay; real_T ConfirmNode1_timeDelay; @@ -901,6 +893,7 @@ class A380SecComputer final real32_T Gain4_Gain; boolean_T Constant1_Value_b; boolean_T Constant_Value_ad; + boolean_T Constant_Value_b; boolean_T Delay_InitialCondition; boolean_T Delay1_InitialCondition; boolean_T Delay_InitialCondition_d; @@ -950,12 +943,9 @@ class A380SecComputer final boolean_T rtu_reset, real_T *rty_Y, rtDW_RateLimiter_A380SecComputer_o_T *localDW); static void A380SecComputer_MATLABFunction(const base_arinc_429 *rtu_u, boolean_T *rty_y); static void A380SecComputer_MATLABFunction_c(const base_arinc_429 *rtu_u, real_T rtu_bit, uint32_T *rty_y); - static void A380SecComputer_MATLABFunction_js_Reset(rtDW_MATLABFunction_A380SecComputer_k_T *localDW); - static void A380SecComputer_MATLABFunction_cj(boolean_T rtu_u, real_T rtu_Ts, boolean_T rtu_isRisingEdge, real_T - rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380SecComputer_k_T *localDW); - static void A380SecComputer_MATLABFunction_j2_Reset(rtDW_MATLABFunction_A380SecComputer_km_T *localDW); - static void A380SecComputer_MATLABFunction_j(real_T rtu_u, real_T rtu_highTrigger, real_T rtu_lowTrigger, boolean_T - *rty_y, rtDW_MATLABFunction_A380SecComputer_km_T *localDW); + static void A380SecComputer_MATLABFunction_k_Reset(rtDW_MATLABFunction_A380SecComputer_c_T *localDW); + static void A380SecComputer_MATLABFunction_m(boolean_T rtu_u, real_T rtu_Ts, boolean_T rtu_isRisingEdge, real_T + rtu_timeDelay, boolean_T *rty_y, rtDW_MATLABFunction_A380SecComputer_c_T *localDW); static void A380SecComputer_MATLABFunction_f_Reset(rtDW_MATLABFunction_A380SecComputer_b_T *localDW); static void A380SecComputer_MATLABFunction_g(boolean_T rtu_u, boolean_T rtu_isRisingEdge, boolean_T *rty_y, rtDW_MATLABFunction_A380SecComputer_b_T *localDW); diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_data.cpp b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_data.cpp index c5b7e27333b..a9c03c07475 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_data.cpp +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_data.cpp @@ -181,10 +181,6 @@ A380SecComputer::Parameters_A380SecComputer_T A380SecComputer::A380SecComputer_P 1.0, - 3700.0, - - 3700.0, - -1.0, -30.0, @@ -217,10 +213,6 @@ A380SecComputer::Parameters_A380SecComputer_T A380SecComputer::A380SecComputer_P -30.0, - 2900.0, - - 2900.0, - 0.5, 0.5, @@ -335,6 +327,8 @@ A380SecComputer::Parameters_A380SecComputer_T A380SecComputer::A380SecComputer_P false, false, false, + false, + false, false }, @@ -1929,6 +1923,7 @@ A380SecComputer::Parameters_A380SecComputer_T A380SecComputer::A380SecComputer_P false, false, false, + false, 0.0, 0.0, false, @@ -2299,6 +2294,7 @@ A380SecComputer::Parameters_A380SecComputer_T A380SecComputer::A380SecComputer_P false, false, false, + false, 0.0, 0.0, false, @@ -2430,6 +2426,8 @@ A380SecComputer::Parameters_A380SecComputer_T A380SecComputer::A380SecComputer_P false, + true, + false, false, diff --git a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_types.h b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_types.h index 4365345d61d..efc39cd0a74 100644 --- a/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_types.h +++ b/fbw-a380x/src/wasm/fbw_a380/src/model/A380SecComputer_types.h @@ -14,6 +14,30 @@ enum class SignStatusMatrix #endif +#ifndef DEFINED_TYPEDEF_FOR_base_sec_discrete_inputs_ +#define DEFINED_TYPEDEF_FOR_base_sec_discrete_inputs_ + +struct base_sec_discrete_inputs +{ + boolean_T sec_overhead_button_pressed; + boolean_T is_unit_1; + boolean_T is_unit_2; + boolean_T is_unit_3; + boolean_T capt_priority_takeover_pressed; + boolean_T fo_priority_takeover_pressed; + boolean_T rudder_trim_left_pressed; + boolean_T rudder_trim_right_pressed; + boolean_T rudder_trim_reset_pressed; + boolean_T pitch_trim_up_pressed; + boolean_T pitch_trim_down_pressed; + boolean_T rat_deployed; + boolean_T rat_contactor_closed; + boolean_T green_low_pressure; + boolean_T yellow_low_pressure; +}; + +#endif + #ifndef DEFINED_TYPEDEF_FOR_base_time_ #define DEFINED_TYPEDEF_FOR_base_time_ @@ -40,28 +64,6 @@ struct base_sim_data #endif -#ifndef DEFINED_TYPEDEF_FOR_base_sec_discrete_inputs_ -#define DEFINED_TYPEDEF_FOR_base_sec_discrete_inputs_ - -struct base_sec_discrete_inputs -{ - boolean_T sec_overhead_button_pressed; - boolean_T is_unit_1; - boolean_T is_unit_2; - boolean_T is_unit_3; - boolean_T capt_priority_takeover_pressed; - boolean_T fo_priority_takeover_pressed; - boolean_T rudder_trim_left_pressed; - boolean_T rudder_trim_right_pressed; - boolean_T rudder_trim_reset_pressed; - boolean_T pitch_trim_up_pressed; - boolean_T pitch_trim_down_pressed; - boolean_T green_low_pressure; - boolean_T yellow_low_pressure; -}; - -#endif - #ifndef DEFINED_TYPEDEF_FOR_base_sec_analog_inputs_ #define DEFINED_TYPEDEF_FOR_base_sec_analog_inputs_ @@ -455,6 +457,7 @@ struct base_sec_logic_outputs real_T ths_manual_mode_c_deg_s; boolean_T is_yellow_hydraulic_power_avail; boolean_T is_green_hydraulic_power_avail; + boolean_T eha_ebha_elec_mode_inhibited; boolean_T left_sidestick_disabled; boolean_T right_sidestick_disabled; boolean_T left_sidestick_priority_locked; diff --git a/fbw-a380x/src/wasm/systems/a380_systems/src/hydraulic/autobrakes.rs b/fbw-a380x/src/wasm/systems/a380_systems/src/hydraulic/autobrakes.rs new file mode 100644 index 00000000000..435bcf9f470 --- /dev/null +++ b/fbw-a380x/src/wasm/systems/a380_systems/src/hydraulic/autobrakes.rs @@ -0,0 +1,545 @@ +use systems::{ + hydraulic::brake_circuit::AutobrakeDecelerationGovernor, + overhead::PressSingleSignalButton, + shared::{ + interpolation, DelayedPulseTrueLogicGate, DelayedTrueLogicGate, ElectricalBusType, + ElectricalBuses, LgciuInterface, + }, + simulation::{ + InitContext, Read, Reader, SimulationElement, SimulationElementVisitor, SimulatorReader, + SimulatorWriter, UpdateContext, VariableIdentifier, Write, + }, +}; + +use std::time::Duration; +use uom::si::{ + acceleration::meter_per_second_squared, + f64::*, + ratio::{percent, ratio}, +}; + +#[derive(PartialEq, Clone, Copy, Debug)] +pub enum A380AutobrakeKnobPosition { + DISARM = 0, + BTV = 1, + LOW = 2, + L2 = 3, + L3 = 4, + HIGH = 5, +} +impl From for A380AutobrakeKnobPosition { + fn from(value: f64) -> Self { + match value as u8 { + 0 => A380AutobrakeKnobPosition::DISARM, + 1 => A380AutobrakeKnobPosition::BTV, + 2 => A380AutobrakeKnobPosition::LOW, + 3 => A380AutobrakeKnobPosition::L2, + 4 => A380AutobrakeKnobPosition::L3, + 5 => A380AutobrakeKnobPosition::HIGH, + _ => A380AutobrakeKnobPosition::DISARM, + } + } +} + +#[derive(PartialEq, Clone, Copy, Debug)] +pub enum A380AutobrakeMode { + DISARM = 0, + BTV = 1, + LOW = 2, + L2 = 3, + L3 = 4, + HIGH = 5, + + RTO = 6, +} +impl From for A380AutobrakeMode { + fn from(value: f64) -> Self { + match value as u8 { + 0 => A380AutobrakeMode::DISARM, + 1 => A380AutobrakeMode::BTV, + 2 => A380AutobrakeMode::LOW, + 3 => A380AutobrakeMode::L2, + 4 => A380AutobrakeMode::L3, + 5 => A380AutobrakeMode::HIGH, + + 6 => A380AutobrakeMode::RTO, + _ => A380AutobrakeMode::DISARM, + } + } +} + +pub struct A380AutobrakePanel { + selected_mode_id: VariableIdentifier, + + selected_mode: A380AutobrakeKnobPosition, + rto_button: PressSingleSignalButton, + + mode_has_changed: bool, +} +impl A380AutobrakePanel { + pub fn new(context: &mut InitContext) -> A380AutobrakePanel { + A380AutobrakePanel { + selected_mode_id: context.get_identifier("AUTOBRAKES_SELECTED_MODE".to_owned()), + + selected_mode: A380AutobrakeKnobPosition::DISARM, + rto_button: PressSingleSignalButton::new(context, "AUTOBRK_RTO_ARM"), + + mode_has_changed: true, + } + } + + pub fn selected_mode(&self) -> A380AutobrakeKnobPosition { + self.selected_mode + } + + pub fn selected_mode_has_changed(&self) -> bool { + self.mode_has_changed + } + + pub fn rto_pressed(&self) -> bool { + self.rto_button.is_pressed() + } +} +impl SimulationElement for A380AutobrakePanel { + fn accept(&mut self, visitor: &mut T) { + self.rto_button.accept(visitor); + + visitor.visit(self); + } + + fn read(&mut self, reader: &mut SimulatorReader) { + let raw_read: f64 = reader.read(&self.selected_mode_id); + let new_mode: A380AutobrakeKnobPosition = raw_read.into(); + + self.mode_has_changed = self.selected_mode != new_mode; + + self.selected_mode = new_mode; + } +} + +struct A380AutobrakeKnobSelectorSolenoid { + disarm_knob_id: VariableIdentifier, + + powered_by: ElectricalBusType, + is_powered: bool, + + disarm_request: bool, +} +impl A380AutobrakeKnobSelectorSolenoid { + fn new(context: &mut InitContext, powered_by: ElectricalBusType) -> Self { + Self { + disarm_knob_id: context.get_identifier("AUTOBRAKES_DISARM_KNOB_REQ".to_owned()), + + powered_by, + is_powered: true, + + disarm_request: false, + } + } + + fn disarm(&mut self, solenoid_should_disarm: bool) { + self.disarm_request = self.is_powered && solenoid_should_disarm; + } +} +impl SimulationElement for A380AutobrakeKnobSelectorSolenoid { + fn write(&self, writer: &mut SimulatorWriter) { + writer.write(&self.disarm_knob_id, self.disarm_request); + } + + fn receive_power(&mut self, buses: &impl ElectricalBuses) { + self.is_powered = buses.is_powered(self.powered_by) + } +} + +/// Autobrake controller computes the state machine of the autobrake logic, and the deceleration target +/// that we expect for the plane +pub struct A380AutobrakeController { + armed_mode_id: VariableIdentifier, + decel_light_id: VariableIdentifier, + active_id: VariableIdentifier, + rto_mode_armed_id: VariableIdentifier, + + external_disarm_event_id: VariableIdentifier, + + deceleration_governor: AutobrakeDecelerationGovernor, + decelerating_light: bool, + + target: Acceleration, + mode: A380AutobrakeMode, + + arming_is_allowed_by_bcu: bool, + left_brake_pedal_input: Ratio, + right_brake_pedal_input: Ratio, + + ground_spoilers_are_deployed: bool, + last_ground_spoilers_are_deployed: bool, + ground_spoilers_are_deployed_since_5s: DelayedTrueLogicGate, + nose_gear_was_compressed_once: bool, + + should_disarm_after_time_in_flight: DelayedPulseTrueLogicGate, + should_reject_rto_mode_after_time_in_flight: DelayedTrueLogicGate, + + autobrake_knob: A380AutobrakeKnobSelectorSolenoid, + + external_disarm_event: bool, + + placeholder_ground_spoilers_out: bool, +} +impl A380AutobrakeController { + const DURATION_OF_FLIGHT_TO_DISARM_AUTOBRAKE: Duration = Duration::from_secs(10); + const DURATION_OF_GROUND_SPOILERS_BEFORE_ARMING: Duration = Duration::from_secs(5); + + // Time breakpoint map is shared by all normal modes, and there's a BTV placeholder delaying braking + const NORMAL_MODE_DECEL_PROFILE_TIME_S: [f64; 3] = [0., 0.1, 2.5]; + + // BTV placeholder delays braking 4s + const BTV_MODE_DECEL_PROFILE_TIME_S: [f64; 4] = [0., 3.99, 4., 6.]; + + const LOW_MODE_DECEL_PROFILE_ACCEL_MS2: [f64; 3] = [4., 0., -2.]; + const L2_MODE_DECEL_PROFILE_ACCEL_MS2: [f64; 3] = [4., 0., -2.5]; + const L3_MODE_DECEL_PROFILE_ACCEL_MS2: [f64; 3] = [4., 0., -3.]; + const HIGH_MODE_DECEL_PROFILE_ACCEL_MS2: [f64; 3] = [4., -2., -3.5]; + const BTV_MODE_DECEL_PROFILE_ACCEL_MS2: [f64; 4] = [4., 4., -1., -2.5]; + + const RTO_MODE_DECEL_TARGET_MS2: f64 = -6.; + const OFF_MODE_DECEL_TARGET_MS2: f64 = 5.; + + const MARGIN_PERCENT_TO_TARGET_TO_SHOW_DECEL_IN_LANDING_MODE: f64 = 80.; + const MARGIN_PERCENT_TO_TARGET_TO_REMOVE_DECEL_IN_LANDING_MODE: f64 = 70.; + const TARGET_TO_SHOW_DECEL_IN_RTO_MS2: f64 = -2.7; + const TARGET_TO_REMOVE_DECEL_IN_RTO_MS2: f64 = -2.; + + pub fn new(context: &mut InitContext) -> A380AutobrakeController { + A380AutobrakeController { + armed_mode_id: context.get_identifier("AUTOBRAKES_ARMED_MODE".to_owned()), + decel_light_id: context.get_identifier("AUTOBRAKES_DECEL_LIGHT".to_owned()), + active_id: context.get_identifier("AUTOBRAKES_ACTIVE".to_owned()), + rto_mode_armed_id: context.get_identifier("AUTOBRAKES_RTO_ARMED".to_owned()), + + external_disarm_event_id: context.get_identifier("AUTOBRAKE_DISARM".to_owned()), + + deceleration_governor: AutobrakeDecelerationGovernor::new(), + decelerating_light: false, + target: Acceleration::new::(0.), + mode: A380AutobrakeMode::DISARM, + arming_is_allowed_by_bcu: context.is_in_flight(), + left_brake_pedal_input: Ratio::new::(0.), + right_brake_pedal_input: Ratio::new::(0.), + ground_spoilers_are_deployed: false, + last_ground_spoilers_are_deployed: false, + ground_spoilers_are_deployed_since_5s: DelayedTrueLogicGate::new( + Self::DURATION_OF_GROUND_SPOILERS_BEFORE_ARMING, + ), + nose_gear_was_compressed_once: false, + should_disarm_after_time_in_flight: DelayedPulseTrueLogicGate::new( + Self::DURATION_OF_FLIGHT_TO_DISARM_AUTOBRAKE, + ) + .starting_as(context.is_in_flight(), false), + should_reject_rto_mode_after_time_in_flight: DelayedTrueLogicGate::new( + Self::DURATION_OF_FLIGHT_TO_DISARM_AUTOBRAKE, + ) + .starting_as(context.is_in_flight()), + + // Powered on VDC BUS 2 -> 806GG cb + autobrake_knob: A380AutobrakeKnobSelectorSolenoid::new( + context, + ElectricalBusType::DirectCurrent(2), + ), + + external_disarm_event: false, + + placeholder_ground_spoilers_out: false, + } + } + + fn spoilers_retracted_during_this_update(&self) -> bool { + !self.ground_spoilers_are_deployed && self.last_ground_spoilers_are_deployed + } + + fn rto_mode_deselected_this_update(&self, autobrake_panel: &A380AutobrakePanel) -> bool { + self.mode == A380AutobrakeMode::RTO && autobrake_panel.rto_pressed() + } + + pub fn brake_output(&self) -> Ratio { + Ratio::new::(self.deceleration_governor.output()) + } + + fn determine_mode( + &mut self, + context: &UpdateContext, + autobrake_panel: &A380AutobrakePanel, + ) -> A380AutobrakeMode { + if self.should_disarm(context, autobrake_panel) { + self.disarm_actions(); + return A380AutobrakeMode::DISARM; + } + + if self.mode == A380AutobrakeMode::RTO + || autobrake_panel.rto_pressed() + && !self.should_reject_rto_mode_after_time_in_flight.output() + { + if autobrake_panel.selected_mode() != A380AutobrakeKnobPosition::DISARM { + self.autobrake_knob.disarm(true); + } + + A380AutobrakeMode::RTO + } else { + self.autobrake_knob.disarm(false); + if autobrake_panel.selected_mode_has_changed() { + match autobrake_panel.selected_mode() { + A380AutobrakeKnobPosition::DISARM => A380AutobrakeMode::DISARM, + A380AutobrakeKnobPosition::LOW => A380AutobrakeMode::LOW, + A380AutobrakeKnobPosition::L2 => A380AutobrakeMode::L2, + A380AutobrakeKnobPosition::L3 => A380AutobrakeMode::L3, + A380AutobrakeKnobPosition::HIGH => A380AutobrakeMode::HIGH, + A380AutobrakeKnobPosition::BTV => A380AutobrakeMode::BTV, + } + } else { + self.mode + } + } + } + + fn should_engage_deceleration_governor( + &self, + context: &UpdateContext, + autobrake_panel: &A380AutobrakePanel, + ) -> bool { + self.is_armed() + && self.ground_spoilers_are_deployed // We wait 5s after deploy, but they need to be deployed even if nose compressed + && (self.ground_spoilers_are_deployed_since_5s.output() + || self.nose_gear_was_compressed_once) + && !self.should_disarm(context, autobrake_panel) + } + + fn is_armed(&self) -> bool { + self.mode != A380AutobrakeMode::DISARM + } + + fn is_decelerating(&self) -> bool { + self.decelerating_light + } + + /// Handles the hysteresis for decel light depending on normal vs RTO modes + fn update_decelerating_light_info(&mut self) { + if !self.deceleration_demanded() { + self.decelerating_light = false; + return; + } + + match self.mode { + A380AutobrakeMode::DISARM => self.decelerating_light = false, + A380AutobrakeMode::LOW + | A380AutobrakeMode::L2 + | A380AutobrakeMode::L3 + | A380AutobrakeMode::HIGH + | A380AutobrakeMode::BTV => { + if self + .deceleration_governor + .is_on_target(Ratio::new::( + Self::MARGIN_PERCENT_TO_TARGET_TO_SHOW_DECEL_IN_LANDING_MODE, + )) + { + self.decelerating_light = true; + } else if !self + .deceleration_governor + .is_on_target(Ratio::new::( + Self::MARGIN_PERCENT_TO_TARGET_TO_REMOVE_DECEL_IN_LANDING_MODE, + )) + { + self.decelerating_light = false; + } + } + A380AutobrakeMode::RTO => { + if self + .deceleration_governor + .decelerating_at_or_above_rate(Acceleration::new::( + Self::TARGET_TO_SHOW_DECEL_IN_RTO_MS2, + )) + { + self.decelerating_light = true; + } else if !self.deceleration_governor.decelerating_at_or_above_rate( + Acceleration::new::( + Self::TARGET_TO_REMOVE_DECEL_IN_RTO_MS2, + ), + ) { + self.decelerating_light = false; + } + } + } + } + + fn deceleration_demanded(&self) -> bool { + self.deceleration_governor.is_engaged() + && self.target.get::() < 0. + } + + fn should_disarm_due_to_pedal_input(&self) -> bool { + // Thresholds from A320, TBC for A380 + match self.mode { + A380AutobrakeMode::DISARM => false, + A380AutobrakeMode::LOW + | A380AutobrakeMode::L2 + | A380AutobrakeMode::L3 + | A380AutobrakeMode::HIGH + | A380AutobrakeMode::BTV => { + self.left_brake_pedal_input > Ratio::new::(53.) + || self.right_brake_pedal_input > Ratio::new::(53.) + || (self.left_brake_pedal_input > Ratio::new::(11.) + && self.right_brake_pedal_input > Ratio::new::(11.)) + } + A380AutobrakeMode::RTO => { + self.left_brake_pedal_input > Ratio::new::(77.) + || self.right_brake_pedal_input > Ratio::new::(77.) + || (self.left_brake_pedal_input > Ratio::new::(53.) + && self.right_brake_pedal_input > Ratio::new::(53.)) + } + } + } + + fn should_disarm(&self, context: &UpdateContext, autobrake_panel: &A380AutobrakePanel) -> bool { + // when a simulation is started in flight, some values need to be ignored for a certain time to ensure + // an unintended disarm is not happening + (self.deceleration_governor.is_engaged() && self.should_disarm_due_to_pedal_input()) + || (context.is_sim_ready() && !self.arming_is_allowed_by_bcu) + || self.spoilers_retracted_during_this_update() + || self.rto_mode_deselected_this_update(autobrake_panel) + || self.should_disarm_after_time_in_flight.output() + || (self.external_disarm_event && self.mode != A380AutobrakeMode::RTO) + || (self.mode == A380AutobrakeMode::RTO + && self.should_reject_rto_mode_after_time_in_flight.output()) + } + + fn disarm_actions(&mut self) { + self.autobrake_knob.disarm(true); + self.nose_gear_was_compressed_once = false; + } + + fn calculate_target(&mut self) -> Acceleration { + Acceleration::new::(match self.mode { + A380AutobrakeMode::DISARM => Self::OFF_MODE_DECEL_TARGET_MS2, + A380AutobrakeMode::LOW => interpolation( + &Self::NORMAL_MODE_DECEL_PROFILE_TIME_S, + &Self::LOW_MODE_DECEL_PROFILE_ACCEL_MS2, + self.deceleration_governor.time_engaged().as_secs_f64(), + ), + A380AutobrakeMode::L2 => interpolation( + &Self::NORMAL_MODE_DECEL_PROFILE_TIME_S, + &Self::L2_MODE_DECEL_PROFILE_ACCEL_MS2, + self.deceleration_governor.time_engaged().as_secs_f64(), + ), + A380AutobrakeMode::L3 => interpolation( + &Self::NORMAL_MODE_DECEL_PROFILE_TIME_S, + &Self::L3_MODE_DECEL_PROFILE_ACCEL_MS2, + self.deceleration_governor.time_engaged().as_secs_f64(), + ), + A380AutobrakeMode::HIGH => interpolation( + &Self::NORMAL_MODE_DECEL_PROFILE_TIME_S, + &Self::HIGH_MODE_DECEL_PROFILE_ACCEL_MS2, + self.deceleration_governor.time_engaged().as_secs_f64(), + ), + A380AutobrakeMode::BTV => self.compute_btv_decel_target_ms2(), + A380AutobrakeMode::RTO => Self::RTO_MODE_DECEL_TARGET_MS2, + }) + } + + fn compute_btv_decel_target_ms2(&self) -> f64 { + // Placeholder BTV deceleration + + interpolation( + &Self::BTV_MODE_DECEL_PROFILE_TIME_S, + &Self::BTV_MODE_DECEL_PROFILE_ACCEL_MS2, + self.deceleration_governor.time_engaged().as_secs_f64(), + ) + } + + fn update_input_conditions( + &mut self, + context: &UpdateContext, + allow_arming: bool, + pedal_input_left: Ratio, + pedal_input_right: Ratio, + lgciu1: &impl LgciuInterface, + lgciu2: &impl LgciuInterface, + ) { + let in_flight_lgciu1 = + !lgciu1.right_gear_compressed(false) && !lgciu1.left_gear_compressed(false); + let in_flight_lgciu2 = + !lgciu2.right_gear_compressed(false) && !lgciu2.left_gear_compressed(false); + + // Stays true until disarming + self.nose_gear_was_compressed_once = self.nose_gear_was_compressed_once + || lgciu1.nose_gear_compressed(false) + || lgciu2.nose_gear_compressed(false); + + self.ground_spoilers_are_deployed_since_5s + .update(context, self.ground_spoilers_are_deployed); + self.should_disarm_after_time_in_flight + .update(context, in_flight_lgciu1 && in_flight_lgciu2); + self.should_reject_rto_mode_after_time_in_flight + .update(context, in_flight_lgciu1 && in_flight_lgciu2); + + self.arming_is_allowed_by_bcu = allow_arming; + self.left_brake_pedal_input = pedal_input_left; + self.right_brake_pedal_input = pedal_input_right; + } + + pub fn update( + &mut self, + context: &UpdateContext, + autobrake_panel: &A380AutobrakePanel, + allow_arming: bool, + pedal_input_left: Ratio, + pedal_input_right: Ratio, + lgciu1: &impl LgciuInterface, + lgciu2: &impl LgciuInterface, + placeholder_ground_spoilers_out: bool, + ) { + self.update_input_conditions( + context, + allow_arming, + pedal_input_left, + pedal_input_right, + lgciu1, + lgciu2, + ); + + self.mode = self.determine_mode(context, autobrake_panel); + + self.deceleration_governor + .engage_when(self.should_engage_deceleration_governor(context, autobrake_panel)); + + self.target = self.calculate_target(); + self.deceleration_governor.update(context, self.target); + self.update_decelerating_light_info(); + + self.placeholder_ground_spoilers_out = placeholder_ground_spoilers_out; + } +} +impl SimulationElement for A380AutobrakeController { + fn accept(&mut self, visitor: &mut T) { + self.autobrake_knob.accept(visitor); + + visitor.visit(self); + } + + fn write(&self, writer: &mut SimulatorWriter) { + writer.write(&self.armed_mode_id, self.mode as u8 as f64); + writer.write(&self.decel_light_id, self.is_decelerating()); + writer.write(&self.active_id, self.deceleration_demanded()); + writer.write(&self.rto_mode_armed_id, self.mode == A380AutobrakeMode::RTO); + } + + fn read(&mut self, reader: &mut SimulatorReader) { + self.last_ground_spoilers_are_deployed = self.ground_spoilers_are_deployed; + self.ground_spoilers_are_deployed = self.placeholder_ground_spoilers_out; + + self.external_disarm_event = reader.read(&self.external_disarm_event_id); + + // Reading current mode in sim to initialize correct mode if sim changes it (from .FLT files for example) + let readed_mode = reader.read_f64(&self.armed_mode_id); + if readed_mode >= 0.0 { + self.mode = readed_mode.into(); + } + } +} diff --git a/fbw-a380x/src/wasm/systems/a380_systems/src/hydraulic/mod.rs b/fbw-a380x/src/wasm/systems/a380_systems/src/hydraulic/mod.rs index 09d2a808ea9..3f19471bc6d 100644 --- a/fbw-a380x/src/wasm/systems/a380_systems/src/hydraulic/mod.rs +++ b/fbw-a380x/src/wasm/systems/a380_systems/src/hydraulic/mod.rs @@ -2,7 +2,6 @@ use nalgebra::Vector3; use std::time::Duration; use uom::si::{ - acceleration::meter_per_second_squared, angle::degree, angular_velocity::{radian_per_second, revolution_per_minute}, electric_current::ampere, @@ -21,10 +20,7 @@ use systems::{ engine::Engine, hydraulic::{ aerodynamic_model::AerodynamicModel, - brake_circuit::{ - AutobrakeDecelerationGovernor, AutobrakeMode, AutobrakePanel, - BrakeAccumulatorCharacteristics, BrakeCircuit, BrakeCircuitController, - }, + brake_circuit::{BrakeAccumulatorCharacteristics, BrakeCircuit, BrakeCircuitController}, bypass_pin::BypassPin, cargo_doors::{CargoDoor, HydraulicDoorController}, flap_slat::FlapSlatAssembly, @@ -51,13 +47,13 @@ use systems::{ overhead::{AutoOffFaultPushButton, AutoOnFaultPushButton}, shared::{ interpolation, random_from_range, update_iterator::MaxStepLoop, AdirsDiscreteOutputs, - AirbusElectricPumpId, AirbusEngineDrivenPumpId, CargoDoorLocked, DelayedFalseLogicGate, - DelayedPulseTrueLogicGate, DelayedTrueLogicGate, ElectricalBusType, ElectricalBuses, + AdirsMeasurementOutputs, AirbusElectricPumpId, AirbusEngineDrivenPumpId, CargoDoorLocked, + DelayedFalseLogicGate, DelayedTrueLogicGate, ElectricalBusType, ElectricalBuses, EngineFirePushButtons, GearWheel, HydraulicColor, LandingGearHandle, LgciuInterface, LgciuWeightOnWheels, ReservoirAirPressure, SectionPressure, SurfacesPositions, }, simulation::{ - InitContext, Read, Reader, SimulationElement, SimulationElementVisitor, SimulatorReader, + InitContext, Read, SimulationElement, SimulationElementVisitor, SimulatorReader, SimulatorWriter, StartState, UpdateContext, VariableIdentifier, Write, }, }; @@ -68,6 +64,8 @@ mod flaps_computer; use flaps_computer::SlatFlapComplex; mod engine_pump_disc; use engine_pump_disc::EnginePumpDisconnectionClutch; +pub mod autobrakes; +use autobrakes::A380AutobrakeController; #[cfg(test)] use systems::hydraulic::PressureSwitchState; @@ -1920,11 +1918,11 @@ impl A380Hydraulic { context: &UpdateContext, engines: [&impl Engine; 4], overhead_panel: &A380HydraulicOverheadPanel, - autobrake_panel: &AutobrakePanel, + autobrake_panel: &A380AutobrakePanel, engine_fire_push_buttons: &impl EngineFirePushButtons, lgcius: &LandingGearControlInterfaceUnitSet, reservoir_pneumatics: &impl ReservoirAirPressure, - adirs: &impl AdirsDiscreteOutputs, + adirs: &(impl AdirsDiscreteOutputs + AdirsMeasurementOutputs), ) { self.core_hydraulic_updater.update(context); @@ -1936,6 +1934,7 @@ impl A380Hydraulic { lgcius.lgciu2(), engines[0], engines[1], + adirs, ); for cur_time_step in self.core_hydraulic_updater { @@ -2195,11 +2194,12 @@ impl A380Hydraulic { &mut self, context: &UpdateContext, overhead_panel: &A380HydraulicOverheadPanel, - autobrake_panel: &AutobrakePanel, + autobrake_panel: &A380AutobrakePanel, lgciu1: &impl LgciuInterface, lgciu2: &impl LgciuInterface, engine1: &impl Engine, engine2: &impl Engine, + adirs: &impl AdirsMeasurementOutputs, ) { self.gear_system_gravity_extension_controller .update(context); @@ -2232,6 +2232,9 @@ impl A380Hydraulic { autobrake_panel, engine1, engine2, + adirs, + self.left_spoilers.ground_spoilers_are_requested() + && self.right_spoilers.ground_spoilers_are_requested(), ); self.pushback_tug.update(context); @@ -3139,6 +3142,8 @@ impl HydraulicCircuitController for A380HydraulicCircuitController { } use std::fmt::Display; + +use self::autobrakes::A380AutobrakePanel; #[derive(Clone, Copy, PartialEq, Debug)] enum A380EngineDrivenPumpId { Edp1a, @@ -3905,8 +3910,10 @@ impl A380HydraulicBrakeSteerComputerUnit { } } - fn allow_autobrake_arming(&self) -> bool { - self.anti_skid_activated && self.normal_brakes_available + fn allow_autobrake_arming(&self, adirs: &impl AdirsMeasurementOutputs) -> bool { + self.anti_skid_activated + && self.normal_brakes_available + && (adirs.is_fully_aligned(1) || adirs.is_fully_aligned(2) || adirs.is_fully_aligned(3)) } fn update_normal_braking_availability(&mut self, normal_braking_circuit_pressure: Pressure) { @@ -3960,9 +3967,11 @@ impl A380HydraulicBrakeSteerComputerUnit { alternate_circuit: &BrakeCircuit, lgciu1: &impl LgciuInterface, lgciu2: &impl LgciuInterface, - autobrake_panel: &AutobrakePanel, + autobrake_panel: &A380AutobrakePanel, engine1: &impl Engine, engine2: &impl Engine, + adirs: &impl AdirsMeasurementOutputs, + placeholder_ground_spoilers_out: bool, ) { self.update_steering_demands(lgciu1, engine1, engine2); @@ -3972,11 +3981,12 @@ impl A380HydraulicBrakeSteerComputerUnit { self.autobrake_controller.update( context, autobrake_panel, - self.allow_autobrake_arming(), + self.allow_autobrake_arming(adirs), self.left_brake_pilot_input, self.right_brake_pilot_input, lgciu1, lgciu2, + placeholder_ground_spoilers_out, ); let is_in_flight_gear_lever_up = !(lgciu1.left_and_right_gear_compressed(true) @@ -4271,275 +4281,6 @@ impl SimulationElement for A380BrakingForce { } } -/// Autobrake controller computes the state machine of the autobrake logic, and the deceleration target -/// that we expect for the plane -pub struct A380AutobrakeController { - armed_mode_id: VariableIdentifier, - armed_mode_id_set: VariableIdentifier, - decel_light_id: VariableIdentifier, - active_id: VariableIdentifier, - ground_spoilers_out_sec1_id: VariableIdentifier, - ground_spoilers_out_sec2_id: VariableIdentifier, - ground_spoilers_out_sec3_id: VariableIdentifier, - external_disarm_event_id: VariableIdentifier, - - deceleration_governor: AutobrakeDecelerationGovernor, - - target: Acceleration, - mode: AutobrakeMode, - - arming_is_allowed_by_bcu: bool, - left_brake_pedal_input: Ratio, - right_brake_pedal_input: Ratio, - - ground_spoilers_are_deployed: bool, - last_ground_spoilers_are_deployed: bool, - - should_disarm_after_time_in_flight: DelayedPulseTrueLogicGate, - should_reject_max_mode_after_time_in_flight: DelayedTrueLogicGate, - - external_disarm_event: bool, -} -impl A380AutobrakeController { - const DURATION_OF_FLIGHT_TO_DISARM_AUTOBRAKE_SECS: f64 = 10.; - - // Dynamic decel target map versus time for any mode that needs it - const LOW_MODE_DECEL_PROFILE_ACCEL_MS2: [f64; 4] = [4., 4., 0., -2.]; - const LOW_MODE_DECEL_PROFILE_TIME_S: [f64; 4] = [0., 1.99, 2., 4.5]; - - const MED_MODE_DECEL_PROFILE_ACCEL_MS2: [f64; 5] = [4., 4., 0., -2., -3.]; - const MED_MODE_DECEL_PROFILE_TIME_S: [f64; 5] = [0., 1.99, 2., 2.5, 4.]; - - const MAX_MODE_DECEL_TARGET_MS2: f64 = -6.; - const OFF_MODE_DECEL_TARGET_MS2: f64 = 5.; - - const MARGIN_PERCENT_TO_TARGET_TO_SHOW_DECEL_IN_LO_MED: f64 = 80.; - const TARGET_TO_SHOW_DECEL_IN_MAX_MS2: f64 = -2.7; - - fn new(context: &mut InitContext) -> A380AutobrakeController { - A380AutobrakeController { - armed_mode_id: context.get_identifier("AUTOBRAKES_ARMED_MODE".to_owned()), - armed_mode_id_set: context.get_identifier("AUTOBRAKES_ARMED_MODE_SET".to_owned()), - decel_light_id: context.get_identifier("AUTOBRAKES_DECEL_LIGHT".to_owned()), - active_id: context.get_identifier("AUTOBRAKES_ACTIVE".to_owned()), - ground_spoilers_out_sec1_id: context - .get_identifier("SEC_1_GROUND_SPOILER_OUT".to_owned()), - ground_spoilers_out_sec2_id: context - .get_identifier("SEC_2_GROUND_SPOILER_OUT".to_owned()), - ground_spoilers_out_sec3_id: context - .get_identifier("SEC_3_GROUND_SPOILER_OUT".to_owned()), - external_disarm_event_id: context.get_identifier("AUTOBRAKE_DISARM".to_owned()), - - deceleration_governor: AutobrakeDecelerationGovernor::new(), - target: Acceleration::new::(0.), - mode: AutobrakeMode::NONE, - arming_is_allowed_by_bcu: context.is_in_flight(), - left_brake_pedal_input: Ratio::new::(0.), - right_brake_pedal_input: Ratio::new::(0.), - ground_spoilers_are_deployed: false, - last_ground_spoilers_are_deployed: false, - should_disarm_after_time_in_flight: DelayedPulseTrueLogicGate::new( - Duration::from_secs_f64(Self::DURATION_OF_FLIGHT_TO_DISARM_AUTOBRAKE_SECS), - ) - .starting_as(context.is_in_flight(), false), - should_reject_max_mode_after_time_in_flight: DelayedTrueLogicGate::new( - Duration::from_secs_f64(Self::DURATION_OF_FLIGHT_TO_DISARM_AUTOBRAKE_SECS), - ) - .starting_as(context.is_in_flight()), - external_disarm_event: false, - } - } - - fn spoilers_retracted_during_this_update(&self) -> bool { - !self.ground_spoilers_are_deployed && self.last_ground_spoilers_are_deployed - } - - fn brake_output(&self) -> Ratio { - Ratio::new::(self.deceleration_governor.output()) - } - - fn determine_mode( - &mut self, - context: &UpdateContext, - autobrake_panel: &AutobrakePanel, - ) -> AutobrakeMode { - if self.should_disarm(context) { - AutobrakeMode::NONE - } else { - match autobrake_panel.pressed_mode() { - Some(mode) if self.mode == mode => AutobrakeMode::NONE, - Some(mode) - if mode != AutobrakeMode::MAX - || !self.should_reject_max_mode_after_time_in_flight.output() => - { - mode - } - Some(_) | None => self.mode, - } - } - } - - fn should_engage_deceleration_governor(&self, context: &UpdateContext) -> bool { - self.is_armed() && self.ground_spoilers_are_deployed && !self.should_disarm(context) - } - - fn is_armed(&self) -> bool { - self.mode != AutobrakeMode::NONE - } - - fn is_decelerating(&self) -> bool { - match self.mode { - AutobrakeMode::NONE => false, - AutobrakeMode::LOW | AutobrakeMode::MED => { - self.deceleration_demanded() - && self - .deceleration_governor - .is_on_target(Ratio::new::( - Self::MARGIN_PERCENT_TO_TARGET_TO_SHOW_DECEL_IN_LO_MED, - )) - } - _ => { - self.deceleration_demanded() - && self.deceleration_governor.decelerating_at_or_above_rate( - Acceleration::new::( - Self::TARGET_TO_SHOW_DECEL_IN_MAX_MS2, - ), - ) - } - } - } - - fn deceleration_demanded(&self) -> bool { - self.deceleration_governor.is_engaged() - && self.target.get::() < 0. - } - - fn should_disarm_due_to_pedal_input(&self) -> bool { - match self.mode { - AutobrakeMode::NONE => false, - AutobrakeMode::LOW | AutobrakeMode::MED => { - self.left_brake_pedal_input > Ratio::new::(53.) - || self.right_brake_pedal_input > Ratio::new::(53.) - || (self.left_brake_pedal_input > Ratio::new::(11.) - && self.right_brake_pedal_input > Ratio::new::(11.)) - } - AutobrakeMode::MAX => { - self.left_brake_pedal_input > Ratio::new::(77.) - || self.right_brake_pedal_input > Ratio::new::(77.) - || (self.left_brake_pedal_input > Ratio::new::(53.) - && self.right_brake_pedal_input > Ratio::new::(53.)) - } - _ => false, - } - } - - fn should_disarm(&self, context: &UpdateContext) -> bool { - // when a simulation is started in flight, some values need to be ignored for a certain time to ensure - // an unintended disarm is not happening - (self.deceleration_governor.is_engaged() && self.should_disarm_due_to_pedal_input()) - || (context.is_sim_ready() && !self.arming_is_allowed_by_bcu) - || self.spoilers_retracted_during_this_update() - || self.should_disarm_after_time_in_flight.output() - || self.external_disarm_event - || (self.mode == AutobrakeMode::MAX - && self.should_reject_max_mode_after_time_in_flight.output()) - } - - fn calculate_target(&mut self) -> Acceleration { - Acceleration::new::(match self.mode { - AutobrakeMode::NONE => Self::OFF_MODE_DECEL_TARGET_MS2, - AutobrakeMode::LOW => interpolation( - &Self::LOW_MODE_DECEL_PROFILE_TIME_S, - &Self::LOW_MODE_DECEL_PROFILE_ACCEL_MS2, - self.deceleration_governor.time_engaged().as_secs_f64(), - ), - AutobrakeMode::MED => interpolation( - &Self::MED_MODE_DECEL_PROFILE_TIME_S, - &Self::MED_MODE_DECEL_PROFILE_ACCEL_MS2, - self.deceleration_governor.time_engaged().as_secs_f64(), - ), - AutobrakeMode::MAX => Self::MAX_MODE_DECEL_TARGET_MS2, - _ => Self::OFF_MODE_DECEL_TARGET_MS2, - }) - } - - fn update_input_conditions( - &mut self, - context: &UpdateContext, - allow_arming: bool, - pedal_input_left: Ratio, - pedal_input_right: Ratio, - lgciu1: &impl LgciuInterface, - lgciu2: &impl LgciuInterface, - ) { - let in_flight_lgciu1 = - !lgciu1.right_gear_compressed(false) && !lgciu1.left_gear_compressed(false); - let in_flight_lgciu2 = - !lgciu2.right_gear_compressed(false) && !lgciu2.left_gear_compressed(false); - - self.should_disarm_after_time_in_flight - .update(context, in_flight_lgciu1 && in_flight_lgciu2); - self.should_reject_max_mode_after_time_in_flight - .update(context, in_flight_lgciu1 && in_flight_lgciu2); - - self.arming_is_allowed_by_bcu = allow_arming; - self.left_brake_pedal_input = pedal_input_left; - self.right_brake_pedal_input = pedal_input_right; - } - - fn update( - &mut self, - context: &UpdateContext, - autobrake_panel: &AutobrakePanel, - allow_arming: bool, - pedal_input_left: Ratio, - pedal_input_right: Ratio, - lgciu1: &impl LgciuInterface, - lgciu2: &impl LgciuInterface, - ) { - self.update_input_conditions( - context, - allow_arming, - pedal_input_left, - pedal_input_right, - lgciu1, - lgciu2, - ); - self.mode = self.determine_mode(context, autobrake_panel); - - self.deceleration_governor - .engage_when(self.should_engage_deceleration_governor(context)); - - self.target = self.calculate_target(); - self.deceleration_governor.update(context, self.target); - } -} -impl SimulationElement for A380AutobrakeController { - fn write(&self, writer: &mut SimulatorWriter) { - writer.write(&self.armed_mode_id, self.mode as u8 as f64); - writer.write(&self.armed_mode_id_set, -1.); - writer.write(&self.decel_light_id, self.is_decelerating()); - writer.write(&self.active_id, self.deceleration_demanded()); - } - - fn read(&mut self, reader: &mut SimulatorReader) { - self.last_ground_spoilers_are_deployed = self.ground_spoilers_are_deployed; - let sec_1_gnd_splrs_out = reader.read(&self.ground_spoilers_out_sec1_id); - let sec_2_gnd_splrs_out = reader.read(&self.ground_spoilers_out_sec2_id); - let sec_3_gnd_splrs_out = reader.read(&self.ground_spoilers_out_sec3_id); - self.ground_spoilers_are_deployed = sec_1_gnd_splrs_out - && (sec_3_gnd_splrs_out || sec_2_gnd_splrs_out) - || (sec_2_gnd_splrs_out && sec_3_gnd_splrs_out); - self.external_disarm_event = reader.read(&self.external_disarm_event_id); - - // Reading current mode in sim to initialize correct mode if sim changes it (from .FLT files for example) - let readed_mode = reader.read_f64(&self.armed_mode_id_set); - if readed_mode >= 0.0 { - self.mode = readed_mode.into(); - } - } -} - pub(super) struct A380HydraulicOverheadPanel { edp1a_push_button: AutoOffFaultPushButton, edp2a_push_button: AutoOffFaultPushButton, @@ -6534,6 +6275,11 @@ impl SpoilerGroup { fn positions(&self) -> &[f64; 8] { &self.spoiler_positions } + + fn ground_spoilers_are_requested(&self) -> bool { + self.hydraulic_controllers[0].requested_position() > Ratio::new::(0.1) + && self.hydraulic_controllers[1].requested_position() > Ratio::new::(0.1) + } } impl SimulationElement for SpoilerGroup { fn accept(&mut self, visitor: &mut T) { @@ -6731,6 +6477,8 @@ mod tests { mod a380_hydraulics { use super::*; use rstest::rstest; + + use autobrakes::A380AutobrakeMode; use systems::{ electrical::{ test::TestElectricitySource, ElectricalBus, Electricity, ElectricitySource, @@ -6740,7 +6488,10 @@ mod tests { failures::FailureType, hydraulic::cargo_doors::{DoorControlState, HydraulicDoorController}, landing_gear::{GearSystemState, LandingGear, LandingGearControlInterfaceUnitSet}, - shared::{EmergencyElectricalState, LgciuId, PotentialOrigin}, + shared::{ + arinc429::{Arinc429Word, SignStatus}, + EmergencyElectricalState, LgciuId, PotentialOrigin, + }, simulation::{ test::{ReadByName, SimulationTestBed, TestBed, WriteByName}, Aircraft, InitContext, @@ -6754,13 +6505,24 @@ mod tests { ratio::{percent, ratio}, }; - #[derive(Default)] struct A380TestAdirus { airspeed: Velocity, + any_aligned: bool, } impl A380TestAdirus { + fn default() -> Self { + Self { + airspeed: Velocity::default(), + any_aligned: true, + } + } + fn update(&mut self, context: &UpdateContext) { - self.airspeed = context.true_airspeed() + self.airspeed = context.true_airspeed(); + } + + fn set_aligned(&mut self, is_aligned: bool) { + self.any_aligned = is_aligned; } } impl AdirsDiscreteOutputs for A380TestAdirus { @@ -6780,6 +6542,30 @@ mod tests { self.airspeed.get::() > 260. } } + impl AdirsMeasurementOutputs for A380TestAdirus { + fn is_fully_aligned(&self, _: usize) -> bool { + self.any_aligned + } + + fn latitude(&self, _adiru_number: usize) -> Arinc429Word { + Arinc429Word::new(Angle::default(), SignStatus::NormalOperation) + } + fn longitude(&self, _adiru_number: usize) -> Arinc429Word { + Arinc429Word::new(Angle::default(), SignStatus::NormalOperation) + } + fn heading(&self, _adiru_number: usize) -> Arinc429Word { + Arinc429Word::new(Angle::default(), SignStatus::NormalOperation) + } + fn true_heading(&self, _adiru_number: usize) -> Arinc429Word { + Arinc429Word::new(Angle::default(), SignStatus::NormalOperation) + } + fn vertical_speed(&self, _adiru_number: usize) -> Arinc429Word { + Arinc429Word::new(Velocity::default(), SignStatus::NormalOperation) + } + fn altitude(&self, _adiru_number: usize) -> Arinc429Word { + Arinc429Word::new(Length::default(), SignStatus::NormalOperation) + } + } struct A380TestPneumatics { pressure: Pressure, @@ -6848,7 +6634,7 @@ mod tests { engine_4: TrentEngine, hydraulics: A380Hydraulic, overhead: A380HydraulicOverheadPanel, - autobrake_panel: AutobrakePanel, + autobrake_panel: A380AutobrakePanel, engine_fire_overhead: EngineFireOverheadPanel<4>, landing_gear: LandingGear, @@ -6897,7 +6683,7 @@ mod tests { engine_4: TrentEngine::new(context, 4), hydraulics: A380Hydraulic::new(context), overhead: A380HydraulicOverheadPanel::new(context), - autobrake_panel: AutobrakePanel::new(context), + autobrake_panel: A380AutobrakePanel::new(context), engine_fire_overhead: EngineFireOverheadPanel::new(context), landing_gear: LandingGear::new(context), lgcius: LandingGearControlInterfaceUnitSet::new( @@ -6959,6 +6745,10 @@ mod tests { } } + fn set_adirs_alignement(&mut self, is_aligned: bool) { + self.adirus.set_aligned(is_aligned) + } + fn is_green_edp_commanded_on(&self) -> bool { self.hydraulics .engine_driven_pump_1a_controller @@ -7222,6 +7012,10 @@ mod tests { self } + fn set_adirs_not_aligned(&mut self) { + self.command(|a| a.set_adirs_alignement(false)); + } + fn is_green_edp_commanded_on(&self) -> bool { self.query(|a| a.is_green_edp_commanded_on()) } @@ -7310,7 +7104,7 @@ mod tests { self.read_by_name("HYD_GREEN_RESERVOIR_LEVEL") } - fn autobrake_mode(&mut self) -> AutobrakeMode { + fn autobrake_mode(&mut self) -> A380AutobrakeMode { ReadByName::::read_by_name( self, "AUTOBRAKES_ARMED_MODE", @@ -7494,6 +7288,11 @@ mod tests { .external_power(false) } + fn adirs_not_aligned(mut self) -> Self { + self.set_adirs_not_aligned(); + self + } + fn sim_not_ready(mut self) -> Self { self.set_sim_is_ready(false); self @@ -7870,44 +7669,35 @@ mod tests { self } - fn set_autobrake_disarmed_with_set_variable(mut self) -> Self { - self.write_by_name("AUTOBRAKES_ARMED_MODE_SET", 0); + fn set_autobrake_btv(mut self) -> Self { + self.write_by_name("AUTOBRAKES_SELECTED_MODE", 1.); self } - fn set_autobrake_low_with_set_variable(mut self) -> Self { - self.write_by_name("AUTOBRAKES_ARMED_MODE_SET", 1); + fn set_autobrake_low(mut self) -> Self { + self.write_by_name("AUTOBRAKES_SELECTED_MODE", 2.); self } - fn set_autobrake_med_with_set_variable(mut self) -> Self { - self.write_by_name("AUTOBRAKES_ARMED_MODE_SET", 2); + fn set_autobrake_l2(mut self) -> Self { + self.write_by_name("AUTOBRAKES_SELECTED_MODE", 3.); self } - fn set_autobrake_max_with_set_variable(mut self) -> Self { - self.write_by_name("AUTOBRAKES_ARMED_MODE_SET", 3); + fn set_autobrake_l3(mut self) -> Self { + self.write_by_name("AUTOBRAKES_SELECTED_MODE", 4.); self } - fn set_autobrake_low(mut self) -> Self { - self.write_by_name("OVHD_AUTOBRK_LOW_ON_IS_PRESSED", true); - self = self.run_one_tick(); - self.write_by_name("OVHD_AUTOBRK_LOW_ON_IS_PRESSED", false); + fn set_autobrake_high(mut self) -> Self { + self.write_by_name("AUTOBRAKES_SELECTED_MODE", 5.); self } - fn set_autobrake_med(mut self) -> Self { - self.write_by_name("OVHD_AUTOBRK_MED_ON_IS_PRESSED", true); + fn set_autobrake_rto(mut self) -> Self { + self.write_by_name("OVHD_AUTOBRK_RTO_ARM_IS_PRESSED", true); self = self.run_one_tick(); - self.write_by_name("OVHD_AUTOBRK_MED_ON_IS_PRESSED", false); - self - } - - fn set_autobrake_max(mut self) -> Self { - self.write_by_name("OVHD_AUTOBRK_MAX_ON_IS_PRESSED", true); - self = self.run_one_tick(); - self.write_by_name("OVHD_AUTOBRK_MAX_ON_IS_PRESSED", false); + self.write_by_name("OVHD_AUTOBRK_RTO_ARM_IS_PRESSED", false); self } @@ -7922,16 +7712,14 @@ mod tests { } fn set_deploy_ground_spoilers(mut self) -> Self { - self.write_by_name("SEC_1_GROUND_SPOILER_OUT", true); - self.write_by_name("SEC_2_GROUND_SPOILER_OUT", true); - self.write_by_name("SEC_3_GROUND_SPOILER_OUT", true); + self = self.set_right_spoilers_out(); + self = self.set_left_spoilers_out(); self } fn set_retract_ground_spoilers(mut self) -> Self { - self.write_by_name("SEC_1_GROUND_SPOILER_OUT", false); - self.write_by_name("SEC_2_GROUND_SPOILER_OUT", false); - self.write_by_name("SEC_3_GROUND_SPOILER_OUT", false); + self = self.set_right_spoilers_in(); + self = self.set_left_spoilers_in(); self } @@ -8167,7 +7955,7 @@ mod tests { self } - fn _set_right_spoilers_in(mut self) -> Self { + fn set_right_spoilers_in(mut self) -> Self { self = self._set_right_spoiler_in(1); self = self._set_right_spoiler_in(2); self = self._set_right_spoiler_in(3); @@ -8191,7 +7979,7 @@ mod tests { self } - fn _set_left_spoilers_in(mut self) -> Self { + fn set_left_spoilers_in(mut self) -> Self { self = self._set_left_spoiler_in(1); self = self._set_left_spoiler_in(2); self = self._set_left_spoiler_in(3); @@ -9561,70 +9349,43 @@ mod tests { } #[test] - fn autobrakes_arms_in_flight_lo_or_med() { + fn autobrakes_arms_in_flight_btv_to_hi() { let mut test_bed = test_bed_on_ground_with() .set_cold_dark_inputs() .in_flight() .set_gear_lever_up() .run_waiting_for(Duration::from_secs(12)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); test_bed = test_bed - .set_autobrake_low() + .set_autobrake_btv() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::LOW); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::BTV); test_bed = test_bed - .set_autobrake_med() + .set_autobrake_low() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); - } - - #[test] - fn autobrakes_arming_according_to_set_variable() { - let mut test_bed = test_bed_on_ground_with() - .set_cold_dark_inputs() - .on_the_ground() - .set_park_brake(false) - .start_eng1(Ratio::new::(100.)) - .start_eng2(Ratio::new::(100.)) - .run_waiting_for(Duration::from_secs(10)); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::LOW); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); - - // set autobrake to LOW test_bed = test_bed - .set_autobrake_low_with_set_variable() + .set_autobrake_l2() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::LOW); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L2); - // using the set variable again is still resulting in LOW - // and not disarming test_bed = test_bed - .set_autobrake_low_with_set_variable() + .set_autobrake_l3() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::LOW); - // set autobrake to MED - test_bed = test_bed - .set_autobrake_med_with_set_variable() - .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); - // set autobrake to MAX test_bed = test_bed - .set_autobrake_max_with_set_variable() + .set_autobrake_high() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); - // set autobrake to DISARMED - test_bed = test_bed - .set_autobrake_disarmed_with_set_variable() - .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::HIGH); } #[test] @@ -9636,25 +9397,25 @@ mod tests { .set_gear_lever_up() .run_waiting_for(Duration::from_secs(12)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); test_bed = test_bed - .set_autobrake_med() + .set_autobrake_l3() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); // sim is not ready --> no disarm test_bed = test_bed .set_anti_skid(false) .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); // sim is now ready --> disarm expected test_bed = test_bed.sim_ready().run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); } #[test] @@ -9665,43 +9426,36 @@ mod tests { .set_gear_lever_up() .run_waiting_for(Duration::from_secs(12)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); test_bed = test_bed - .set_autobrake_med() + .set_autobrake_l3() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); test_bed = test_bed .set_anti_skid(false) .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); } #[test] - fn autobrakes_max_wont_arm_in_flight() { + fn autobrakes_rto_wont_arm_in_flight() { let mut test_bed = test_bed_on_ground_with() .set_cold_dark_inputs() .in_flight() .set_gear_lever_up() .run_waiting_for(Duration::from_secs(15)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); - - test_bed = test_bed - .set_autobrake_max() - .run_waiting_for(Duration::from_secs(1)); - - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); - // using the set variable should also not work test_bed = test_bed - .set_autobrake_max_with_set_variable() + .set_autobrake_rto() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); } #[test] @@ -9714,17 +9468,17 @@ mod tests { .run_waiting_for(Duration::from_secs(10)); test_bed = test_bed - .set_autobrake_max() + .set_autobrake_rto() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); test_bed = test_bed .set_right_brake(Ratio::new::(100.)) .set_left_brake(Ratio::new::(100.)) .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); } #[test] @@ -9738,16 +9492,16 @@ mod tests { .run_waiting_for(Duration::from_secs(10)); test_bed = test_bed - .set_autobrake_max() + .set_autobrake_rto() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); test_bed = test_bed .set_deploy_ground_spoilers() .run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); assert!(test_bed.get_brake_left_green_pressure() > Pressure::new::(1000.)); assert!(test_bed.get_brake_right_green_pressure() > Pressure::new::(1000.)); @@ -9766,29 +9520,29 @@ mod tests { .run_waiting_for(Duration::from_secs(10)); test_bed = test_bed - .set_autobrake_max() + .set_autobrake_rto() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); test_bed = test_bed .set_deploy_ground_spoilers() .run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); test_bed = test_bed .set_retract_ground_spoilers() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); assert!(test_bed.get_brake_left_green_pressure() < Pressure::new::(50.)); assert!(test_bed.get_brake_right_green_pressure() < Pressure::new::(50.)); } #[test] // Should disable with one pedal > 61° over max range of 79.4° thus 77% - fn autobrakes_max_disengage_at_77_on_one_pedal_input() { + fn autobrakes_rto_disengage_at_77_on_one_pedal_input() { let mut test_bed = test_bed_on_ground_with() .set_cold_dark_inputs() .on_the_ground() @@ -9798,16 +9552,16 @@ mod tests { .run_waiting_for(Duration::from_secs(10)); test_bed = test_bed - .set_autobrake_max() + .set_autobrake_rto() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); test_bed = test_bed .set_deploy_ground_spoilers() .run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); assert!(test_bed.get_brake_left_green_pressure() > Pressure::new::(1000.)); assert!(test_bed.get_brake_right_green_pressure() > Pressure::new::(1000.)); @@ -9817,7 +9571,7 @@ mod tests { .set_left_brake(Ratio::new::(0.)) .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); assert!(test_bed.get_brake_left_green_pressure() > Pressure::new::(1000.)); assert!(test_bed.get_brake_right_green_pressure() > Pressure::new::(1000.)); @@ -9827,14 +9581,14 @@ mod tests { .set_left_brake(Ratio::new::(0.)) .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); assert!(test_bed.get_brake_left_green_pressure() < Pressure::new::(50.)); assert!(test_bed.get_brake_right_green_pressure() < Pressure::new::(50.)); } #[test] // Should disable with one pedals > 42° over max range of 79.4° thus 52% - fn autobrakes_med_disengage_at_52_on_one_pedal_input() { + fn autobrakes_l3_disengage_at_52_on_one_pedal_input() { let mut test_bed = test_bed_on_ground_with() .set_cold_dark_inputs() .on_the_ground() @@ -9844,16 +9598,16 @@ mod tests { .run_waiting_for(Duration::from_secs(10)); test_bed = test_bed - .set_autobrake_med() + .set_autobrake_l3() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); test_bed = test_bed .set_deploy_ground_spoilers() .run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); assert!(test_bed.get_brake_left_green_pressure() > Pressure::new::(1000.)); assert!(test_bed.get_brake_right_green_pressure() > Pressure::new::(1000.)); @@ -9863,7 +9617,7 @@ mod tests { .set_right_brake(Ratio::new::(0.)) .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); assert!(test_bed.get_brake_left_green_pressure() > Pressure::new::(1000.)); assert!(test_bed.get_brake_right_green_pressure() > Pressure::new::(1000.)); @@ -9873,13 +9627,13 @@ mod tests { .set_right_brake(Ratio::new::(0.)) .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); assert!(test_bed.get_brake_left_green_pressure() < Pressure::new::(50.)); assert!(test_bed.get_brake_right_green_pressure() < Pressure::new::(50.)); } #[test] - fn autobrakes_max_disarm_after_10s_in_flight() { + fn autobrakes_rto_disarm_after_10s_in_flight() { let mut test_bed = test_bed_on_ground_with() .set_cold_dark_inputs() .on_the_ground() @@ -9889,18 +9643,18 @@ mod tests { .run_waiting_for(Duration::from_secs(10)); test_bed = test_bed - .set_autobrake_max() + .set_autobrake_rto() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); test_bed = test_bed.in_flight().run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MAX); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::RTO); test_bed = test_bed.in_flight().run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::NONE); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); } #[test] @@ -9911,18 +9665,41 @@ mod tests { .run_waiting_for(Duration::from_secs(1)); test_bed = test_bed - .set_autobrake_med_with_set_variable() + .set_autobrake_l3() .run_waiting_for(Duration::from_secs(1)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); test_bed = test_bed.in_flight().run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); test_bed = test_bed.in_flight().run_waiting_for(Duration::from_secs(6)); - assert!(test_bed.autobrake_mode() == AutobrakeMode::MED); + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); + } + + #[test] + fn autobrakes_disarm_if_no_adirs() { + let mut test_bed = test_bed_in_flight_with() + .set_cold_dark_inputs() + .on_the_ground() + .set_park_brake(false) + .start_eng1(Ratio::new::(100.)) + .start_eng2(Ratio::new::(100.)) + .run_waiting_for(Duration::from_secs(10)); + + test_bed = test_bed + .set_autobrake_l3() + .run_waiting_for(Duration::from_secs(1)); + + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::L3); + + test_bed = test_bed + .adirs_not_aligned() + .run_waiting_for(Duration::from_secs(1)); + + assert!(test_bed.autobrake_mode() == A380AutobrakeMode::DISARM); } #[test] diff --git a/fbw-a380x/src/wasm/systems/a380_systems/src/lib.rs b/fbw-a380x/src/wasm/systems/a380_systems/src/lib.rs index 0b1f32ddbd0..fe42075358f 100644 --- a/fbw-a380x/src/wasm/systems/a380_systems/src/lib.rs +++ b/fbw-a380x/src/wasm/systems/a380_systems/src/lib.rs @@ -29,12 +29,12 @@ use electrical::{ APU_START_MOTOR_BUS_TYPE, }; use fuel::FuelLevel; -use hydraulic::{A380Hydraulic, A380HydraulicOverheadPanel}; +use hydraulic::{autobrakes::A380AutobrakePanel, A380Hydraulic, A380HydraulicOverheadPanel}; use icing::Icing; use navigation::A380RadioAltimeters; use payload::A380Payload; use power_consumption::A380PowerConsumption; -use uom::si::{f64::Length, length::nautical_mile}; +use uom::si::{f64::Length, length::nautical_mile, quantities::Velocity, velocity::knot}; use systems::{ accept_iterable, @@ -45,12 +45,11 @@ use systems::{ electrical::{Electricity, ElectricitySource, ExternalPowerSource}, engine::{trent_engine::TrentEngine, EngineFireOverheadPanel}, enhanced_gpwc::EnhancedGroundProximityWarningComputer, - hydraulic::brake_circuit::AutobrakePanel, landing_gear::{LandingGear, LandingGearControlInterfaceUnitSet}, navigation::adirs::{ AirDataInertialReferenceSystem, AirDataInertialReferenceSystemOverheadPanel, }, - shared::ElectricalBusType, + shared::{ElectricalBusType, MachNumber}, simulation::{ Aircraft, InitContext, SimulationElement, SimulationElementVisitor, UpdateContext, }, @@ -83,7 +82,7 @@ pub struct A380 { lgcius: LandingGearControlInterfaceUnitSet, hydraulic: A380Hydraulic, hydraulic_overhead: A380HydraulicOverheadPanel, - autobrake_panel: AutobrakePanel, + autobrake_panel: A380AutobrakePanel, landing_gear: LandingGear, pneumatic: A380Pneumatic, radio_altimeters: A380RadioAltimeters, @@ -100,7 +99,11 @@ impl A380 { A380 { adcn, adcn_simvar_translation, - adirs: AirDataInertialReferenceSystem::new(context), + adirs: AirDataInertialReferenceSystem::new( + context, + Velocity::new::(340.), + MachNumber(0.89), + ), adirs_overhead: AirDataInertialReferenceSystemOverheadPanel::new(context), air_conditioning: A380AirConditioning::new(context), apu: AuxiliaryPowerUnitFactory::new_pw980( @@ -133,7 +136,7 @@ impl A380 { ), hydraulic: A380Hydraulic::new(context), hydraulic_overhead: A380HydraulicOverheadPanel::new(context), - autobrake_panel: AutobrakePanel::new(context), + autobrake_panel: A380AutobrakePanel::new(context), landing_gear: LandingGear::new(context), pneumatic: A380Pneumatic::new(context), radio_altimeters: A380RadioAltimeters::new(context), diff --git a/fbw-a380x/src/wasm/systems/a380_systems_wasm/src/autobrakes.rs b/fbw-a380x/src/wasm/systems/a380_systems_wasm/src/autobrakes.rs index effcdcd7cfc..74b2ed4b377 100644 --- a/fbw-a380x/src/wasm/systems/a380_systems_wasm/src/autobrakes.rs +++ b/fbw-a380x/src/wasm/systems/a380_systems_wasm/src/autobrakes.rs @@ -4,97 +4,85 @@ use systems_wasm::aspects::{EventToVariableMapping, EventToVariableOptions, Msfs use systems_wasm::Variable; pub(super) fn autobrakes(builder: &mut MsfsAspectBuilder) -> Result<(), Box> { - let options = |options: EventToVariableOptions| { + let option_button_press = |options: EventToVariableOptions| { options .leading_debounce(Duration::from_millis(1500)) .afterwards_reset_to(0.) }; + let option_knob_event = + |options: EventToVariableOptions| options.leading_debounce(Duration::from_millis(1500)); + // Mapping msfs 320 bindings to some 380 modes + // LO -> LO / MED -> BRK 3 / HI -> RTO builder.event_to_variable( "AUTOBRAKE_LO_SET", - EventToVariableMapping::Value(1.), - Variable::named("OVHD_AUTOBRK_LOW_ON_IS_PRESSED"), - options, + EventToVariableMapping::Value(2.), + Variable::named("AUTOBRAKES_SELECTED_MODE"), + option_knob_event, )?; builder.event_to_variable( "AUTOBRAKE_MED_SET", - EventToVariableMapping::Value(1.), - Variable::named("OVHD_AUTOBRK_MED_ON_IS_PRESSED"), - options, + EventToVariableMapping::Value(4.), + Variable::named("AUTOBRAKES_SELECTED_MODE"), + option_knob_event, )?; builder.event_to_variable( "AUTOBRAKE_HI_SET", EventToVariableMapping::Value(1.), - Variable::named("OVHD_AUTOBRK_MAX_ON_IS_PRESSED"), - options, + Variable::named("OVHD_AUTOBRK_RTO_ARM_IS_PRESSED"), + option_button_press, )?; builder.event_to_variable( - "AUTOBRAKE_DISARM", + "A32NX.AUTO_THROTTLE_DISCONNECT", EventToVariableMapping::Value(1.), Variable::named("AUTOBRAKE_DISARM"), - |options| options.afterwards_reset_to(0.), + option_button_press, )?; - let options_set = |options: EventToVariableOptions| { - options - .leading_debounce(Duration::from_millis(125)) - .afterwards_reset_to(-1.) - }; + let options_set = + |options: EventToVariableOptions| options.leading_debounce(Duration::from_millis(125)); builder.event_to_variable( "A32NX.AUTOBRAKE_SET", EventToVariableMapping::EventDataToValue(|event_data| event_data as f64), - Variable::named("AUTOBRAKES_ARMED_MODE_SET"), + Variable::named("AUTOBRAKES_SELECTED_MODE"), options_set, )?; builder.event_to_variable( "A32NX.AUTOBRAKE_SET_DISARM", EventToVariableMapping::Value(0.), - Variable::named("AUTOBRAKES_ARMED_MODE_SET"), + Variable::named("AUTOBRAKES_SELECTED_MODE"), options_set, )?; builder.event_to_variable( - "A32NX.AUTOBRAKE_SET_LO", + "A32NX.AUTOBRAKE_SET_BTV", EventToVariableMapping::Value(1.), - Variable::named("AUTOBRAKES_ARMED_MODE_SET"), + Variable::named("AUTOBRAKES_SELECTED_MODE"), options_set, )?; builder.event_to_variable( - "A32NX.AUTOBRAKE_SET_MED", + "A32NX.AUTOBRAKE_SET_LO", EventToVariableMapping::Value(2.), - Variable::named("AUTOBRAKES_ARMED_MODE_SET"), + Variable::named("AUTOBRAKES_SELECTED_MODE"), options_set, )?; builder.event_to_variable( - "A32NX.AUTOBRAKE_SET_MAX", + "A32NX.AUTOBRAKE_SET_L2", EventToVariableMapping::Value(3.), - Variable::named("AUTOBRAKES_ARMED_MODE_SET"), + Variable::named("AUTOBRAKES_SELECTED_MODE"), options_set, )?; - - let options_buttons = |options: EventToVariableOptions| { - options - .leading_debounce(Duration::from_millis(125)) - .afterwards_reset_to(0.) - }; - - builder.event_to_variable( - "A32NX.AUTOBRAKE_BUTTON_LO", - EventToVariableMapping::Value(1.), - Variable::named("OVHD_AUTOBRK_LOW_ON_IS_PRESSED"), - options_buttons, - )?; builder.event_to_variable( - "A32NX.AUTOBRAKE_BUTTON_MED", - EventToVariableMapping::Value(1.), - Variable::named("OVHD_AUTOBRK_MED_ON_IS_PRESSED"), - options_buttons, + "A32NX.AUTOBRAKE_SET_L3", + EventToVariableMapping::Value(4.), + Variable::named("AUTOBRAKES_SELECTED_MODE"), + options_set, )?; builder.event_to_variable( - "A32NX.AUTOBRAKE_BUTTON_MAX", - EventToVariableMapping::Value(1.), - Variable::named("OVHD_AUTOBRK_MAX_ON_IS_PRESSED"), - options_buttons, + "A32NX.AUTOBRAKE_SET_HI", + EventToVariableMapping::Value(5.), + Variable::named("AUTOBRAKES_SELECTED_MODE"), + options_set, )?; Ok(()) diff --git a/fbw-common/src/systems/instruments/src/EFB/Assets/FuelOutline.tsx b/fbw-common/src/systems/instruments/src/EFB/Assets/FuelOutline.tsx index a5c4ac1a014..2ba0da1e74e 100644 --- a/fbw-common/src/systems/instruments/src/EFB/Assets/FuelOutline.tsx +++ b/fbw-common/src/systems/instruments/src/EFB/Assets/FuelOutline.tsx @@ -37,12 +37,13 @@ const AnimatedLinearGradient = ({ id, percent, color, duration, enableDynamic }) ); }; -export const A380FuelOutline = ({ className, feed1Percent, feed2Percent, feed3Percent, feed4Percent, leftInnerPercent, leftMidPercent, leftOuterPercent, rightInnerPercent, rightMidPercent, rightOuterPercent, trimPercent }: { +export const A380FuelOutline = ({ className, feed1Percent, feed2Percent, feed3Percent, feed4Percent, leftInnerPercent, leftMidPercent, leftOuterPercent, rightInnerPercent, rightMidPercent, rightOuterPercent, trimPercent, enableDynamic }: { className: string, feed1Percent: number, feed2Percent: number, feed3Percent: number, feed4Percent: number, leftInnerPercent: number, leftMidPercent: number, leftOuterPercent: number, rightInnerPercent: number, rightMidPercent: number, rightOuterPercent: number, - trimPercent: number + trimPercent: number, + enableDynamic: boolean }) => ( @@ -51,17 +52,17 @@ export const A380FuelOutline = ({ className, feed1Percent, feed2Percent, feed3Pe '.cls-1, .cls-2, .cls-3, .cls-4 { stroke-miterlimit: 10; } .cls-2 { stroke-width: 3px; } .cls-3 { stroke-width: 2px; } .cls-4 { stroke-width: .5px; }' } - - - - - - - - - - - + + + + + + + + + + + @@ -197,39 +198,4 @@ export const A380FuelOutline = ({ className, feed1Percent, feed2Percent, feed3Pe - - /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ ); diff --git a/fbw-common/src/systems/instruments/src/EFB/Dashboard/Widgets/WeatherWidget.tsx b/fbw-common/src/systems/instruments/src/EFB/Dashboard/Widgets/WeatherWidget.tsx index dce8b00278b..648e21b3958 100644 --- a/fbw-common/src/systems/instruments/src/EFB/Dashboard/Widgets/WeatherWidget.tsx +++ b/fbw-common/src/systems/instruments/src/EFB/Dashboard/Widgets/WeatherWidget.tsx @@ -122,7 +122,7 @@ export const WeatherWidget: FC = ({ name, simbriefIcao, user }; async function getMetar(icao: string, source: string): Promise { - if (icao.length !== 4 || icao === '----') { + if (icao.length !== 4 || !(/^[a-z]{4}$/i.test(icao))) { setErrorMetar(t('Dashboard.ImportantInformation.Weather.NoIcaoProvided')); dispatch(setMetar(MetarParserTypeProp)); return Promise.resolve(); diff --git a/fbw-common/src/systems/instruments/src/EFB/Ground/Pages/Fuel/A380_842/A380Fuel.tsx b/fbw-common/src/systems/instruments/src/EFB/Ground/Pages/Fuel/A380_842/A380Fuel.tsx index 4399c56adf8..e5fec76d365 100644 --- a/fbw-common/src/systems/instruments/src/EFB/Ground/Pages/Fuel/A380_842/A380Fuel.tsx +++ b/fbw-common/src/systems/instruments/src/EFB/Ground/Pages/Fuel/A380_842/A380Fuel.tsx @@ -487,6 +487,7 @@ export const A380Fuel: React.FC = ({ rightMidPercent={(Math.max(rightMidGal * FUEL_GALLONS_TO_KG, 0) / MID_TANK_MAX_KG) * 100} rightOuterPercent={(Math.max(rightOuterGal * FUEL_GALLONS_TO_KG, 0) / OUTER_TANK_MAX_KG) * 100} trimPercent={(Math.max(trimGal * FUEL_GALLONS_TO_KG, 0) / TRIM_TANK_MAX_KG) * 100} + enableDynamic={!eng1Running && !eng2Running && !eng3Running && !eng4Running || refuelStartedByUser} /> diff --git a/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/AtsuAocPage.tsx b/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/AtsuAocPage.tsx index e8bb62fa9f2..6c48c7d4a3f 100644 --- a/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/AtsuAocPage.tsx +++ b/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/AtsuAocPage.tsx @@ -22,8 +22,6 @@ export const AtsuAocPage = () => { const [tafSource, setTafSource] = usePersistentProperty('CONFIG_TAF_SRC', 'NOAA'); const [telexEnabled, setTelexEnabled] = usePersistentProperty('CONFIG_ONLINE_FEATURES_STATUS', 'DISABLED'); - const [autoSimbriefImport, setAutoSimbriefImport] = usePersistentProperty('CONFIG_AUTO_SIMBRIEF_IMPORT', 'DISABLED'); - const [hoppieEnabled, setHoppieEnabled] = usePersistentProperty('CONFIG_HOPPIE_ENABLED', 'DISABLED'); const [hoppieUserId, setHoppieUserId] = usePersistentProperty('CONFIG_HOPPIE_USERID'); @@ -187,10 +185,6 @@ export const AtsuAocPage = () => { - - setAutoSimbriefImport(toggleValue ? 'ENABLED' : 'DISABLED')} /> - - handleSentryToggle(toggleValue)} /> diff --git a/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/ThirdPartyOptionsPage.tsx b/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/ThirdPartyOptionsPage.tsx index e75dc3b878c..32ad4ef61fc 100644 --- a/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/ThirdPartyOptionsPage.tsx +++ b/fbw-common/src/systems/instruments/src/EFB/Settings/Pages/ThirdPartyOptionsPage.tsx @@ -26,6 +26,7 @@ export const ThirdPartyOptionsPage = () => { const [overrideSimbriefUserID, setOverrideSimbriefUserID] = usePersistentProperty('CONFIG_OVERRIDE_SIMBRIEF_USERID'); const [overrideSimbriefDisplay, setOverrideSimbriefDisplay] = useState(overrideSimbriefUserID); + const [autoSimbriefImport, setAutoSimbriefImport] = usePersistentProperty('CONFIG_AUTO_SIMBRIEF_IMPORT', 'DISABLED'); const getSimbriefUserData = async (value: string): Promise => { const SIMBRIEF_URL = 'https://www.simbrief.com/api/xml.fetcher.php?json=1'; @@ -153,6 +154,10 @@ export const ThirdPartyOptionsPage = () => { + + setAutoSimbriefImport(toggleValue ? 'ENABLED' : 'DISABLED')} /> + + () > 0. { - -total_force / context.total_weight() - } else { - Acceleration::default() - }; + self.plane_delta_acceleration_due_to_reverse_thrust = + if context.total_weight().get::() > 0. { + -total_force / context.total_weight() + } else { + Acceleration::default() + }; self.plane_delta_speed_due_to_reverse_thrust = Velocity::new::( - acceleration.get::() * context.delta_as_secs_f64(), + self.plane_delta_acceleration_due_to_reverse_thrust + .get::() + * context.delta_as_secs_f64(), ); let total_dissimetry = @@ -138,5 +145,11 @@ impl SimulationElement for ReverserForce { self.dissimetry_acceleration .get::(), ); + + writer.write( + &self.reverser_delta_accel_id, + self.plane_delta_acceleration_due_to_reverse_thrust + .get::(), + ); } } diff --git a/fbw-common/src/wasm/systems/systems/src/hydraulic/brake_circuit.rs b/fbw-common/src/wasm/systems/systems/src/hydraulic/brake_circuit.rs index 8601fa92a17..72971494956 100644 --- a/fbw-common/src/wasm/systems/systems/src/hydraulic/brake_circuit.rs +++ b/fbw-common/src/wasm/systems/systems/src/hydraulic/brake_circuit.rs @@ -426,9 +426,6 @@ pub enum AutobrakeMode { LOW = 1, MED = 2, MAX = 3, - HIGH = 4, - RTO = 5, - BTV = 6, } impl From for AutobrakeMode { fn from(value: f64) -> Self { @@ -437,9 +434,6 @@ impl From for AutobrakeMode { 1 => AutobrakeMode::LOW, 2 => AutobrakeMode::MED, 3 => AutobrakeMode::MAX, - 4 => AutobrakeMode::HIGH, - 5 => AutobrakeMode::RTO, - 6 => AutobrakeMode::BTV, _ => AutobrakeMode::NONE, } } diff --git a/fbw-common/src/wasm/systems/systems/src/navigation/adirs.rs b/fbw-common/src/wasm/systems/systems/src/navigation/adirs.rs index 12b577c404e..1d8e5209712 100644 --- a/fbw-common/src/wasm/systems/systems/src/navigation/adirs.rs +++ b/fbw-common/src/wasm/systems/systems/src/navigation/adirs.rs @@ -366,7 +366,7 @@ impl AirDataInertialReferenceSystem { // TODO this is an FMS thing, nothing to do with ADIRUs const USES_GPS_AS_PRIMARY_KEY: &'static str = "ADIRS_USES_GPS_AS_PRIMARY"; - pub fn new(context: &mut InitContext) -> Self { + pub fn new(context: &mut InitContext, vmo: Velocity, mmo: MachNumber) -> Self { Self { remaining_alignment_time_id: context .get_identifier(Self::REMAINING_ALIGNMENT_TIME_KEY.to_owned()), @@ -376,9 +376,9 @@ impl AirDataInertialReferenceSystem { .get_identifier(Self::USES_GPS_AS_PRIMARY_KEY.to_owned()), adirus: [ - AirDataInertialReferenceUnit::new(context, 1), - AirDataInertialReferenceUnit::new(context, 2), - AirDataInertialReferenceUnit::new(context, 3), + AirDataInertialReferenceUnit::new(context, 1, vmo, mmo), + AirDataInertialReferenceUnit::new(context, 2, vmo, mmo), + AirDataInertialReferenceUnit::new(context, 3, vmo, mmo), ], configured_align_time: AlignTime::Realistic, simulator_data: AdirsSimulatorData::new(context), @@ -516,10 +516,10 @@ struct AirDataInertialReferenceUnit { low_speed_warning_4_260kts: bool, } impl AirDataInertialReferenceUnit { - fn new(context: &mut InitContext, number: usize) -> Self { + fn new(context: &mut InitContext, number: usize, vmo: Velocity, mmo: MachNumber) -> Self { Self { state_id: context.get_identifier(Self::state_id(number)), - adr: AirDataReference::new(context, number), + adr: AirDataReference::new(context, number, vmo, mmo), ir: InertialReference::new(context, number), low_speed_warning_1_104kts: false, @@ -789,9 +789,37 @@ trait TrueAirspeedSource { fn true_airspeed(&self) -> Arinc429Word; } +bitflags! { + #[derive(Default)] + struct AdrDiscrete1Flags: u32 { + const ICING_DETECTOR_HEAT = 1; + const PITOT_HEAT = 1 << 1; + const ADR_STATUS_FAIL = 1 << 2; + const RIGHT_STATIC_HEAT = 1 << 3; + const LEFT_STATIC_HEAT = 1 << 4; + const TAT_HEAT = 1 << 5; + const AOA_1_SENSOR_HEAT = 1 << 6; + const AOA_2_SENSOR_HEAT = 1 << 7; + const OVERSPEED_WARNING = 1 << 8; + // spare bit + const AOA_AVERAGE_UNIQUE = 1 << 10; + const VMO_MMO_1 = 1 << 11; + const VMO_MMO_2 = 1 << 12; + const VMO_MMO_3 = 1 << 13; + const VMO_MMO_4 = 1 << 14; + const ALTERNATE_SSEC_A = 1 << 15; + const ALTERNATE_SSEC_B = 1 << 16; + const BARO_PORT_A = 1 << 17; + const ZERO_MACH_SSEC = 1 << 18; + } +} + struct AirDataReference { number: usize, + vmo: Velocity, + mmo: MachNumber, is_on: bool, + is_overspeed: bool, /// label 234 baro_correction_1_hpa: AdirsData, @@ -808,13 +836,18 @@ struct AirDataReference { baro_corrected_altitude_1: AdirsData, /// baro corrected altitude for the fo's side baro_corrected_altitude_2: AdirsData, + /// label 206, computed airspeed in knots, NCD below 30 knots. computed_airspeed: AdirsData, + /// label 207, max allowable airspeed in knots (considering both VMO and MMO). + max_airspeed: AdirsData, + /// label 205, computed mach number, NCD below mach 0.1. mach: AdirsData, barometric_vertical_speed: AdirsData, true_airspeed: AdirsData, static_air_temperature: AdirsData, total_air_temperature: AdirsData, angle_of_attack: AdirsData, + discrete_word_1: AdirsData, remaining_initialisation_duration: Option, } @@ -829,21 +862,27 @@ impl AirDataReference { const BARO_CORRECTED_ALTITUDE_1: &'static str = "BARO_CORRECTED_ALTITUDE_1"; const BARO_CORRECTED_ALTITUDE_2: &'static str = "BARO_CORRECTED_ALTITUDE_2"; const COMPUTED_AIRSPEED: &'static str = "COMPUTED_AIRSPEED"; + const MAX_AIRSPEED: &'static str = "MAX_AIRSPEED"; const MACH: &'static str = "MACH"; const BAROMETRIC_VERTICAL_SPEED: &'static str = "BAROMETRIC_VERTICAL_SPEED"; const TRUE_AIRSPEED: &'static str = "TRUE_AIRSPEED"; const STATIC_AIR_TEMPERATURE: &'static str = "STATIC_AIR_TEMPERATURE"; const TOTAL_AIR_TEMPERATURE: &'static str = "TOTAL_AIR_TEMPERATURE"; const ANGLE_OF_ATTACK: &'static str = "ANGLE_OF_ATTACK"; + const DISCRETE_WORD_1: &'static str = "DISCRETE_WORD_1"; + const MINIMUM_TAS: f64 = 60.; const MINIMUM_CAS: f64 = 30.; const MINIMUM_MACH: f64 = 0.1; const MINIMUM_CAS_FOR_AOA: f64 = 60.; - fn new(context: &mut InitContext, number: usize) -> Self { + fn new(context: &mut InitContext, number: usize, vmo: Velocity, mmo: MachNumber) -> Self { Self { number, + vmo, + mmo, is_on: true, + is_overspeed: false, baro_correction_1_hpa: AdirsData::new_adr(context, number, Self::BARO_CORRECTION_1_HPA), baro_correction_1_inhg: AdirsData::new_adr( @@ -874,6 +913,7 @@ impl AirDataReference { Self::BARO_CORRECTED_ALTITUDE_2, ), computed_airspeed: AdirsData::new_adr(context, number, Self::COMPUTED_AIRSPEED), + max_airspeed: AdirsData::new_adr(context, number, Self::MAX_AIRSPEED), mach: AdirsData::new_adr(context, number, Self::MACH), barometric_vertical_speed: AdirsData::new_adr( context, @@ -888,6 +928,7 @@ impl AirDataReference { ), total_air_temperature: AdirsData::new_adr(context, number, Self::TOTAL_AIR_TEMPERATURE), angle_of_attack: AdirsData::new_adr(context, number, Self::ANGLE_OF_ATTACK), + discrete_word_1: AdirsData::new_adr(context, number, Self::DISCRETE_WORD_1), // Start fully initialised. remaining_initialisation_duration: Some(Duration::from_secs(0)), @@ -903,6 +944,7 @@ impl AirDataReference { self.is_on = overhead.adr_is_on(self.number); self.update_remaining_initialisation_duration(context, overhead); self.update_values(context, simulator_data); + self.update_discrete_word_1(); } fn update_remaining_initialisation_duration( @@ -934,11 +976,13 @@ impl AirDataReference { self.baro_corrected_altitude_2.set_failure_warning(); self.barometric_vertical_speed.set_failure_warning(); self.computed_airspeed.set_failure_warning(); + self.max_airspeed.set_failure_warning(); self.true_airspeed.set_failure_warning(); self.mach.set_failure_warning(); self.total_air_temperature.set_failure_warning(); self.static_air_temperature.set_failure_warning(); self.angle_of_attack.set_failure_warning(); + self.is_overspeed = false; } else { // If it is on and initialized, output normal values. self.baro_correction_1_hpa @@ -980,6 +1024,13 @@ impl AirDataReference { computed_airspeed, ); + let max_airspeed = self.calculate_max_airspeed(context); + self.max_airspeed + .set_value(max_airspeed, SignStatus::NormalOperation); + + self.is_overspeed = computed_airspeed + > (max_airspeed + Velocity::new::(if self.is_overspeed { 4. } else { 8. })); + // If mach is below 0.1, output as 0 with SSM = NCD self.mach.normal_above_threshold_ncd_otherwise( MachNumber::from(Self::MINIMUM_MACH), @@ -1008,6 +1059,44 @@ impl AirDataReference { } } + fn update_discrete_word_1(&mut self) { + let mut discrete_word = AdrDiscrete1Flags::default(); + + if self.is_on { + // FIXME implement icing detector heat + // FIXME implement pitot heat + + if !self.is_valid() { + discrete_word |= AdrDiscrete1Flags::ADR_STATUS_FAIL; + } + + // FIXME implement right static heat + // FIXME implement left static heat + // FIXME implement TAT heat + // FIXME implement NO1 AOA sensor heat + // FIXME implement NO2 AOA sensor heat + + if self.is_overspeed { + discrete_word |= AdrDiscrete1Flags::OVERSPEED_WARNING; + } + + // FIXME implement AOA average/unique status + // FIXME implement VMO/MMO bits 1-4 + // FIXME implement alternate SSEC A/B + // FIXME implement baro port A + // FIXME implement zero mach ssec + } + + self.discrete_word_1.set_value( + discrete_word.bits(), + if self.is_on { + SignStatus::NormalOperation + } else { + SignStatus::FailureWarning + }, + ); + } + fn is_initialised(&self) -> bool { self.remaining_initialisation_duration == Some(Duration::from_secs(0)) } @@ -1037,6 +1126,14 @@ impl AirDataReference { self.corrected_average_static_pressure.ssm(), ) } + + fn calculate_max_airspeed(&self, context: &UpdateContext) -> Velocity { + if self.is_valid() { + self.vmo.min(self.mmo.to_cas(context.ambient_pressure())) + } else { + self.vmo + } + } } impl TrueAirspeedSource for AirDataReference { fn true_airspeed(&self) -> Arinc429Word { @@ -1059,12 +1156,14 @@ impl SimulationElement for AirDataReference { self.baro_corrected_altitude_1.write_to(writer); self.baro_corrected_altitude_2.write_to(writer); self.computed_airspeed.write_to(writer); + self.max_airspeed.write_to(writer); self.mach.write_to(writer); self.barometric_vertical_speed.write_to(writer); self.true_airspeed.write_to(writer); self.static_air_temperature.write_to(writer); self.total_air_temperature.write_to(writer); self.angle_of_attack.write_to(writer); + self.discrete_word_1.write_to(writer); } } @@ -1876,7 +1975,11 @@ mod tests { impl TestAircraft { fn new(context: &mut InitContext) -> Self { Self { - adirs: AirDataInertialReferenceSystem::new(context), + adirs: AirDataInertialReferenceSystem::new( + context, + Velocity::new::(340.), + MachNumber(0.82), + ), overhead: AirDataInertialReferenceSystemOverheadPanel::new(context), } } @@ -2207,6 +2310,14 @@ mod tests { )) } + fn max_airspeed(&mut self, adiru_number: usize) -> Arinc429Word { + self.read_arinc429_by_name(&output_data_id( + OutputDataType::Adr, + adiru_number, + AirDataReference::MAX_AIRSPEED, + )) + } + fn mach(&mut self, adiru_number: usize) -> Arinc429Word { self.read_arinc429_by_name(&output_data_id( OutputDataType::Adr, @@ -2265,6 +2376,14 @@ mod tests { )) } + fn adr_discrete_word_1(&mut self, adiru_number: usize) -> Arinc429Word { + self.read_arinc429_by_name(&output_data_id( + OutputDataType::Adr, + adiru_number, + AirDataReference::DISCRETE_WORD_1, + )) + } + fn pitch(&mut self, adiru_number: usize) -> Arinc429Word { self.read_arinc429_by_name(&output_data_id( OutputDataType::Ir, @@ -2505,6 +2624,7 @@ mod tests { !self.computed_airspeed(adiru_number).is_failure_warning(), valid ); + assert_eq!(!self.max_airspeed(adiru_number).is_failure_warning(), valid); assert_eq!(!self.mach(adiru_number).is_failure_warning(), valid); assert_eq!( !self @@ -2532,6 +2652,16 @@ mod tests { !self.angle_of_attack(adiru_number).is_failure_warning(), valid ); + + let discrete_word_flags = + AdrDiscrete1Flags::from_bits(self.adr_discrete_word_1(adiru_number).value()); + assert_eq!( + !(discrete_word_flags + .unwrap() + .contains(AdrDiscrete1Flags::ADR_STATUS_FAIL) + || self.adr_discrete_word_1(adiru_number).is_failure_warning()), + valid + ); } fn assert_ir_heading_data_available(&mut self, available: bool, adiru_number: usize) { @@ -2991,6 +3121,10 @@ mod tests { } mod adr { + use ntest::{assert_false, assert_true}; + + use crate::shared::InternationalStandardAtmosphere; + use super::*; #[rstest] @@ -3201,6 +3335,114 @@ mod tests { ); } + #[rstest] + #[case(1)] + #[case(2)] + #[case(3)] + fn max_airspeed_is_provided_at_sea_level(#[case] adiru_number: usize) { + let mut test_bed = all_adirus_aligned_test_bed(); + test_bed.set_ambient_pressure(InternationalStandardAtmosphere::ground_pressure()); + test_bed.run(); + + assert_true!(test_bed.max_airspeed(adiru_number).value().get::() > 330.); + } + + #[rstest] + #[case(1)] + #[case(2)] + #[case(3)] + fn max_airspeed_is_limited_by_mmo(#[case] adiru_number: usize) { + use ntest::assert_true; + + let mut test_bed = all_adirus_aligned_test_bed(); + test_bed.set_ambient_pressure(InternationalStandardAtmosphere::pressure_at_altitude( + Length::new::(39_000.), + )); + test_bed.run(); + + assert_true!(test_bed.max_airspeed(adiru_number).value().get::() < 300.); + } + + #[rstest] + #[case(1)] + #[case(2)] + #[case(3)] + fn overspeed_warning_is_inactive_at_normal_speed_at_sea_level(#[case] adiru_number: usize) { + // check a value that's below VMO, but above MMO at higher altitudes + let velocity = Velocity::new::(330.); + let mut test_bed = all_adirus_aligned_test_bed(); + test_bed.set_indicated_airspeed(velocity); + test_bed.set_ambient_pressure(InternationalStandardAtmosphere::ground_pressure()); + test_bed.run(); + + let discrete_word_flags = + AdrDiscrete1Flags::from_bits(test_bed.adr_discrete_word_1(adiru_number).value()); + assert_false!(discrete_word_flags + .unwrap() + .contains(AdrDiscrete1Flags::OVERSPEED_WARNING)); + } + + #[rstest] + #[case(1)] + #[case(2)] + #[case(3)] + fn overspeed_warning_is_inactive_at_normal_speed_at_high_level( + #[case] adiru_number: usize, + ) { + let fl390_pressure = + InternationalStandardAtmosphere::pressure_at_altitude(Length::new::(39_000.)); + let velocity = MachNumber(0.78).to_cas(fl390_pressure); + let mut test_bed = all_adirus_aligned_test_bed(); + test_bed.set_indicated_airspeed(velocity); + test_bed.set_ambient_pressure(fl390_pressure); + test_bed.run(); + + let discrete_word_flags = + AdrDiscrete1Flags::from_bits(test_bed.adr_discrete_word_1(adiru_number).value()); + assert_false!(discrete_word_flags + .unwrap() + .contains(AdrDiscrete1Flags::OVERSPEED_WARNING)); + } + + #[rstest] + #[case(1)] + #[case(2)] + #[case(3)] + fn overspeed_warning_is_active_above_vmo(#[case] adiru_number: usize) { + let velocity = Velocity::new::(400.); + let mut test_bed = all_adirus_aligned_test_bed(); + test_bed.set_indicated_airspeed(velocity); + test_bed.set_ambient_pressure(InternationalStandardAtmosphere::ground_pressure()); + test_bed.run(); + + let discrete_word_flags = + AdrDiscrete1Flags::from_bits(test_bed.adr_discrete_word_1(adiru_number).value()); + assert_true!(discrete_word_flags + .unwrap() + .contains(AdrDiscrete1Flags::OVERSPEED_WARNING)); + } + + #[rstest] + #[case(1)] + #[case(2)] + #[case(3)] + fn overspeed_warning_is_active_above_mmo(#[case] adiru_number: usize) { + let fl390_pressure = + InternationalStandardAtmosphere::pressure_at_altitude(Length::new::(39_000.)); + // This speed will be above MMO, but below VMO, so we ensure MMO gets tested. + let velocity = MachNumber(0.9).to_cas(fl390_pressure); + let mut test_bed = all_adirus_aligned_test_bed(); + test_bed.set_indicated_airspeed(velocity); + test_bed.set_ambient_pressure(fl390_pressure); + test_bed.run(); + + let discrete_word_flags = + AdrDiscrete1Flags::from_bits(test_bed.adr_discrete_word_1(adiru_number).value()); + assert_true!(discrete_word_flags + .unwrap() + .contains(AdrDiscrete1Flags::OVERSPEED_WARNING)); + } + #[rstest] #[case(1)] #[case(2)] diff --git a/fbw-common/src/wasm/systems/systems/src/shared/mod.rs b/fbw-common/src/wasm/systems/systems/src/shared/mod.rs index 54f167e4a80..546335424b3 100644 --- a/fbw-common/src/wasm/systems/systems/src/shared/mod.rs +++ b/fbw-common/src/wasm/systems/systems/src/shared/mod.rs @@ -7,6 +7,7 @@ use crate::{ use arinc429::Arinc429Word; use nalgebra::Vector3; +use ntest::MaxDifference; use num_derive::FromPrimitive; use std::{cell::Ref, fmt::Display, time::Duration}; use uom::si::{ @@ -16,6 +17,7 @@ use uom::si::{ pressure::{hectopascal, pascal}, ratio::ratio, thermodynamic_temperature::{degree_celsius, kelvin}, + velocity::knot, }; pub mod low_pass_filter; @@ -764,7 +766,8 @@ impl InternationalStandardAtmosphere { const GROUND_PRESSURE_PASCAL: f64 = 101325.; const GROUND_TEMPERATURE_KELVIN: f64 = 288.15; - fn ground_pressure() -> Pressure { + /// The sea level pressure on a standard day + pub fn ground_pressure() -> Pressure { Pressure::new::(Self::GROUND_PRESSURE_PASCAL) } @@ -791,6 +794,11 @@ impl InternationalStandardAtmosphere { ) / (-Self::TEMPERATURE_LAPSE_RATE) } + /// The sea level temperature on a standard day + pub fn ground_temperature() -> ThermodynamicTemperature { + ThermodynamicTemperature::new::(Self::GROUND_TEMPERATURE_KELVIN) + } + pub fn temperature_at_altitude(altitude: Length) -> ThermodynamicTemperature { ThermodynamicTemperature::new::( Self::GROUND_TEMPERATURE_KELVIN @@ -815,6 +823,80 @@ impl From for f64 { } } +impl MaxDifference for MachNumber { + fn max_diff(self, other: Self) -> f64 { + (f64::from(self) - f64::from(other)).abs() + } +} + +impl MachNumber { + // All formulas from Jet Transport Performance Methods by Boeing (March 2009 revision) + + /// Get the ratio to standard sea level pressure for a given pressure + fn delta(air_pressure: Pressure) -> Ratio { + air_pressure / InternationalStandardAtmosphere::ground_pressure() + } + + /// Get the ratio to standard sea level temperature for a given temperature + fn theta(temperature: ThermodynamicTemperature) -> Ratio { + temperature / InternationalStandardAtmosphere::ground_temperature() + } + + /// Convert the mach number to a calibrated airspeed for a given atmospheric pressure. + pub fn to_cas(self, air_pressure: Pressure) -> Velocity { + Velocity::new::( + 1479.1 + * ((MachNumber::delta(air_pressure).get::() + * ((0.2 * self.0.powi(2) + 1.).powf(3.5) - 1.) + + 1.) + .powf(1. / 3.5) + - 1.) + .sqrt(), + ) + } + + /// Convert the mach number to an equivalent airspeed for a given atmospheric pressure. + pub fn to_eas(self, air_pressure: Pressure) -> Velocity { + Velocity::new::( + 661.4786 * self.0 * MachNumber::delta(air_pressure).get::().sqrt(), + ) + } + + /// Convert the mach number to a true airspeed for a given temperature. + pub fn to_tas(self, temperature: ThermodynamicTemperature) -> Velocity { + Velocity::new::( + 661.4786 * self.0 * MachNumber::theta(temperature).get::().sqrt(), + ) + } + + /// Convert a calibrated airspeed in a given atmosphere to a mach number + pub fn from_cas(cas: Velocity, air_pressure: Pressure) -> Self { + MachNumber( + (5. * ((((1. + 0.2 * (cas.get::() / 661.4786).powi(2)).powf(3.5) - 1.) + / MachNumber::delta(air_pressure).get::() + + 1.) + .powf(1. / 3.5) + - 1.)) + .sqrt(), + ) + } + + /// Convert an equivalent airspeed in a given atmosphere to a mach number + pub fn from_eas(eas: Velocity, air_pressure: Pressure) -> Self { + MachNumber( + eas.get::() / 661.4786 + * (1. / MachNumber::delta(air_pressure).get::()).sqrt(), + ) + } + + /// Convert a true airspeed in a given atmosphere to a mach number + pub fn from_tas(tas: Velocity, temperature: ThermodynamicTemperature) -> Self { + MachNumber( + tas.get::() / (661.4786 * MachNumber::theta(temperature).get::().sqrt()), + ) + } +} + pub trait AverageExt: Iterator { fn average(self) -> M where @@ -1904,3 +1986,166 @@ mod local_acceleration_at_plane_coordinate { assert!(test_bed.query_element(|e| e.local_accel == Vector3::new(-1., -1., 0.))); } } + +#[cfg(test)] +mod mach_number_tests { + use ntest::assert_about_eq; + use uom::si::{ + length::foot, + quantities::{Length, Velocity}, + velocity::knot, + }; + + use crate::shared::{InternationalStandardAtmosphere, MachNumber}; + + // All of the test values are obtained from + // - https://aerotoolbox.com/airspeed-conversions/ + // - https://aerotoolbox.com/atmcalc/ + + #[test] + fn cas_to_mach_conversions() { + let mach0 = MachNumber(0.); + let mach05 = MachNumber(0.5); + let sea_level_pressure = InternationalStandardAtmosphere::ground_pressure(); + let fl350_pressure = + InternationalStandardAtmosphere::pressure_at_altitude(Length::new::(35_000.)); + + assert_about_eq!(mach0.to_cas(sea_level_pressure).get::(), 0.); + assert_about_eq!( + mach05.to_cas(sea_level_pressure).get::(), + 330.735, + 0.1 + ); + + assert_about_eq!(mach0.to_cas(fl350_pressure).get::(), 0.); + assert_about_eq!(mach05.to_cas(fl350_pressure).get::(), 164.225, 0.1); + } + + #[test] + fn eas_to_mach_conversions() { + let mach0 = MachNumber(0.); + let mach05 = MachNumber(0.5); + let sea_level_pressure = InternationalStandardAtmosphere::ground_pressure(); + let fl350_pressure = + InternationalStandardAtmosphere::pressure_at_altitude(Length::new::(35_000.)); + + assert_about_eq!(mach0.to_eas(sea_level_pressure).get::(), 0.); + assert_about_eq!( + mach05.to_eas(sea_level_pressure).get::(), + 330.739, + 0.1 + ); + + assert_about_eq!(mach0.to_eas(fl350_pressure).get::(), 0.); + assert_about_eq!(mach05.to_eas(fl350_pressure).get::(), 160.436, 0.1); + } + + #[test] + fn tas_to_mach_conversions() { + let mach0 = MachNumber(0.); + let mach05 = MachNumber(0.5); + let sea_level_temperature = InternationalStandardAtmosphere::ground_temperature(); + let fl350_temperature = + InternationalStandardAtmosphere::temperature_at_altitude(Length::new::(35_000.)); + + assert_about_eq!(mach0.to_tas(sea_level_temperature).get::(), 0.); + assert_about_eq!( + mach05.to_tas(sea_level_temperature).get::(), + 330.739, + 0.1 + ); + + assert_about_eq!(mach0.to_tas(fl350_temperature).get::(), 0.); + assert_about_eq!(mach05.to_tas(fl350_temperature).get::(), 288.209, 0.1); + } + + #[test] + fn mach_to_cas_conversions() { + let mach0_cas = Velocity::new::(0.); + let mach05_cas_sea_level = Velocity::new::(330.735); + let mach05_cas_fl350 = Velocity::new::(164.225); + let sea_level_pressure = InternationalStandardAtmosphere::ground_pressure(); + let fl350_pressure = + InternationalStandardAtmosphere::pressure_at_altitude(Length::new::(35_000.)); + + assert_about_eq!( + MachNumber::from_cas(mach0_cas, sea_level_pressure), + MachNumber(0.) + ); + assert_about_eq!( + MachNumber::from_cas(mach05_cas_sea_level, sea_level_pressure), + MachNumber(0.5), + 0.001 + ); + + assert_about_eq!( + MachNumber::from_cas(mach0_cas, fl350_pressure), + MachNumber(0.) + ); + assert_about_eq!( + MachNumber::from_cas(mach05_cas_fl350, fl350_pressure), + MachNumber(0.5), + 0.001 + ); + } + + #[test] + fn mach_to_eas_conversions() { + let mach0_eas = Velocity::new::(0.); + let mach05_eas_sea_level = Velocity::new::(330.739); + let mach05_eas_fl350 = Velocity::new::(160.436); + let sea_level_pressure = InternationalStandardAtmosphere::ground_pressure(); + let fl350_pressure = + InternationalStandardAtmosphere::pressure_at_altitude(Length::new::(35_000.)); + + assert_about_eq!( + MachNumber::from_eas(mach0_eas, sea_level_pressure), + MachNumber(0.) + ); + assert_about_eq!( + MachNumber::from_eas(mach05_eas_sea_level, sea_level_pressure), + MachNumber(0.5), + 0.001 + ); + + assert_about_eq!( + MachNumber::from_eas(mach0_eas, fl350_pressure), + MachNumber(0.) + ); + assert_about_eq!( + MachNumber::from_eas(mach05_eas_fl350, fl350_pressure), + MachNumber(0.5), + 0.001 + ); + } + + #[test] + fn mach_to_tas_conversions() { + let mach0_tas = Velocity::new::(0.); + let mach05_tas_sea_level = Velocity::new::(330.739); + let mach05_tas_fl350 = Velocity::new::(288.209); + let sea_level_temperature = InternationalStandardAtmosphere::ground_temperature(); + let fl350_temperature = + InternationalStandardAtmosphere::temperature_at_altitude(Length::new::(35_000.)); + + assert_about_eq!( + MachNumber::from_tas(mach0_tas, sea_level_temperature), + MachNumber(0.) + ); + assert_about_eq!( + MachNumber::from_tas(mach05_tas_sea_level, sea_level_temperature), + MachNumber(0.5), + 0.001 + ); + + assert_about_eq!( + MachNumber::from_tas(mach0_tas, fl350_temperature), + MachNumber(0.) + ); + assert_about_eq!( + MachNumber::from_tas(mach05_tas_fl350, fl350_temperature), + MachNumber(0.5), + 0.001 + ); + } +} diff --git a/fbw-common/src/wasm/systems/systems/src/simulation/update_context.rs b/fbw-common/src/wasm/systems/systems/src/simulation/update_context.rs index 68ef269ee7f..3ef58b80846 100644 --- a/fbw-common/src/wasm/systems/systems/src/simulation/update_context.rs +++ b/fbw-common/src/wasm/systems/systems/src/simulation/update_context.rs @@ -290,7 +290,10 @@ impl UpdateContext { pub(crate) const VERTICAL_SPEED_KEY: &'static str = "VELOCITY WORLD Y"; pub(crate) const ACCEL_BODY_X_KEY: &'static str = "ACCELERATION BODY X"; pub(crate) const ACCEL_BODY_Y_KEY: &'static str = "ACCELERATION BODY Y"; - pub(crate) const ACCEL_BODY_Z_KEY: &'static str = "ACCELERATION BODY Z"; + + // Acceleration that includes the reverser acceleration added by our systems to msfs + pub(crate) const ACCEL_BODY_Z_KEY: &'static str = "ACCELERATION_BODY_Z_WITH_REVERSER"; + pub(crate) const WIND_VELOCITY_X_KEY: &'static str = "AMBIENT WIND X"; pub(crate) const WIND_VELOCITY_Y_KEY: &'static str = "AMBIENT WIND Y"; pub(crate) const WIND_VELOCITY_Z_KEY: &'static str = "AMBIENT WIND Z"; @@ -457,7 +460,7 @@ impl UpdateContext { local_vertical_speed_id: context.get_identifier("VELOCITY BODY Y".to_owned()), accel_body_x_id: context.get_identifier("ACCELERATION BODY X".to_owned()), accel_body_y_id: context.get_identifier("ACCELERATION BODY Y".to_owned()), - accel_body_z_id: context.get_identifier("ACCELERATION BODY Z".to_owned()), + accel_body_z_id: context.get_identifier("ACCELERATION_BODY_Z_WITH_REVERSER".to_owned()), wind_velocity_x_id: context.get_identifier("AMBIENT WIND X".to_owned()), wind_velocity_y_id: context.get_identifier("AMBIENT WIND Y".to_owned()), wind_velocity_z_id: context.get_identifier("AMBIENT WIND Z".to_owned()), diff --git a/fbw-common/src/wasm/systems/systems/src/structural_flex/wing_flex.rs b/fbw-common/src/wasm/systems/systems/src/structural_flex/wing_flex.rs index 82e346d4273..d190b411267 100644 --- a/fbw-common/src/wasm/systems/systems/src/structural_flex/wing_flex.rs +++ b/fbw-common/src/wasm/systems/systems/src/structural_flex/wing_flex.rs @@ -53,7 +53,7 @@ impl LandingGearWeightOnWheelsEstimator { const GEAR_RIGHT_WING_COMPRESSION: &'static str = "CONTACT POINT COMPRESSION:4"; // For now allowing to select between guesstimate and msfs methods - const USE_MSFS_METHOD: bool = true; + const USE_MSFS_METHOD: bool = false; // Method 1 msfs formula. Sadly we don't know exact msfs spring constants // MSFS spring formula diff --git a/fbw-common/src/wasm/terronnd/build.sh b/fbw-common/src/wasm/terronnd/build.sh index 5c9f242e78d..28040a37951 100755 --- a/fbw-common/src/wasm/terronnd/build.sh +++ b/fbw-common/src/wasm/terronnd/build.sh @@ -73,6 +73,11 @@ wasm-ld \ --export malloc \ --export free \ --export __wasm_call_ctors \ + --export mallinfo \ + --export mchunkit_begin \ + --export mchunkit_next \ + --export get_pages_state \ + --export mark_decommit_pages \ --export-table \ --gc-sections \ ${WASMLD_ARGS} \