1
0
Fork 0

Merge branch 'dev' into cpdlc

This commit is contained in:
legoboyvdlp R 2020-12-11 19:28:39 +00:00
commit 6499139888
10 changed files with 294 additions and 65 deletions

View file

@ -531,14 +531,6 @@
</script> </script>
</binding> </binding>
</item> </item>
<item>
<label>Skip ADIRS</label>
<binding>
<command>property-assign</command>
<property>/controls/adirs/skip</property>
<value>1</value>
</binding>
</item>
<item> <item>
<label>Canvas QRH</label> <label>Canvas QRH</label>
<binding> <binding>
@ -2551,18 +2543,18 @@
<binding n="0"> <binding n="0">
<condition> <condition>
<and> <and>
<not><property>/FMGC/keyboard-left</property></not> <not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not> <not><property>/FMGC/keyboard-right</property></not>
<or> <or>
<equals> <equals>
<property>sim/current-view/name</property> <property>sim/current-view/name</property>
<value>Walk View</value> <value>Walk View</value>
</equals> </equals>
<equals> <equals>
<property>sim/current-view/name</property> <property>sim/current-view/name</property>
<value>Walker Orbit View</value> <value>Walker Orbit View</value>
</equals> </equals>
</or> </or>
</and> </and>
</condition> </condition>
<command>property-assign</command> <command>property-assign</command>
@ -2697,6 +2689,65 @@
<key n="68"> <key n="68">
<name>SHIFT-d</name> <name>SHIFT-d</name>
<desc>Autopilot Disconnect</desc> <desc>Autopilot Disconnect</desc>
<binding n="0">
<command>property-assign</command>
<condition>
<and>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
<or>
<equals>
<property>sim/current-view/name</property>
<value>Walk View</value>
</equals>
<equals>
<property>sim/current-view/name</property>
<value>Walker Orbit View</value>
</equals>
</or>
</and>
</condition>
<property>sim/walker/key-triggers/slide</property>
<value>1</value>
</binding>
<binding n="1">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<property>sim/walker/speed-mps</property>
</binding>
<binding n="2">
<command>property-multiply</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<factor>2.5</factor>
</binding>
<mod-up>
<binding n="0">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/slide</property>
<value>0</value>
</binding>
<binding n="1">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<property>sim/walker/speed-mps</property>
</binding>
</mod-up>
<binding> <binding>
<condition> <condition>
<property>/FMGC/keyboard-left</property> <property>/FMGC/keyboard-left</property>
@ -2713,8 +2764,22 @@
</binding> </binding>
<binding> <binding>
<condition> <condition>
<not><property>/FMGC/keyboard-left</property></not> <and>
<not><property>/FMGC/keyboard-right</property></not> <not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
<not>
<equals>
<property>sim/current-view/name</property>
<value>Walk View</value>
</equals>
</not>
<not>
<equals>
<property>sim/current-view/name</property>
<value>Walker Orbit View</value>
</equals>
</not>
</and>
</condition> </condition>
<command>nasal</command> <command>nasal</command>
<script> <script>
@ -3029,6 +3094,65 @@
<key n="83"> <key n="83">
<name>SHIFT-s</name> <name>SHIFT-s</name>
<desc>MCDU</desc> <desc>MCDU</desc>
<binding n="0">
<command>property-assign</command>
<condition>
<and>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
<or>
<equals>
<property>sim/current-view/name</property>
<value>Walk View</value>
</equals>
<equals>
<property>sim/current-view/name</property>
<value>Walker Orbit View</value>
</equals>
</or>
</and>
</condition>
<property>sim/walker/key-triggers/forward</property>
<value>-1</value>
</binding>
<binding n="1">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<property>sim/walker/speed-mps</property>
</binding>
<binding n="2">
<command>property-multiply</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<factor>2.5</factor>
</binding>
<mod-up>
<binding n="0">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/forward</property>
<value>0</value>
</binding>
<binding n="1">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<property>sim/walker/speed-mps</property>
</binding>
</mod-up>
<binding> <binding>
<condition> <condition>
<property>/FMGC/keyboard-left</property> <property>/FMGC/keyboard-left</property>
@ -3109,6 +3233,65 @@
<key n="87"> <key n="87">
<name>SHIFT-w</name> <name>SHIFT-w</name>
<desc>MCDU</desc> <desc>MCDU</desc>
<binding n="0">
<command>property-assign</command>
<condition>
<and>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
<or>
<equals>
<property>sim/current-view/name</property>
<value>Walk View</value>
</equals>
<equals>
<property>sim/current-view/name</property>
<value>Walker Orbit View</value>
</equals>
</or>
</and>
</condition>
<property>sim/walker/key-triggers/forward</property>
<value>1</value>
</binding>
<binding n="1">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<property>sim/walker/speed-mps</property>
</binding>
<binding n="2">
<command>property-multiply</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<factor>5.0</factor>
</binding>
<mod-up>
<binding n="0">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/forward</property>
<value>0</value>
</binding>
<binding n="1">
<command>property-assign</command>
<condition>
<not><property>/FMGC/keyboard-left</property></not>
<not><property>/FMGC/keyboard-right</property></not>
</condition>
<property>sim/walker/key-triggers/speed</property>
<property>sim/walker/speed-mps</property>
</binding>
</mod-up>
<binding> <binding>
<condition> <condition>
<property>/FMGC/keyboard-left</property> <property>/FMGC/keyboard-left</property>

