Sim: Detail gear kinematics and fix a few things
This commit is contained in:
parent
d4af28ec24
commit
5e5d954b87
16 changed files with 349 additions and 188 deletions
|
@ -326,15 +326,6 @@
|
|||
</script>
|
||||
</binding>
|
||||
</item>
|
||||
<item>
|
||||
<label>About This Aircraft</label>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
acconfig.about_dlg.open();
|
||||
</script>
|
||||
</binding>
|
||||
</item>
|
||||
</menu>
|
||||
<menu n="102">
|
||||
<label>FMGC</label>
|
||||
|
@ -535,7 +526,7 @@
|
|||
</binding>
|
||||
</item>
|
||||
<item>
|
||||
<label>Failures</label>
|
||||
<label>System Failures</label>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
|
@ -1045,6 +1036,7 @@
|
|||
<gear>
|
||||
<brake-fans type="bool">0</brake-fans>
|
||||
<brake-parking type="bool">0</brake-parking>
|
||||
<lever-cockpit type="int">3</lever-cockpit>
|
||||
<nws-switch type="double">1</nws-switch>
|
||||
<tiller-cmd-norm type="double">0</tiller-cmd-norm>
|
||||
<tiller-enabled type="bool">0</tiller-enabled>
|
||||
|
@ -1053,6 +1045,7 @@
|
|||
<switches>
|
||||
<blue-elec type="bool">0</blue-elec>
|
||||
<blue-elec-ovrd type="bool">0</blue-elec-ovrd>
|
||||
<gear-gravity-ext type="bool">0</gear-gravity-ext>
|
||||
<green-edp type="bool">0</green-edp>
|
||||
<ptu type="bool">0</ptu>
|
||||
<rat-man type="bool">0</rat-man>
|
||||
|
@ -1496,7 +1489,11 @@
|
|||
<right-tank-pump-1 type="bool">0</right-tank-pump-1>
|
||||
<right-tank-pump-2 type="bool">0</right-tank-pump-2>
|
||||
</fuel>
|
||||
<gear type="bool">0</gear>
|
||||
<gear n="0">
|
||||
<left-actuator type="bool">0</left-actuator>
|
||||
<nose-actuator type="bool">0</nose-actuator>
|
||||
<right-actuator type="bool">0</right-actuator>
|
||||
</gear>
|
||||
<hydraulic>
|
||||
<blue-elec type="bool">0</blue-elec>
|
||||
<blue-elec-ovht type="bool">0</blue-elec-ovht>
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<!-- Copyright (c) 2022 Josh Davidson (Octal450) -->
|
||||
|
||||
<!-- A3XX Aircraft Config Dialog -->
|
||||
|
||||
<PropertyList>
|
||||
|
||||
<name>aircraft-config-about</name>
|
||||
<layout>vbox</layout>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>About This Aircraft</label>
|
||||
</text>
|
||||
<button>
|
||||
<halign>right</halign>
|
||||
<pref-width>20</pref-width>
|
||||
<pref-height>20</pref-height>
|
||||
<legend>X</legend>
|
||||
<key>Esc</key>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Airbus A320 Family</label>
|
||||
</text>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Flight Dynamics: Josh Davidson (Octal450)</label>
|
||||
</text>
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Systems: Josh Davidson (Octal450), Jonathan Redpath (legoboyvdlp), merspieler, Matthew Maring (mattmaring)</label>
|
||||
</text>
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Displays: Josh Davidson (Octal450), Jonathan Redpath (legoboyvdlp), merspieler, Matthew Maring (mattmaring)</label>
|
||||
</text>
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>3D/Textures: Thorsten Herrmann (TH-555), Semir Gebran (CaptB)</label>
|
||||
</text>
|
||||
|
||||
</group>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<button>
|
||||
<halign>center</halign>
|
||||
<legend>Go Away</legend>
|
||||
<pref-width>210</pref-width>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
</PropertyList>
|
|
@ -75,7 +75,6 @@ var init_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/init/dialog", "Aircraft
|
|||
var help_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/help/dialog", "Aircraft/A320-family/AircraftConfig/help.xml");
|
||||
var fbw_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/fbw/dialog", "Aircraft/A320-family/AircraftConfig/fbw.xml");
|
||||
var fail_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/fail/dialog", "Aircraft/A320-family/AircraftConfig/fail.xml");
|
||||
var about_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/about/dialog", "Aircraft/A320-family/AircraftConfig/about.xml");
|
||||
var update_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/update/dialog", "Aircraft/A320-family/AircraftConfig/update.xml");
|
||||
var updated_dlg = gui.Dialog.new("/sim/gui/dialogs/acconfig/updated/dialog", "Aircraft/A320-family/AircraftConfig/updated.xml");
|
||||
var error_mismatch = gui.Dialog.new("/sim/gui/dialogs/acconfig/error/mismatch/dialog", "Aircraft/A320-family/AircraftConfig/error-mismatch.xml");
|
||||
|
@ -285,7 +284,7 @@ var colddark = func {
|
|||
setprop("/controls/flight/flaps", 0);
|
||||
pts.Controls.Flight.speedbrakeArm.setValue(0);
|
||||
setprop("/controls/flight/speedbrake", 0);
|
||||
setprop("/controls/gear/gear-down", 1);
|
||||
setprop("/controls/gear/lever", 1);
|
||||
setprop("/controls/flight/elevator-trim", 0);
|
||||
setprop("/controls/switches/beacon", 0);
|
||||
setprop("/controls/switches/strobe", 0.0);
|
||||
|
@ -345,7 +344,7 @@ var beforestart = func {
|
|||
setprop("/controls/flight/flaps", 0);
|
||||
pts.Controls.Flight.speedbrakeArm.setValue(0);
|
||||
setprop("/controls/flight/speedbrake", 0);
|
||||
setprop("/controls/gear/gear-down", 1);
|
||||
setprop("/controls/gear/lever", 1);
|
||||
setprop("/controls/flight/elevator-trim", 0);
|
||||
libraries.systemsInit();
|
||||
libraries.variousReset();
|
||||
|
@ -442,7 +441,7 @@ var taxi = func {
|
|||
setprop("/controls/flight/flaps", 0);
|
||||
pts.Controls.Flight.speedbrakeArm.setValue(0);
|
||||
setprop("/controls/flight/speedbrake", 0);
|
||||
setprop("/controls/gear/gear-down", 1);
|
||||
setprop("/controls/gear/lever", 1);
|
||||
setprop("/controls/flight/elevator-trim", 0);
|
||||
libraries.systemsInit();
|
||||
libraries.variousReset();
|
||||
|
|
|
@ -75,6 +75,24 @@
|
|||
</script>
|
||||
</binding>
|
||||
</button>
|
||||
<button>
|
||||
<halign>center</halign>
|
||||
<legend>Checklists</legend>
|
||||
<pref-width>140</pref-width>
|
||||
<binding>
|
||||
<command>dialog-show</command>
|
||||
<dialog-name>checklist</dialog-name>
|
||||
</binding>
|
||||
</button>
|
||||
<button>
|
||||
<halign>center</halign>
|
||||
<legend>Aircraft Help</legend>
|
||||
<pref-width>140</pref-width>
|
||||
<binding>
|
||||
<command>dialog-show</command>
|
||||
<dialog-name>acconfig-help</dialog-name>
|
||||
</binding>
|
||||
</button>
|
||||
<button>
|
||||
<halign>center</halign>
|
||||
<legend>DU Quality</legend>
|
||||
|
@ -86,17 +104,6 @@
|
|||
</script>
|
||||
</binding>
|
||||
</button>
|
||||
<button>
|
||||
<halign>center</halign>
|
||||
<legend>About Aircraft</legend>
|
||||
<pref-width>140</pref-width>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
acconfig.about_dlg.open();
|
||||
</script>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
|
|
|
@ -9134,16 +9134,10 @@
|
|||
<condition>
|
||||
<or>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<and>
|
||||
<not-equals>
|
||||
<property>gear/gear[1]/position-norm</property>
|
||||
<value>0</value>
|
||||
</not-equals>
|
||||
<not-equals>
|
||||
<property>gear/gear[1]/position-norm</property>
|
||||
<value>1</value>
|
||||
</not-equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>fdm/jsbsim/gear/unit[1]/status</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -9155,8 +9149,8 @@
|
|||
<or>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<equals>
|
||||
<property>gear/gear[1]/position-norm</property>
|
||||
<value>1</value>
|
||||
<property>fdm/jsbsim/gear/unit[1]/status</property>
|
||||
<value>2</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
|
@ -9168,16 +9162,10 @@
|
|||
<condition>
|
||||
<or>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<and>
|
||||
<not-equals>
|
||||
<property>gear/gear[0]/position-norm</property>
|
||||
<value>0</value>
|
||||
</not-equals>
|
||||
<not-equals>
|
||||
<property>gear/gear[0]/position-norm</property>
|
||||
<value>1</value>
|
||||
</not-equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>fdm/jsbsim/gear/unit[0]/status</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -9189,8 +9177,8 @@
|
|||
<or>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<equals>
|
||||
<property>gear/gear[0]/position-norm</property>
|
||||
<value>1</value>
|
||||
<property>fdm/jsbsim/gear/unit[0]/status</property>
|
||||
<value>2</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
|
@ -9202,16 +9190,10 @@
|
|||
<condition>
|
||||
<or>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<and>
|
||||
<not-equals>
|
||||
<property>gear/gear[2]/position-norm</property>
|
||||
<value>0</value>
|
||||
</not-equals>
|
||||
<not-equals>
|
||||
<property>gear/gear[2]/position-norm</property>
|
||||
<value>1</value>
|
||||
</not-equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>fdm/jsbsim/gear/unit[2]/status</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
@ -9223,8 +9205,8 @@
|
|||
<or>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<equals>
|
||||
<property>gear/gear[2]/position-norm</property>
|
||||
<value>1</value>
|
||||
<property>fdm/jsbsim/gear/unit[2]/status</property>
|
||||
<value>2</value>
|
||||
</equals>
|
||||
</or>
|
||||
</condition>
|
||||
|
@ -9232,23 +9214,54 @@
|
|||
|
||||
<!-- Landing Gear Lever -->
|
||||
<animation>
|
||||
<type>knob</type>
|
||||
<type>rotate</type>
|
||||
<object-name>gear_lever</object-name>
|
||||
<drag-direction>vertical</drag-direction>
|
||||
<property>controls/gear/gear-down-pos</property>
|
||||
<factor>-50</factor>
|
||||
<property>controls/cockpit/gear-lever</property>
|
||||
<interpolation>
|
||||
<entry><ind>1</ind><dep> 0</dep></entry>
|
||||
<entry><ind>2</ind><dep>-50</dep></entry>
|
||||
</interpolation>
|
||||
<axis>
|
||||
<object-name>gear_lever.axis</object-name>
|
||||
</axis>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>translate</type>
|
||||
<object-name>gear_lever</object-name>
|
||||
<property>controls/cockpit/gear-lever</property>
|
||||
<interpolation>
|
||||
<entry><ind>0</ind><dep>0.00</dep></entry>
|
||||
<entry><ind>1</ind><dep>0.01</dep></entry>
|
||||
<entry><ind>2</ind><dep>0.01</dep></entry>
|
||||
<entry><ind>3</ind><dep>0.00</dep></entry>
|
||||
</interpolation>
|
||||
<axis>
|
||||
<x1-m>-0.55056</x1-m>
|
||||
<y1-m>-0.14748</y1-m>
|
||||
<z1-m>0.09933</z1-m>
|
||||
<x2-m>-0.49486</x2-m>
|
||||
<y2-m>-0.14748</y2-m>
|
||||
<z2-m>0.14019</z2-m>
|
||||
</axis>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>pick</type>
|
||||
<object-name>gear_lever</object-name>
|
||||
<action>
|
||||
<button>0</button>
|
||||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-cycle</command>
|
||||
<property>controls/gear/gear-down</property>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
<wrap>false</wrap>
|
||||
<command>nasal</command>
|
||||
<script>controls.gearDownSmart(1)</script>
|
||||
</binding>
|
||||
<mod-up>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>controls.gearDownSmart(0);</script>
|
||||
</binding>
|
||||
</mod-up>
|
||||
</action>
|
||||
<hovered>
|
||||
<binding>
|
||||
|
@ -9261,7 +9274,7 @@
|
|||
</binding>
|
||||
</hovered>
|
||||
</animation>
|
||||
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>gear_lever_down_arrow</object-name>
|
||||
|
|
|
@ -258,7 +258,7 @@ var input = {
|
|||
"apWarn": "/it-autoflight/output/ap-warning",
|
||||
"apOffTime": "/ECAM/warnings/ap-off-time",
|
||||
"elevatorFBW": "/fdm/jsbsim/fbw/elevator-sidestick",
|
||||
"gearLever": "/controls/gear/gear-down",
|
||||
"gearLever": "/controls/gear/lever",
|
||||
"masterCaution": "/ECAM/warnings/master-caution-light",
|
||||
"masterWarn": "/ECAM/warnings/master-warning-light",
|
||||
};
|
||||
|
|
|
@ -61,7 +61,7 @@ var SystemDisplayController = {
|
|||
} else if (me.tempFWCPhase == 3 or me.tempFWCPhase == 4 or me.tempFWCPhase == 5) {
|
||||
me.displayedPage = me.PageList.enginePage;
|
||||
} else if (me.tempFWCPhase == 6) {
|
||||
if (pts.Controls.Gear.gearDown.getValue() and me.altitudeBelow16000) {
|
||||
if (pts.Controls.Gear.lever.getValue() == 1 and me.altitudeBelow16000) {
|
||||
me.displayedPage = me.PageList.wheelPage;
|
||||
} else if (me.Display.Cruise) {
|
||||
me.displayedPage = me.PageList.cruisePage;
|
||||
|
@ -324,7 +324,7 @@ setlistener("/ECAM/warning-phase", func() {
|
|||
}
|
||||
}, 0, 0);
|
||||
|
||||
setlistener("/controls/gear/gear-down", func() {
|
||||
setlistener("/controls/gear/lever", func() {
|
||||
if (SystemDisplayController.mode == 3) {
|
||||
SystemDisplayController.autoCall();
|
||||
}
|
||||
|
|
|
@ -97,6 +97,67 @@ controls.flapsDown = func(step) {
|
|||
}
|
||||
}
|
||||
|
||||
var leverCockpit = 3;
|
||||
controls.gearDown = func(d) { # Requires a mod-up
|
||||
pts.Fdm.JSBsim.Position.wowTemp = pts.Fdm.JSBsim.Position.wow.getBoolValue();
|
||||
leverCockpit = pts.Controls.Gear.leverCockpit.getValue();
|
||||
if (d < 0) {
|
||||
if (pts.Fdm.JSBsim.Position.wowTemp) {
|
||||
if (leverCockpit == 3) {
|
||||
pts.Controls.Gear.leverCockpit.setValue(2);
|
||||
} else if (leverCockpit == 0) {
|
||||
pts.Controls.Gear.leverCockpit.setValue(1);
|
||||
}
|
||||
} else {
|
||||
pts.Controls.Gear.leverCockpit.setValue(0);
|
||||
}
|
||||
} else if (d > 0) {
|
||||
if (pts.Fdm.JSBsim.Position.wowTemp) {
|
||||
if (leverCockpit == 3) {
|
||||
pts.Controls.Gear.leverCockpit.setValue(2);
|
||||
} else if (leverCockpit == 0) {
|
||||
pts.Controls.Gear.leverCockpit.setValue(1);
|
||||
}
|
||||
} else {
|
||||
pts.Controls.Gear.leverCockpit.setValue(3);
|
||||
}
|
||||
} else {
|
||||
if (leverCockpit == 2) {
|
||||
pts.Controls.Gear.leverCockpit.setValue(3);
|
||||
} else if (leverCockpit == 1) {
|
||||
pts.Controls.Gear.leverCockpit.setValue(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
controls.gearDownSmart = func(d) { # Used by cockpit, requires a mod-up
|
||||
if (d) {
|
||||
if (pts.Controls.Gear.leverCockpit.getValue() >= 2) {
|
||||
controls.gearDown(-1);
|
||||
} else {
|
||||
controls.gearDown(1);
|
||||
}
|
||||
} else {
|
||||
controls.gearDown(0);
|
||||
}
|
||||
}
|
||||
|
||||
controls.gearToggle = func() {
|
||||
if (!pts.Fdm.JSBsim.Position.wow.getBoolValue()) {
|
||||
if (pts.Controls.Gear.leverCockpit.getValue() >= 2) {
|
||||
pts.Controls.Gear.leverCockpit.setValue(0);
|
||||
} else {
|
||||
pts.Controls.Gear.leverCockpit.setValue(3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
controls.gearTogglePosition = func(d) {
|
||||
if (d) {
|
||||
controls.gearToggle();
|
||||
}
|
||||
}
|
||||
|
||||
controls.elevatorTrim = func(d) {
|
||||
if (systems.HYD.Psi.green.getValue() >= 1500 or systems.HYD.Psi.yellow.getValue() >= 1500) {
|
||||
slewProp("/controls/flight/elevator-trim", d * 0.0185); # Rate in JSB normalized (0.25 / 13.5)
|
||||
|
|
|
@ -59,7 +59,8 @@ var Controls = {
|
|||
Gear: {
|
||||
brake: [props.globals.getNode("/controls/gear/brake-left"),props.globals.getNode("/controls/gear/brake-right")],
|
||||
brakeParking: props.globals.getNode("/controls/gear/brake-parking"),
|
||||
gearDown: props.globals.getNode("/controls/gear/gear-down"),
|
||||
lever: props.globals.getNode("/controls/gear/lever"),
|
||||
leverCockpit: props.globals.getNode("/controls/gear/lever-cockpit"),
|
||||
},
|
||||
Lighting: {
|
||||
landingLights: [props.globals.getNode("/controls/lighting/landing-lights[0]"),props.globals.getNode("/controls/lighting/landing-lights[1]"),props.globals.getNode("/controls/lighting/landing-lights[2]")],
|
||||
|
@ -134,6 +135,7 @@ var Fdm = {
|
|||
},
|
||||
Position: {
|
||||
wow: props.globals.getNode("/fdm/jsbsim/position/wow"),
|
||||
wowTemp: 0,
|
||||
},
|
||||
Propulsion: {
|
||||
Engine: {
|
||||
|
|
|
@ -415,7 +415,7 @@ var Autobrake = {
|
|||
}
|
||||
}
|
||||
|
||||
if (me._mode == 3 and !pts.Controls.Gear.gearDown.getBoolValue()) {
|
||||
if (me._mode == 3 and pts.Controls.Gear.lever.getValue() == 0) {
|
||||
me.arm_autobrake(0);
|
||||
}
|
||||
if (me._mode != 0 and me._wow0 and me._active and (pts.Controls.Gear.brake[0].getValue() > 0.05 or pts.Controls.Gear.brake[1].getValue() > 0.05)) {
|
||||
|
|
|
@ -224,7 +224,7 @@ var update_loop = func {
|
|||
}
|
||||
|
||||
if (!pts.Gear.wow[1].getBoolValue() and !pts.Gear.wow[2].getBoolValue()) {
|
||||
if (degradeLaw == 1 and pts.Controls.Gear.gearDown.getBoolValue()) {
|
||||
if (degradeLaw == 1 and pts.Controls.Gear.lever.getValue() == 1) {
|
||||
FBW.degradeLaw.setValue(2); # todo 3 sec timer
|
||||
} else {
|
||||
FBW.degradeLaw.setValue(degradeLaw)
|
||||
|
|
|
@ -211,13 +211,6 @@ var HYD = {
|
|||
},
|
||||
};
|
||||
|
||||
# Restrict gear raising on the ground
|
||||
setlistener("/controls/gear/gear-down", func {
|
||||
if (!pts.Controls.Gear.gearDown.getValue() and (pts.Gear.wow[0].getValue() or pts.Gear.wow[1].getValue() or pts.Gear.wow[2].getValue())) {
|
||||
pts.Controls.Gear.gearDown.setValue(1);
|
||||
}
|
||||
});
|
||||
|
||||
# Emesary
|
||||
var A320Hydraulic = notifications.SystemRecipient.new("A320 Hydraulic",HYD.loop,HYD);
|
||||
emesary.GlobalTransmitter.Register(A320Hydraulic);
|
||||
|
|
|
@ -336,7 +336,7 @@
|
|||
<product>
|
||||
<property>aero/qbar-psf</property>
|
||||
<property>metrics/Sw-sqft</property>
|
||||
<property>gear/gear-pos-norm</property>
|
||||
<property>gear/gear-all-norm</property>
|
||||
<value>0.0171</value>
|
||||
</product>
|
||||
</function>
|
||||
|
|
|
@ -150,6 +150,12 @@
|
|||
<c1>5</c1>
|
||||
</lag_filter>
|
||||
|
||||
<actuator name="/controls/cockpit/gear-lever">
|
||||
<input>/controls/gear/lever-cockpit</input>
|
||||
<rate_limit>4.5</rate_limit>
|
||||
<lag>20</lag>
|
||||
</actuator>
|
||||
|
||||
<lag_filter name="/instrumentation/altimeter/inhg-left-pos">
|
||||
<input>/instrumentation/altimeter/inhg-left</input>
|
||||
<c1>20</c1>
|
||||
|
@ -240,11 +246,6 @@
|
|||
<c1>20</c1>
|
||||
</lag_filter>
|
||||
|
||||
<lag_filter name="/controls/gear/gear-down-pos">
|
||||
<input>/controls/gear/gear-down</input>
|
||||
<c1>20</c1>
|
||||
</lag_filter>
|
||||
|
||||
<lag_filter name="/instrumentation/clock/utc-selector-pos">
|
||||
<input>/instrumentation/clock/utc-selector</input>
|
||||
<c1>20</c1>
|
||||
|
|
|
@ -936,29 +936,193 @@
|
|||
|
||||
</channel>
|
||||
|
||||
<channel name="Landing Gear">
|
||||
<channel name="Gear Common">
|
||||
|
||||
<switch name="gear/gear-cmd-switch">
|
||||
<default value="gear/gear-cmd-norm"/>
|
||||
<test logic="OR" value="gear/gear-pos-norm">
|
||||
/systems/failures/gear eq 1
|
||||
<switch name="/controls/gear/lever">
|
||||
<default value="1"/>
|
||||
<test value="0">
|
||||
/controls/gear/lever-cockpit le 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Nose Gear">
|
||||
|
||||
<switch name="gear/unit[0]/rate-incr">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1000">
|
||||
/systems/acconfig/autoconfig-running eq 1
|
||||
position/wow eq 1
|
||||
</test>
|
||||
<test value="0">
|
||||
/systems/failures/gear/nose-actuator eq 1
|
||||
</test>
|
||||
<test value="0.2222222"> <!-- About 4.5 sec -->
|
||||
/systems/hydraulic/green-psi ge 1500
|
||||
</test>
|
||||
<test logic="AND" value="0.0166667"> <!-- About 60 sec -->
|
||||
/controls/hydraulic/switches/gear-gravity-ext eq 1
|
||||
/accelerations/pilot-g ge 0.5
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<kinematic name="rubbish/gear-pos-norm">
|
||||
<input>gear/gear-cmd-switch</input>
|
||||
<traverse>
|
||||
<setting>
|
||||
<position>0</position>
|
||||
<time>0</time>
|
||||
</setting>
|
||||
<setting>
|
||||
<position>1</position>
|
||||
<time>10</time>
|
||||
</setting>
|
||||
</traverse>
|
||||
<output>gear/gear-pos-norm</output>
|
||||
</kinematic>
|
||||
<switch name="gear/unit[0]/rate-decr">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1000">
|
||||
/systems/acconfig/autoconfig-running eq 1
|
||||
position/wow eq 1
|
||||
</test>
|
||||
<test value="0">
|
||||
/systems/failures/gear/nose-actuator eq 1
|
||||
</test>
|
||||
<test value="0.4"> <!-- About 2.5 sec -->
|
||||
/systems/hydraulic/green-psi ge 1500
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="gear/unit[0]/pos-norm-actuator">
|
||||
<input>/controls/gear/lever</input>
|
||||
<rate_limit sense="incr">gear/unit[0]/rate-incr</rate_limit>
|
||||
<rate_limit sense="decr">gear/unit[0]/rate-decr</rate_limit>
|
||||
<output>gear/unit[0]/pos-norm</output>
|
||||
</actuator>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Left Main Gear">
|
||||
|
||||
<switch name="gear/unit[1]/rate-incr">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1000">
|
||||
/systems/acconfig/autoconfig-running eq 1
|
||||
position/wow eq 1
|
||||
</test>
|
||||
<test value="0">
|
||||
/systems/failures/gear/left-actuator eq 1
|
||||
</test>
|
||||
<test value="0.0740741"> <!-- About 13.5 sec -->
|
||||
/systems/hydraulic/green-psi ge 1500
|
||||
</test>
|
||||
<test logic="AND" value="0.0222222"> <!-- About 45 sec -->
|
||||
/controls/hydraulic/switches/gear-gravity-ext eq 1
|
||||
/accelerations/pilot-g ge 0.5
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="gear/unit[1]/rate-decr">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1000">
|
||||
/systems/acconfig/autoconfig-running eq 1
|
||||
position/wow eq 1
|
||||
</test>
|
||||
<test value="0">
|
||||
/systems/failures/gear/left-actuator eq 1
|
||||
</test>
|
||||
<test value="0.1111111"> <!-- About 9 sec -->
|
||||
/systems/hydraulic/green-psi ge 1500
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="gear/unit[1]/pos-norm-actuator">
|
||||
<input>/controls/gear/lever</input>
|
||||
<rate_limit sense="incr">gear/unit[1]/rate-incr</rate_limit>
|
||||
<rate_limit sense="decr">gear/unit[1]/rate-decr</rate_limit>
|
||||
<output>gear/unit[1]/pos-norm</output>
|
||||
</actuator>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Right Main Gear">
|
||||
|
||||
<switch name="gear/unit[2]/rate-incr">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1000">
|
||||
/systems/acconfig/autoconfig-running eq 1
|
||||
position/wow eq 1
|
||||
</test>
|
||||
<test value="0">
|
||||
/systems/failures/gear/right-actuator eq 1
|
||||
</test>
|
||||
<test value="0.0769231"> <!-- About 13 sec -->
|
||||
/systems/hydraulic/green-psi ge 1500
|
||||
</test>
|
||||
<test logic="AND" value="0.0222222"> <!-- About 45 sec -->
|
||||
/controls/hydraulic/switches/gear-gravity-ext eq 1
|
||||
/accelerations/pilot-g ge 0.5
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="gear/unit[2]/rate-decr">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1000">
|
||||
/systems/acconfig/autoconfig-running eq 1
|
||||
position/wow eq 1
|
||||
</test>
|
||||
<test value="0">
|
||||
/systems/failures/gear/right-actuator eq 1
|
||||
</test>
|
||||
<test value="0.1052632"> <!-- About 9.5 sec -->
|
||||
/systems/hydraulic/green-psi ge 1500
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<actuator name="gear/unit[2]/pos-norm-actuator">
|
||||
<input>/controls/gear/lever</input>
|
||||
<rate_limit sense="incr">gear/unit[2]/rate-incr</rate_limit>
|
||||
<rate_limit sense="decr">gear/unit[2]/rate-decr</rate_limit>
|
||||
<output>gear/unit[2]/pos-norm</output>
|
||||
</actuator>
|
||||
|
||||
</channel>
|
||||
|
||||
<channel name="Gear Misc">
|
||||
|
||||
<fcs_function name="gear/gear-all-norm">
|
||||
<function>
|
||||
<product>
|
||||
<property>gear/unit[0]/pos-norm-actuator</property>
|
||||
<property>gear/unit[1]/pos-norm-actuator</property>
|
||||
<property>gear/unit[2]/pos-norm-actuator</property>
|
||||
</product>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<switch name="gear/unit[0]/status">
|
||||
<default value="1"/> <!-- In transit -->
|
||||
<test logic="AND" value="0"> <!-- Up -->
|
||||
/controls/gear/lever-cockpit eq 0
|
||||
gear/unit[0]/pos-norm-actuator lt 0.01
|
||||
</test>
|
||||
<test logic="AND" value="2"> <!-- Down -->
|
||||
/controls/gear/lever-cockpit eq 3
|
||||
gear/unit[0]/pos-norm-actuator gt 0.99
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="gear/unit[1]/status">
|
||||
<default value="1"/> <!-- In transit -->
|
||||
<test logic="AND" value="0"> <!-- Up -->
|
||||
/controls/gear/lever-cockpit eq 0
|
||||
gear/unit[1]/pos-norm-actuator lt 0.01
|
||||
</test>
|
||||
<test logic="AND" value="2"> <!-- Down -->
|
||||
/controls/gear/lever-cockpit eq 3
|
||||
gear/unit[1]/pos-norm-actuator gt 0.99
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="gear/unit[2]/status">
|
||||
<default value="1"/> <!-- In transit -->
|
||||
<test logic="AND" value="0"> <!-- Up -->
|
||||
/controls/gear/lever-cockpit eq 0
|
||||
gear/unit[2]/pos-norm-actuator lt 0.01
|
||||
</test>
|
||||
<test logic="AND" value="2"> <!-- Down -->
|
||||
/controls/gear/lever-cockpit eq 3
|
||||
gear/unit[2]/pos-norm-actuator gt 0.99
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
</channel>
|
||||
|
||||
|
|
|
@ -3526,7 +3526,7 @@
|
|||
<switch name="/ECAM/warnings/fctl/gear-lever-down">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/controls/gear/gear-down eq 1
|
||||
/controls/gear/lever eq 1
|
||||
<test logic="OR">
|
||||
/ECAM/warning-phase eq 6
|
||||
/ECAM/warning-phase eq 7
|
||||
|
@ -4093,7 +4093,7 @@
|
|||
/gear/gear[2]/position-norm ge 0.99
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/controls/gear/gear-down eq 1
|
||||
/controls/gear/lever eq 1
|
||||
fcs/slat-pos-deg ge 4
|
||||
</test>
|
||||
</test>
|
||||
|
|
Loading…
Add table
Reference in a new issue