View file

@ -428,7 +428,7 @@
<animation> <animation>
<type>rotate</type> <type>rotate</type>
<object-name>brakes_accum_psi</object-name> <object-name>brakes_accum_psi</object-name>
<property>systems/hydraulic/brakes/accumulator-pressure-psi</property> <property>systems/hydraulic/yellow-accumulator-psi</property>
<interpolation> <interpolation>
<entry><ind>0</ind><dep>0</dep></entry> <entry><ind>0</ind><dep>0</dep></entry>
<entry><ind>700</ind><dep>-20</dep></entry> <entry><ind>700</ind><dep>-20</dep></entry>

View file

@ -282,8 +282,6 @@ var showIESI = func {
dlg.setCanvas(A320IESI.MainScreen.canvas); dlg.setCanvas(A320IESI.MainScreen.canvas);
} }
setlistener("", func() { if (A320IESI.MainScreen != nil) { A320IESI.MainScreen.updateQNH(notification); } }, 0, 0);
var roundabout = func(x) { var roundabout = func(x) {
var y = x - int(x); var y = x - int(x);
return y < 0.5 ? int(x) : 1 + int(x); return y < 0.5 ? int(x) : 1 + int(x);

View file

@ -510,12 +510,21 @@ var canvas_lowerECAM_base = {
me["UTCh"].setText(sprintf("%02d", hour.getValue())); me["UTCh"].setText(sprintf("%02d", hour.getValue()));
me["UTCm"].setText(sprintf("%02d", minute.getValue())); me["UTCm"].setText(sprintf("%02d", minute.getValue()));
me.gwStore = pts.Fdm.JSBsim.Inertia.weightLbs.getValue(); if (fmgc.FMGCInternal.fuelRequest and fmgc.FMGCInternal.blockConfirmed and !fmgc.FMGCInternal.fuelCalculating and ecam.phaseNode.getValue() != 1) {
if (acconfig_weight_kgs.getValue()) {
me["GW"].setText(sprintf("%s", math.round(fmgc.FMGCInternal.fuelPredGw * 1000 * LBS2KGS, 100)));
} else {
me["GW"].setText(sprintf("%s", math.round(fmgc.FMGCInternal.fuelPredGw * 1000, 100)));
}
me["GW"].setColor(0.0509,0.7529,0.2941);
} else {
me["GW"].setText(sprintf("%s", "-----"));
me["GW"].setColor(0.0901,0.6039,0.7176);
}
if (acconfig_weight_kgs.getValue()) { if (acconfig_weight_kgs.getValue()) {
me["GW"].setText(sprintf("%s", math.round(math.round(me.gwStore * LBS2KGS, 100))));
me["GW-weight-unit"].setText("KG"); me["GW-weight-unit"].setText("KG");
} else { } else {
me["GW"].setText(sprintf("%s", math.round(me.gwStore, 100)));
me["GW-weight-unit"].setText("LBS"); me["GW-weight-unit"].setText("LBS");
} }
}, },

View file

@ -59,9 +59,9 @@ var SimbriefParser = {
} }
if (size(result) == 0) { return nil; } if (size(result) == 0) { return nil; }
foreach (var test; result) { forindex (var test; result) {
if (math.abs(test.lat - coords.lat()) < 0.01666666666 and math.abs(test.lon - coords.lon()) < 0.01666666666) { if (math.abs(result[test].lat - coords.lat()) < 0.01666666666 and math.abs(result[test].lon - coords.lon()) < 0.01666666666) {
return test; return result[test];
} }
} }
return nil; return nil;
@ -170,11 +170,13 @@ var SimbriefParser = {
ofpFix.getNode("pos_lat").getValue(), ofpFix.getNode("pos_lat").getValue(),
ofpFix.getNode("pos_long").getValue()); ofpFix.getNode("pos_long").getValue());
wp = me.tryFindByCoord(coords,ident,"fix"); #wp = me.tryFindByCoord(coords,ident,"fix");
wp = me.tryFindByCoord(coords,ident,"nav"); #if (wp == nil) {
if (wp == nil) { # wp = me.tryFindByCoord(coords,ident,"nav");
#}
#if (wp == nil) {
wp = createWP(coords, ident); wp = createWP(coords, ident);
} #}
append(wps, wp); append(wps, wp);
} }

View file

@ -79,10 +79,10 @@ controls.flapsDown = func(step) {
} }
controls.elevatorTrim = func(d) { controls.elevatorTrim = func(d) {
if (systems.HYD.Psi.green.getValue() >= 1500) { 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.125 / 13.5) slewProp("/controls/flight/elevator-trim", d * 0.0185); # Rate in JSB normalized (0.25 / 13.5)
} else { } else {
slewProp("/controls/flight/elevator-trim", d * 0.0092) # Rate in JSB normalized (0.125 / 13.5) slewProp("/controls/flight/elevator-trim", d * 0.0092) # Handcranking?
} }
} }

View file

@ -7,7 +7,7 @@ var rcont = 0;
var HYD = { var HYD = {
Brakes: { Brakes: {
accumPressPsi: props.globals.initNode("/systems/hydraulic/brakes/accumulator-pressure-psi", 0, "INT"), accumPressPsi: props.globals.initNode("/systems/hydraulic/yellow-accumulator-psi-cmd", 0, "INT"),
leftPressPsi: props.globals.initNode("/systems/hydraulic/brakes/pressure-left-psi", 0, "INT"), leftPressPsi: props.globals.initNode("/systems/hydraulic/brakes/pressure-left-psi", 0, "INT"),
rightPressPsi: props.globals.initNode("/systems/hydraulic/brakes/pressure-right-psi", 0, "INT"), rightPressPsi: props.globals.initNode("/systems/hydraulic/brakes/pressure-right-psi", 0, "INT"),
askidSw: props.globals.initNode("/systems/hydraulic/brakes/askidnwssw", 1, "BOOL"), askidSw: props.globals.initNode("/systems/hydraulic/brakes/askidnwssw", 1, "BOOL"),
@ -91,9 +91,6 @@ var HYD = {
} else { } else {
me.Brakes.askidSw.setBoolValue(0); #false me.Brakes.askidSw.setBoolValue(0); #false
} }
if (me.Psi.yellow.getValue() > 0 and me.Brakes.accumPressPsi.getValue() < 3000 and me.Psi.yellow.getValue() > me.Brakes.accumPressPsi.getValue()) {
me.Brakes.accumPressPsi.setValue(me.Brakes.accumPressPsi.getValue() + 50);
}
# Decrease accumPressPsi when green and yellow hydraulic's aren't pressurized # Decrease accumPressPsi when green and yellow hydraulic's aren't pressurized
if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) { if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
@ -106,13 +103,11 @@ var HYD = {
} else { } else {
rcont = 0; rcont = 0;
} }
if ((me.Psi.green.getValue() == 0) and (me.Psi.yellow.getValue() == 0) and (me.Brakes.accumPressPsi.getValue()) > 0) { if (me.Psi.yellow.getValue() < me.Brakes.accumPressPsi.getValue() and me.Brakes.accumPressPsi.getValue() > 0) {
if (lcont == 1) { if (lcont == 1) {
#me.Brakes.accumPressPsi.setValue(me.Brakes.accumPressPsi.getValue() - (35 * me.Brakes.leftbrake.getValue()));
me.Brakes.accumPressPsi.setValue(me.Brakes.accumPressPsi.getValue() - 200); me.Brakes.accumPressPsi.setValue(me.Brakes.accumPressPsi.getValue() - 200);
} }
if (rcont == 1) { if (rcont == 1) {
#me.Brakes.accumPressPsi.setValue(me.Brakes.accumPressPsi.getValue() - (35 * me.Brakes.leftbrake.getValue()));
me.Brakes.accumPressPsi.setValue(me.Brakes.accumPressPsi.getValue() - 200); me.Brakes.accumPressPsi.setValue(me.Brakes.accumPressPsi.getValue() - 200);
} }
if (me.Brakes.accumPressPsi.getValue() < 0) { if (me.Brakes.accumPressPsi.getValue() < 0) {
@ -124,52 +119,63 @@ var HYD = {
if (me.Brakes.mode.getValue() == 1 or (me.Brakes.mode.getValue() == 2 and me.Psi.green.getValue() >= 2500)) { if (me.Brakes.mode.getValue() == 1 or (me.Brakes.mode.getValue() == 2 and me.Psi.green.getValue() >= 2500)) {
# Normal braking - Green OK # Normal braking - Green OK
if (me.Brakes.leftbrake.getValue() > 0) { if (me.Brakes.leftbrake.getValue() > 0) {
me.Brakes.leftPressPsi.setValue(props.globals.getValue("/systems/hydraulic/green-psi-ptu")); me.Brakes.leftPressPsi.setValue(me.Psi.green.getValue() * pts.Fdm.JSBsim.Fcs.brake[0].getValue());
} else { } else {
me.Brakes.leftPressPsi.setValue(0); me.Brakes.leftPressPsi.setValue(0);
} }
if (me.Brakes.rightbrake.getValue() > 0) { if (me.Brakes.rightbrake.getValue() > 0) {
me.Brakes.rightPressPsi.setValue(props.globals.getValue("/systems/hydraulic/green-psi-ptu")); me.Brakes.rightPressPsi.setValue(me.Psi.green.getValue() * pts.Fdm.JSBsim.Fcs.brake[1].getValue());
} else { } else {
me.Brakes.rightPressPsi.setValue(0); me.Brakes.rightPressPsi.setValue(0);
} }
} else { } else {
if ((me.Brakes.mode.getValue() == 2 and me.Psi.green.getValue() < 2500) or me.Brakes.mode.getValue() == 0) { if ((me.Brakes.mode.getValue() == 2 and me.Psi.green.getValue() < 2500) or me.Brakes.mode.getValue() == 0) {
# Alternate Braking (Yellow OK + Antiskid ON + electric OK) - missing condition: BSCU OK-KO # Alternate Braking (Yellow OK + Antiskid ON + electric OK) - missing condition: BSCU OK-KO
if (me.Psi.yellow.getValue() >= 2500 and me.Brakes.askidSw.getValue() and props.globals.getValue("/systems/electrical/serviceable")) { if (me.Psi.yellow.getValue() >= 2500 and me.Brakes.askidSw.getValue() and (systems.ELEC.Bus.dc1.getValue() >= 24 or systems.ELEC.Bus.dc2.getValue() >= 24 or systems.ELEC.Bus.dcEss.getValue() >= 24)) {
if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) { if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.leftPressPsi.setValue(props.globals.getValue("/systems/hydraulic/yellow-psi-ptu")); me.Brakes.leftPressPsi.setValue(me.Psi.yellow.getValue() * pts.Fdm.JSBsim.Fcs.brake[0].getValue());
} else { } else {
me.Brakes.leftPressPsi.setValue(0); me.Brakes.leftPressPsi.setValue(0);
} }
if (me.Brakes.rightbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) { if (me.Brakes.rightbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.rightPressPsi.setValue(props.globals.getValue("/systems/hydraulic/yellow-psi-ptu")); me.Brakes.rightPressPsi.setValue(me.Psi.yellow.getValue() * pts.Fdm.JSBsim.Fcs.brake[1].getValue());
} else { } else {
me.Brakes.rightPressPsi.setValue(0); me.Brakes.rightPressPsi.setValue(0);
} }
} else { } else {
# Alternate Braking (Yellow OK + Antiskid OFF + electric OK) - missing condition: BSCU OK-KO # Alternate Braking (Yellow OK + Antiskid OFF + electric OK) - missing condition: BSCU OK-KO
if (me.Psi.yellow.getValue() >= 2500 and !me.Brakes.askidSw.getValue() and props.globals.getValue("/systems/electrical/serviceable")) { if (me.Psi.yellow.getValue() >= 2500 and !me.Brakes.askidSw.getValue() and (systems.ELEC.Bus.dc1.getValue() >= 24 or systems.ELEC.Bus.dc2.getValue() >= 24 or systems.ELEC.Bus.dcEss.getValue() >= 24)) {
if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) { if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.leftPressPsi.setValue(1000); me.Brakes.leftPressPsi.setValue(1000 * pts.Fdm.JSBsim.Fcs.brake[0].getValue());
} else { } else {
me.Brakes.leftPressPsi.setValue(0); me.Brakes.leftPressPsi.setValue(0);
} }
if (me.Brakes.rightbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) { if (me.Brakes.rightbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.rightPressPsi.setValue(1000); me.Brakes.rightPressPsi.setValue(1000 * pts.Fdm.JSBsim.Fcs.brake[1].getValue());
} else { } else {
me.Brakes.rightPressPsi.setValue(0); me.Brakes.rightPressPsi.setValue(0);
} }
} else { } else {
# Alternate Braking (Yellow KO or Antiskid KO or electric KO) - missing condition: BSCU OK-KO # Alternate Braking (Yellow KO or Antiskid KO or electric KO) - missing condition: BSCU OK-KO
if (me.Psi.yellow.getValue() < 2500 or !me.Brakes.askidSw.getValue() or !props.globals.getValue("/systems/electrical/serviceable")) { if (me.Brakes.accumPressPsi.getValue() < 1000 and (me.Psi.yellow.getValue() < 2500 or !me.Brakes.askidSw.getValue() or (systems.ELEC.Bus.dc1.getValue() < 24 and systems.ELEC.Bus.dc2.getValue() < 24 and systems.ELEC.Bus.dcEss.getValue() < 24))) {
if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) { if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.leftPressPsi.setValue(me.Brakes.accumPressPsi.getValue()); me.Brakes.leftPressPsi.setValue(me.Brakes.accumPressPsi.getValue() * pts.Fdm.JSBsim.Fcs.brake[0].getValue());
} else { } else {
me.Brakes.leftPressPsi.setValue(0); me.Brakes.leftPressPsi.setValue(0);
} }
if (me.Brakes.rightbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) { if (me.Brakes.rightbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.rightPressPsi.setValue(me.Brakes.accumPressPsi.getValue()); me.Brakes.rightPressPsi.setValue(me.Brakes.accumPressPsi.getValue() * pts.Fdm.JSBsim.Fcs.brake[1].getValue());
} else {
me.Brakes.rightPressPsi.setValue(0);
}
} else {
if (me.Brakes.leftbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.leftPressPsi.setValue(1000 * pts.Fdm.JSBsim.Fcs.brake[0].getValue());
} else {
me.Brakes.leftPressPsi.setValue(0);
}
if (me.Brakes.rightbrake.getValue() > 0 or me.Brakes.mode.getValue() == 0) {
me.Brakes.rightPressPsi.setValue(1000 * pts.Fdm.JSBsim.Fcs.brake[1].getValue());
} else { } else {
me.Brakes.rightPressPsi.setValue(0); me.Brakes.rightPressPsi.setValue(0);
} }

View file

@ -1,7 +1,7 @@
# A320-family # A320-family
A very advanced simulation of the Airbus A320 Family for FlightGear. A very advanced simulation of the Airbus A320 Family for FlightGear.
- Flight Dyanmics: Josh Davidson (Octal450)</label> - Flight Dynamics: Josh Davidson (Octal450)</label>
- Systems: Josh Davidson (Octal450), Jonathan Redpath (legoboyvdlp), merspieler, Matthew Maring (mattmaring)</label> - Systems: Josh Davidson (Octal450), Jonathan Redpath (legoboyvdlp), merspieler, Matthew Maring (mattmaring)</label>
- Displays: Josh Davidson (Octal450), Jonathan Redpath (legoboyvdlp), merspieler, Matthew Maring (mattmaring)</label> - Displays: Josh Davidson (Octal450), Jonathan Redpath (legoboyvdlp), merspieler, Matthew Maring (mattmaring)</label>
- 3D/Textures: Thorsten Herrmann (TH-555), Semir Gebran (CaptB)</label> - 3D/Textures: Thorsten Herrmann (TH-555), Semir Gebran (CaptB)</label>

View file

@ -372,12 +372,13 @@
<switch name="hydraulics/elevator-trim/rate"> <switch name="hydraulics/elevator-trim/rate">
<default value="0"/> <!-- only mechanical input to hyd actuator. So it does need hydraulic power --> <default value="0"/> <!-- only mechanical input to hyd actuator. So it does need hydraulic power -->
<test logic="OR" value="0"> <test value="0">
/systems/failures/fctl/ths-jam eq 1 /systems/failures/fctl/ths-jam eq 1
</test> </test>
<test logic="OR" value="0.25"> <test logic="OR" value="0.25">
/systems/hydraulic/yellow-psi ge 1500 /systems/hydraulic/yellow-psi ge 1500
/systems/hydraulic/green-psi ge 1500 /systems/hydraulic/green-psi ge 1500
/systems/acconfig/autoconfig-running eq 1
</test> </test>
</switch> </switch>
@ -1172,11 +1173,13 @@
</actuator> </actuator>
<switch name="fcs/brake-avail"> <switch name="fcs/brake-avail">
<default value="1"/> <default value="0"/>
<!--<test logic="OR" value="1"> <test logic="OR" value="1">
/systems/hydraulic/green-psi ge 2000 /systems/hydraulic/green-psi ge 2500
/systems/hydraulic/yellow-psi ge 1500 /systems/hydraulic/yellow-psi ge 1000
</test>--> /systems/hydraulic/yellow-accumulator-psi gt 0
</test>
<output>fcs/brake-avail</output>
</switch> </switch>
<fcs_function name="fcs/left-brake-input"> <fcs_function name="fcs/left-brake-input">

View file

@ -447,7 +447,7 @@
</ifthen> </ifthen>
</function> </function>
</fcs_function> </fcs_function>
<actuator name="/systems/hydraulic/yellow-psi"> <actuator name="/systems/hydraulic/yellow-psi">
<input>/systems/hydraulic/yellow-psi-cmd</input> <input>/systems/hydraulic/yellow-psi-cmd</input>
<rate_limit sense="incr">/systems/hydraulic/sys-incr-rate</rate_limit> <rate_limit sense="incr">/systems/hydraulic/sys-incr-rate</rate_limit>
@ -458,6 +458,34 @@
<input>/systems/hydraulic/yellow-psi</input> <input>/systems/hydraulic/yellow-psi</input>
<gain>0.9</gain> <gain>0.9</gain>
</pure_gain> </pure_gain>
<fcs_function name="/systems/hydraulic/yellow-accumulator-psi-cmd">
<function>
<ifthen>
<and>
<ge>
<property>/systems/hydraulic/yellow-psi</property>
<value>0</value>
</ge>
<ge>
<property>/systems/hydraulic/yellow-psi</property>
<property>/systems/hydraulic/yellow-accumulator-psi-cmd</property>
</ge>
</and>
<max>
<property>/systems/hydraulic/yellow-psi</property>
<property>/systems/hydraulic/yellow-accumulator-psi-cmd</property>
</max>
<property>/systems/hydraulic/yellow-accumulator-psi-cmd</property>
</ifthen>
</function>
</fcs_function>
<actuator name="/systems/hydraulic/yellow-accumulator-psi">
<input>/systems/hydraulic/yellow-accumulator-psi-cmd</input>
<rate_limit sense="incr">/systems/hydraulic/sys-incr-rate</rate_limit>
<rate_limit sense="decr">/systems/hydraulic/sys-decr-rate</rate_limit>
</actuator>
<!-- PTU --> <!-- PTU -->
<fcs_function name="/systems/hydraulic/yellow-psi-diff"> <fcs_function name="/systems/hydraulic/yellow-psi-diff">
@ -571,7 +599,7 @@
</test> </test>
<test logic="AND" value="2"> <test logic="AND" value="2">
/controls/gear/brake-parking ne 1 /controls/gear/brake-parking ne 1
/systems/hydraulic/brakes/accumulator-pressure-psi ge 0 /systems/hydraulic/yellow-accumulator-psi-cmd ge 0
</test> </test>
</switch> </switch>
</channel> </channel>