diff --git a/A320-100-CFM.xml b/A320-100-CFM.xml index 4b557e69..89c4181e 100644 --- a/A320-100-CFM.xml +++ b/A320-100-CFM.xml @@ -29,7 +29,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 1 - 3 + 4 14.3962788 @@ -55,7 +55,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 -1 - 4 + 5 14.3962788 @@ -70,43 +70,70 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> - + 18.9231 -5.1104 -0.61182 - 13914 - 6000 - 31 + 1552.00 + 1552.00 + 17.75 1 - JET-A1 + 6.67 50 + + + 18.9231 + -5.1104 + -0.61182 + + 12212.50 + 6000.00 + 11.70 + 1 + 6.67 + 50 + + 18.9731 0 -0.61182 - 14281 - 0 - 43 + 14550.50 + 40.88 + 23.20 1 - JET-A1 + 6.67 50 - + 18.9231 5.1104 -0.61182 - 13914 - 6000 - 31 + 12212.50 + 6000.00 + 11.70 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + 5.1104 + -0.61182 + + 1552.00 + 1552.00 + 17.75 + 1 + 6.67 50 @@ -118,7 +145,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 @@ -129,13 +156,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 + diff --git a/A320-200-CFM.xml b/A320-200-CFM.xml index 967029f1..ff16530b 100644 --- a/A320-200-CFM.xml +++ b/A320-200-CFM.xml @@ -29,7 +29,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 1 - 3 + 5 14.3962788 @@ -55,7 +55,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 -1 - 4 + 6 14.3962788 @@ -70,17 +70,30 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> - + 18.9231 -5.1104 -0.61182 - 13914 - 6000 - 31 + 1552.00 + 1552.00 + 17.75 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + -5.1104 + -0.61182 + + 12520.50 + 6000.00 + 11.70 + 1 + 6.67 50 @@ -89,24 +102,37 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 0 -0.61182 - 14281 - 0 - 43 + 14550.50 + 40.88 + 23.20 1 - JET-A1 + 6.67 50 - + 18.9231 5.1104 -0.61182 - 13914 - 6000 - 31 + 12520.50 + 6000.00 + 11.70 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + 5.1104 + -0.61182 + + 1552.00 + 1552.00 + 17.75 + 1 + 6.67 50 @@ -118,7 +144,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 @@ -129,7 +155,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 @@ -137,6 +163,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> + diff --git a/A320-200-IAE.xml b/A320-200-IAE.xml index 7de9fec7..71893993 100644 --- a/A320-200-IAE.xml +++ b/A320-200-IAE.xml @@ -29,7 +29,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 1 - 3 + 5 14.3962788 @@ -55,7 +55,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 -1 - 4 + 6 14.3962788 @@ -70,17 +70,30 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> - + 18.9231 -5.1104 -0.61182 - 13914 - 6000 - 31 + 1552.00 + 1552.00 + 17.75 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + -5.1104 + -0.61182 + + 12212.50 + 6000.00 + 11.70 + 1 + 6.67 50 @@ -89,24 +102,37 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 0 -0.61182 - 14281 - 0 - 43 + 14550.50 + 40.88 + 23.20 1 - JET-A1 + 6.67 50 - + 18.9231 5.1104 -0.61182 - 13914 - 6000 - 31 + 12212.50 + 6000.00 + 11.70 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + 5.1104 + -0.61182 + + 1552.00 + 1552.00 + 17.75 + 1 + 6.67 50 @@ -118,7 +144,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 @@ -129,13 +155,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 + diff --git a/A320-main.xml b/A320-main.xml index 1f51f39c..02966270 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -392,18 +392,24 @@ - Left Wing + Outer Left Wing - Center + Inner Left Wing - Right Wing + Center - Engine 1 Pipes + Inner Right Wing + Outer Right Wing + + + Engine 1 Pipes + + Engine 2 Pipes @@ -635,6 +641,18 @@ 0 0 + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + 0 0 @@ -950,7 +968,12 @@ 0 - 0 + 0 + + 0 + + 0 + 0 0 diff --git a/A320neo-CFM.xml b/A320neo-CFM.xml index a86f4889..8e5541a9 100644 --- a/A320neo-CFM.xml +++ b/A320neo-CFM.xml @@ -29,7 +29,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 1 - 3 + 5 14.3962788 @@ -55,7 +55,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 -1 - 4 + 6 14.3962788 @@ -70,17 +70,30 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> - + 18.9231 -5.1104 -0.61182 - 13914 - 6000 - 31 + 1552.00 + 1552.00 + 17.75 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + -5.1104 + -0.61182 + + 12147.00 + 6000.00 + 11.70 + 1 + 6.67 50 @@ -89,24 +102,37 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 0 -0.61182 - 14281 - 0 - 43 + 14601.44 + 40.88 + 23.20 1 - JET-A1 + 6.67 50 - + 18.9231 5.1104 -0.61182 - 13914 - 6000 - 31 + 12147.00 + 6000.00 + 11.70 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + 5.1104 + -0.61182 + + 1552.00 + 1552.00 + 17.75 + 1 + 6.67 50 @@ -118,7 +144,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 @@ -129,13 +155,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 + diff --git a/A320neo-PW.xml b/A320neo-PW.xml index b84e5c0d..6bfe1af2 100644 --- a/A320neo-PW.xml +++ b/A320neo-PW.xml @@ -29,7 +29,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 1 - 3 + 5 14.3962788 @@ -55,7 +55,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 2.2 -1 - 4 + 6 14.3962788 @@ -70,17 +70,30 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> - + 18.9231 -5.1104 -0.61182 - 13914 - 6000 - 31 + 1552.00 + 1552.00 + 17.75 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + -5.1104 + -0.61182 + + 12147.00 + 6000.00 + 11.70 + 1 + 6.67 50 @@ -89,24 +102,37 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 0 -0.61182 - 14281 - 0 - 43 + 14601.44 + 40.88 + 23.20 1 - JET-A1 + 6.67 50 - + 18.9231 5.1104 -0.61182 - 13914 - 6000 - 31 + 12147.00 + 6000.00 + 11.70 1 - JET-A1 + 6.67 + 50 + + + + 18.9231 + 5.1104 + -0.61182 + + 1552.00 + 1552.00 + 17.75 + 1 + 6.67 50 @@ -118,7 +144,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 @@ -129,13 +155,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> 10 0 1 - JET-A1 + 6.67 + diff --git a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas index 896fb189..63b03d7a 100644 --- a/Models/Instruments/Lower-ECAM/Lower-ECAM.nas +++ b/Models/Instruments/Lower-ECAM/Lower-ECAM.nas @@ -111,11 +111,8 @@ var switch_pack1 = props.globals.getNode("/controls/pneumatic/switches/pack1", 1 var switch_pack2 = props.globals.getNode("/controls/pneumatic/switches/pack2", 1); var oil_qt1_actual = props.globals.getNode("/engines/engine[0]/oil-qt-actual", 1); var oil_qt2_actual = props.globals.getNode("/engines/engine[1]/oil-qt-actual", 1); -var fuel_used_lbs1 = props.globals.getNode("/fdm/jsbsim/propulsion/engine[0]/fuel-used-lbs", 1); -var fuel_used_lbs2 = props.globals.getNode("/fdm/jsbsim/propulsion/engine[1]/fuel-used-lbs", 1); -var fuel_left_quantity = props.globals.getNode("/consumables/fuel/tank[0]/level-lbs", 1); -var fuel_center_quantity = props.globals.getNode("/consumables/fuel/tank[1]/level-lbs", 1); -var fuel_right_quantity = props.globals.getNode("/consumables/fuel/tank[2]/level-lbs", 1); +var fuel_used_lbs1 = props.globals.getNode("/systems/fuel/fuel-used-1", 1); +var fuel_used_lbs2 = props.globals.getNode("/systems/fuel/fuel-used-2", 1); var doorL1_pos = props.globals.getNode("sim/model/door-positions/doorl1/position-norm", 1); var doorR1_pos = props.globals.getNode("sim/model/door-positions/doorr1/position-norm", 1); var doorL4_pos = props.globals.getNode("sim/model/door-positions/doorl4/position-norm", 1); @@ -2241,17 +2238,21 @@ var canvas_lowerECAM_fuel = { update: func() { # if (getprop("engines/engine[0]/n1-actual") < getprop("/controls/engines/idle-limit")) { - if (eng1_n1.getValue() <= 18.9) { + if (eng1_n1.getValue() <= 18.8) { me["ENG1idFFlow"].setColor(0.7333,0.3803,0); + me["FUEL-ENG-1-label"].setColor(0.7333,0.3803,0); } else { me["ENG1idFFlow"].setColor(0.8078,0.8039,0.8078); + me["FUEL-ENG-1-label"].setColor(0.8078,0.8039,0.8078); } # if (getprop("engines/engine[1]/n1-actual") < getprop("/controls/engines/idle-limit")) { - if (eng2_n1.getValue() <= 18.9) { + if (eng2_n1.getValue() <= 18.5) { me["ENG2idFFlow"].setColor(0.7333,0.3803,0); + me["FUEL-ENG-2-label"].setColor(0.7333,0.3803,0); } else { me["ENG2idFFlow"].setColor(0.8078,0.8039,0.8078); + me["FUEL-ENG-2-label"].setColor(0.8078,0.8039,0.8078); } # TODO add FOB half-boxed amber if some fuel is blocked @@ -2265,31 +2266,31 @@ var canvas_lowerECAM_fuel = { me["FUEL-Flow-per-min"].setText("XX"); } - # this is now bound to the ENG master switch # TODO use the valve prop and add amber if difference between eng master and valve # TODO add transition state - # TODO fix amber/green at the same time when closed - if (cutoff_switch1.getValue() == 0) { + if (systems.FUEL.Valves.lpValve1.getValue() == 1) { me["FUEL-ENG-Master-1"].setRotation(0); me["FUEL-ENG-Master-1"].setColor(0.0509,0.7529,0.2941); + me["FUEL-ENG-Master-1"].setColorFill(0.0509,0.7529,0.2941); me["FUEL-ENG-1-pipe"].setColor(0.0509,0.7529,0.2941); } else { me["FUEL-ENG-Master-1"].setRotation(90 * D2R); me["FUEL-ENG-Master-1"].setColor(0.7333,0.3803,0); + me["FUEL-ENG-Master-1"].setColorFill(0.7333,0.3803,0); me["FUEL-ENG-1-pipe"].setColor(0.7333,0.3803,0); } - # this is now bound to the ENG master switch # TODO use the valve prop and add amber if difference between eng master and valve # TODO add transition state - # TODO fix amber/green at the same time when closed - if (cutoff_switch2.getValue() == 0) { + if (systems.FUEL.Valves.lpValve2.getValue() == 1) { me["FUEL-ENG-Master-2"].setRotation(0); me["FUEL-ENG-Master-2"].setColor(0.0509,0.7529,0.2941); + me["FUEL-ENG-Master-2"].setColorFill(0.0509,0.7529,0.2941); me["FUEL-ENG-2-pipe"].setColor(0.0509,0.7529,0.2941); } else { me["FUEL-ENG-Master-2"].setRotation(90 * D2R); me["FUEL-ENG-Master-2"].setColor(0.7333,0.3803,0); + me["FUEL-ENG-Master-2"].setColorFill(0.7333,0.3803,0); me["FUEL-ENG-2-pipe"].setColor(0.7333,0.3803,0); } @@ -2297,7 +2298,7 @@ var canvas_lowerECAM_fuel = { # TODO use the valve prop # TODO add amber when disagree between switch and btn # TODO add transition state - if (fuel_xfeed.getValue() == 1) { + if (systems.FUEL.Valves.crossfeed.getValue() == 1) { me["FUEL-XFEED"].setRotation(0); me["FUEL-XFEED-pipes"].show(); } else { @@ -2306,75 +2307,81 @@ var canvas_lowerECAM_fuel = { } # TODO add LO indication - # TODO fix amber/green at the same time when closed - if (tank0pump1.getValue() == 1) { + if (systems.FUEL.Switches.pumpLeft1.getValue() == 1) { me["FUEL-Pump-Left-1-Open"].show(); me["FUEL-Pump-Left-1-Closed"].hide(); me["FUEL-Pump-Left-1"].setColor(0.0509,0.7529,0.2941); + me["FUEL-Pump-Left-1"].setColorFill(0.0509,0.7529,0.2941); } else { me["FUEL-Pump-Left-1-Open"].hide(); me["FUEL-Pump-Left-1-Closed"].show(); me["FUEL-Pump-Left-1"].setColor(0.7333,0.3803,0); + me["FUEL-Pump-Left-1"].setColorFill(0.7333,0.3803,0); } # TODO add LO indication - # TODO fix amber/green at the same time when closed - if (tank0pump2.getValue() == 1) { + if (systems.FUEL.Switches.pumpLeft2.getValue() == 1) { me["FUEL-Pump-Left-2-Open"].show(); me["FUEL-Pump-Left-2-Closed"].hide(); me["FUEL-Pump-Left-2"].setColor(0.0509,0.7529,0.2941); + me["FUEL-Pump-Left-2"].setColorFill(0.0509,0.7529,0.2941); } else { me["FUEL-Pump-Left-2-Open"].hide(); me["FUEL-Pump-Left-2-Closed"].show(); me["FUEL-Pump-Left-2"].setColor(0.7333,0.3803,0); + me["FUEL-Pump-Left-2"].setColorFill(0.7333,0.3803,0); } - # TODO fix amber/green at the same time when closed # TODO add functionality to match FCOM 1.28.20 "Amber: Transfer valve is open, whereas commanded closed in automatic or manual mode" - if (tank1pump1.getValue() == 1) { + if (systems.FUEL.Switches.pumpCenter1.getValue() == 1) { me["FUEL-Pump-Center-1-Open"].show(); me["FUEL-Pump-Center-1-Closed"].hide(); me["FUEL-Pump-Center-1"].setColor(0.0509,0.7529,0.2941); + me["FUEL-Pump-Center-1"].setColorFill(0.0509,0.7529,0.2941); } else { me["FUEL-Pump-Center-1-Open"].hide(); me["FUEL-Pump-Center-1-Closed"].show(); me["FUEL-Pump-Center-1"].setColor(0.7333,0.3803,0); + me["FUEL-Pump-Center-1"].setColorFill(0.7333,0.3803,0); } # TODO add LO indication - # TODO fix amber/green at the same time when closed - if (tank1pump2.getValue() == 1) { + if (systems.FUEL.Switches.pumpCenter2.getValue() == 1) { me["FUEL-Pump-Center-2-Open"].show(); me["FUEL-Pump-Center-2-Closed"].hide(); me["FUEL-Pump-Center-2"].setColor(0.0509,0.7529,0.2941); + me["FUEL-Pump-Center-2"].setColorFill(0.0509,0.7529,0.2941); } else { me["FUEL-Pump-Center-2-Open"].hide(); me["FUEL-Pump-Center-2-Closed"].show(); me["FUEL-Pump-Center-2"].setColor(0.7333,0.3803,0); + me["FUEL-Pump-Center-2"].setColorFill(0.7333,0.3803,0); } # TODO add LO indication - # TODO fix amber/green at the same time when closed - if (tank2pump1.getValue() == 1) { + if (systems.FUEL.Switches.pumpRight1.getValue() == 1) { me["FUEL-Pump-Right-1-Open"].show(); me["FUEL-Pump-Right-1-Closed"].hide(); me["FUEL-Pump-Right-1"].setColor(0.0509,0.7529,0.2941); + me["FUEL-Pump-Right-1"].setColorFill(0.0509,0.7529,0.2941); } else { me["FUEL-Pump-Right-1-Open"].hide(); me["FUEL-Pump-Right-1-Closed"].show(); me["FUEL-Pump-Right-1"].setColor(0.7333,0.3803,0); + me["FUEL-Pump-Right-1"].setColorFill(0.7333,0.3803,0); } # TODO add LO indication - # TODO fix amber/green at the same time when closed - if (tank2pump2.getValue() == 1) { + if (systems.FUEL.Switches.pumpRight2.getValue() == 1) { me["FUEL-Pump-Right-2-Open"].show(); me["FUEL-Pump-Right-2-Closed"].hide(); me["FUEL-Pump-Right-2"].setColor(0.0509,0.7529,0.2941); + me["FUEL-Pump-Right-2"].setColorFill(0.0509,0.7529,0.2941); } else { me["FUEL-Pump-Right-2-Open"].hide(); me["FUEL-Pump-Right-2-Closed"].show(); me["FUEL-Pump-Right-2"].setColor(0.7333,0.3803,0); + me["FUEL-Pump-Right-2"].setColorFill(0.7333,0.3803,0); } # Fuel Used @@ -2390,41 +2397,44 @@ var canvas_lowerECAM_fuel = { # Fuel Quantity # TODO add LO indication - if (fuel_left_quantity.getValue() >= 3170) { - me["FUEL-Left-Inner-quantity"].setText(sprintf("%s", math.round(fuel_left_quantity.getValue() - 1520, 10))); - me["FUEL-Left-Outer-quantity"].setText(sprintf("%s", 1520)); + me["FUEL-Left-Outer-quantity"].setText(sprintf("%s", math.round(systems.FUEL.Quantity.leftOuter.getValue(), 10))); + me["FUEL-Left-Inner-quantity"].setText(sprintf("%s", math.round(systems.FUEL.Quantity.leftInner.getValue(), 10))); + me["FUEL-Center-quantity"].setText(sprintf("%s", math.round(systems.FUEL.Quantity.center.getValue(), 10))); + me["FUEL-Right-Inner-quantity"].setText(sprintf("%s", math.round(systems.FUEL.Quantity.rightInner.getValue(), 10))); + me["FUEL-Right-Outer-quantity"].setText(sprintf("%s", math.round(systems.FUEL.Quantity.rightOuter.getValue(), 10))); + + if (systems.FUEL.Valves.transfer1.getValue() == 0) { me["FUEL-Left-Transfer"].hide(); - } else if (fuel_left_quantity.getValue() >= 1650) { - me["FUEL-Left-Inner-quantity"].setText(sprintf("%s", 1650)); - me["FUEL-Left-Outer-quantity"].setText(sprintf("%s", math.round(fuel_left_quantity.getValue() - 1650, 10))); - me["FUEL-Left-Transfer"].setColor(0.7333,0.3803,0); + } else { + if (systems.FUEL.Valves.transfer1.getValue() == 1) { + me["FUEL-Left-Transfer"].setColor(0.0509,0.7529,0.2941); + } else { + me["FUEL-Left-Transfer"].setColor(0.7333,0.3803,0); + } me["FUEL-Left-Transfer"].show(); - } else { - me["FUEL-Left-Inner-quantity"].setText(sprintf("%s", math.round(fuel_left_quantity.getValue()))); - me["FUEL-Left-Outer-quantity"].setText(sprintf("%s", 0)); - me["FUEL-Left-Transfer"].hide(); } - me["FUEL-Center-quantity"].setText(sprintf("%s", math.round(fuel_center_quantity.getValue()))); - if (fuel_right_quantity.getValue() >= 3170) { - me["FUEL-Right-Inner-quantity"].setText(sprintf("%s", math.round(fuel_right_quantity.getValue() - 1520, 10))); - me["FUEL-Right-Outer-quantity"].setText(sprintf("%s", 1520)); + + if (systems.FUEL.Valves.transfer2.getValue() == 0) { me["FUEL-Right-Transfer"].hide(); - } else if (fuel_right_quantity.getValue() >= 1650) { - me["FUEL-Right-Inner-quantity"].setText(sprintf("%s", 1650)); - me["FUEL-Right-Outer-quantity"].setText(sprintf("%s", math.round(fuel_right_quantity.getValue() - 1650, 10))); - me["FUEL-Right-Transfer"].show(); - me["FUEL-Right-Transfer"].setColor(0.7333,0.3803,0); } else { - me["FUEL-Right-Inner-quantity"].setText(sprintf("%s", math.round(fuel_right_quantity.getValue(), 10))); - me["FUEL-Right-Outer-quantity"].setText(sprintf("%s", 0)); - me["FUEL-Right-Transfer"].hide(); - } + if (systems.FUEL.Valves.transfer2.getValue() == 1) { + me["FUEL-Right-Transfer"].setColor(0.0509,0.7529,0.2941); + } else { + me["FUEL-Right-Transfer"].setColor(0.7333,0.3803,0); + } + me["FUEL-Right-Transfer"].show(); + } + + if (!systems.FUEL.Switches.pumpCenter1.getValue() and !systems.FUEL.Switches.pumpCenter2.getValue()) { + me["FUEL-Center-blocked"].show(); + } else { + me["FUEL-Center-blocked"].hide(); + } # Hide not yet implemented features # TODO add them me["FUEL-Left-blocked"].hide(); me["FUEL-Right-blocked"].hide(); - me["FUEL-Center-blocked"].hide(); me["FUEL-Left-Outer-Inacc"].hide(); me["FUEL-Left-Inner-Inacc"].hide(); me["FUEL-Right-Outer-Inacc"].hide(); diff --git a/Models/Instruments/Lower-ECAM/res/fuel.svg b/Models/Instruments/Lower-ECAM/res/fuel.svg index 2b90e88b..4ebd8e8b 100644 --- a/Models/Instruments/Lower-ECAM/res/fuel.svg +++ b/Models/Instruments/Lower-ECAM/res/fuel.svg @@ -12,7 +12,7 @@ viewBox="0 0 1024 1024" version="1.1" id="svg2" - inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" sodipodi:docname="fuel.svg"> @@ -49,9 +49,9 @@ inkscape:window-height="705" id="namedview371" showgrid="false" - inkscape:zoom="2.0852713" - inkscape:cx="56" - inkscape:cy="255" + inkscape:zoom="0.68" + inkscape:cx="817.73616" + inkscape:cy="1022.6281" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" @@ -413,8 +413,9 @@ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#cecdce;fill-opacity:1;stroke:none;stroke-width:1.12171543" x="768.26727" y="57.18037" - id="text5073-0" - transform="scale(0.95537765,1.0467065)"> property-toggle - controls/fuel/x-feed + controls/fuel/switches/crossfeed nasal @@ -2370,7 +2370,7 @@ - systems/fuel/x-feed + systems/fuel/valves/crossfeed-valve 1 @@ -2386,7 +2386,7 @@ - controls/fuel/x-feed + controls/fuel/switches/crossfeed 1 @@ -2409,12 +2409,12 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-1 25 property-toggle - controls/fuel/tank0pump1 + controls/fuel/switches/pump-left-1 nasal @@ -2434,7 +2434,7 @@ 1 - controls/fuel/tank0pump1 + controls/fuel/switches/pump-left-1 1 @@ -2451,7 +2451,7 @@ - controls/fuel/tank0pump1 + controls/fuel/switches/pump-left-1 0 @@ -2474,12 +2474,12 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-1 25 property-toggle - controls/fuel/tank0pump2 + controls/fuel/switches/pump-left-2 nasal @@ -2499,7 +2499,7 @@ 1 - controls/fuel/tank0pump2 + controls/fuel/switches/pump-left-2 1 @@ -2516,7 +2516,7 @@ - controls/fuel/tank0pump2 + controls/fuel/switches/pump-left-2 0 @@ -2539,12 +2539,12 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-1 25 property-toggle - controls/fuel/tank1pump1 + controls/fuel/switches/pump-center-1 nasal @@ -2564,7 +2564,7 @@ 1 - controls/fuel/tank1pump1 + controls/fuel/switches/pump-center-1 1 @@ -2581,7 +2581,7 @@ - controls/fuel/tank1pump1 + controls/fuel/switches/pump-center-1 0 @@ -2592,7 +2592,7 @@ - + select @@ -2628,7 +2628,7 @@ 1 - controls/fuel/mode + controls/fuel/switches/center-mode 1 @@ -2645,7 +2645,7 @@ - controls/fuel/mode + controls/fuel/switches/center-mode 0 @@ -2668,12 +2668,12 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-2 25 property-toggle - controls/fuel/tank1pump2 + controls/fuel/switches/pump-center-2 nasal @@ -2693,7 +2693,7 @@ 1 - controls/fuel/tank1pump2 + controls/fuel/switches/pump-center-2 1 @@ -2710,7 +2710,7 @@ - controls/fuel/tank1pump2 + controls/fuel/switches/pump-center-2 0 @@ -2733,12 +2733,12 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-2 25 property-toggle - controls/fuel/tank2pump1 + controls/fuel/switches/pump-right-1 nasal @@ -2758,7 +2758,7 @@ 1 - controls/fuel/tank2pump1 + controls/fuel/switches/pump-right-1 1 @@ -2775,7 +2775,7 @@ - controls/fuel/tank2pump1 + controls/fuel/switches/pump-right-1 0 @@ -2798,12 +2798,12 @@ - systems/electrical/bus/dc-ess + systems/electrical/bus/dc-2 25 property-toggle - controls/fuel/tank2pump2 + controls/fuel/switches/pump-right-2 nasal @@ -2823,7 +2823,7 @@ 1 - controls/fuel/tank2pump2 + controls/fuel/switches/pump-right-2 1 @@ -2840,7 +2840,7 @@ - controls/fuel/tank2pump2 + controls/fuel/switches/pump-right-2 0 diff --git a/Nasal/ECAM/ECAM-logic.nas b/Nasal/ECAM/ECAM-logic.nas index e02cbffd..44efd3a6 100644 --- a/Nasal/ECAM/ECAM-logic.nas +++ b/Nasal/ECAM/ECAM-logic.nas @@ -1384,43 +1384,49 @@ var messages_config_memo = func { var messages_memo = func { phaseVar = phaseNode.getValue(); - if (getprop("/services/fuel-truck/enable") == 1) { + if (getprop("/services/fuel-truck/enable") == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { refuelg.active = 1; } else { refuelg.active = 0; } - if (getprop("/controls/flight/speedbrake-arm") == 1) { + if (getprop("/controls/flight/speedbrake-arm") == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { gnd_splrs.active = 1; } else { gnd_splrs.active = 0; } - if (getprop("/controls/lighting/seatbelt-sign") == 1) { + if (getprop("/controls/lighting/seatbelt-sign") == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { seatbelts.active = 1; } else { seatbelts.active = 0; } - if (getprop("/controls/lighting/no-smoking-sign") == 1) { # should go off after takeoff assuming switch is in auto due to old logic from the days when smoking was allowed! + if (getprop("/controls/lighting/no-smoking-sign") == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # should go off after takeoff assuming switch is in auto due to old logic from the days when smoking was allowed! nosmoke.active = 1; } else { nosmoke.active = 0; } - if (getprop("/controls/lighting/strobe") == 0 and getprop("/gear/gear[1]/wow") == 0) { # todo: use gear branch properties + if (getprop("/controls/lighting/strobe") == 0 and getprop("/gear/gear[1]/wow") == 0 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # todo: use gear branch properties strobe_lt_off.active = 1; } else { strobe_lt_off.active = 0; } + + if (systems.FUEL.Valves.transfer1.getValue() == 1 or systems.FUEL.Valves.transfer2.getValue() == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { + outr_tk_fuel_xfrd.active = 1; + } else { + outr_tk_fuel_xfrd.active = 0; + } - if (getprop("/consumables/fuel/total-fuel-lbs") < 6000) { # assuming US short ton 2000lb + if (getprop("/consumables/fuel/total-fuel-lbs") < 6000 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { # assuming US short ton 2000lb fob_3T.active = 1; } else { fob_3T.active = 0; } - if (getprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override") == 1) { + if (getprop("instrumentation/mk-viii/inputs/discretes/momentary-flap-all-override") == 1 and toMemoLine1.active != 1 and ldgMemoLine1.active != 1) { gpws_flap_mode_off.active = 1; } else { gpws_flap_mode_off.active = 0; @@ -1591,7 +1597,7 @@ var messages_right_memo = func { auto_brk_max.active = 0; } - if (getprop("/systems/fuel/x-feed") == 1 and getprop("controls/fuel/x-feed") == 1) { + if (getprop("/systems/fuel/valves/crossfeed-valve") != 0 and getprop("/controls/fuel/switches/crossfeed") == 1) { fuelx.active = 1; } else { fuelx.active = 0; @@ -1609,7 +1615,7 @@ var messages_right_memo = func { gpws_flap3.active = 0; } - if (phaseVar >= 2 and phaseVar <= 9 and getprop("/systems/fuel/only-use-ctr-tank") == 1 and getprop("/systems/electrical/bus/ac-1") >= 115 and getprop("/systems/electrical/bus/ac-2") >= 115) { + if (phaseVar >= 2 and phaseVar <= 9 and systems.ELEC.Bus.ac1.getValue() >= 110 and systems.ELEC.Bus.ac2.getValue() >= 110 and (getprop("/systems/fuel/feed-center-1") or getprop("/systems/fuel/feed-center-2"))) { ctr_tk_feedg.active = 1; } else { ctr_tk_feedg.active = 0; diff --git a/Nasal/ECAM/ECAM-messages.nas b/Nasal/ECAM/ECAM-messages.nas index 18829e5b..abd07ed9 100644 --- a/Nasal/ECAM/ECAM-messages.nas +++ b/Nasal/ECAM/ECAM-messages.nas @@ -275,7 +275,7 @@ var leftmemos = std.Vector.new([ var seatbelts = warning.new(msg: "SEAT BELTS" ), var nosmoke = warning.new(msg: "NO SMOKING" ), var strobe_lt_off = warning.new(msg: "STROBE LT OFF" ), - var outr_tk_fuel_xfrd = warning.new(msg: "OUTR TK FUEL XFRD" ), # Not yet implemented + var outr_tk_fuel_xfrd = warning.new(msg: "OUTR TK FUEL XFRD" ), var fob_3T = warning.new(msg: "FOB BELOW 3T" ), var gpws_flap_mode_off = warning.new(msg: "GPWS FLAP MODE OFF" ), var atc_datalink_stby = warning.new(msg: "ATC DATALINK STBY" ), # Not yet implemented diff --git a/Nasal/fuel.nas b/Nasal/fuel.nas index b7b92f5c..79f6765e 100644 --- a/Nasal/fuel.nas +++ b/Nasal/fuel.nas @@ -3,35 +3,73 @@ # Copyright (c) 2019 Joshua Davidson (Octal450) -var xfeed_sw = getprop("/controls/fuel/x-feed"); -var tank0pump1_sw = 0; -var tank0pump2_sw = 0; -var tank1pump1_sw = 0; -var tank1pump2_sw = 0; -var tank2pump1_sw = 0; -var tank2pump2_sw = 0; -var mode_sw = 0; -var xfeed = 0; -var ac1 = 0; -var ac2 = 0; -var gravityfeedL = 0; -var gravityfeedR = 0; -var gload = 0; -var gravityfeedL_output = 0; -var gravityfeedR_output = 0; -var tank0 = 0; -var tank1 = 0; -var tank2 = 0; -var gravityfeedL = 0; -var gravityfeedR = 0; -var tank0pump1_fail = 0; -var tank0pump2_fail = 0; -var tank1pump1_fail = 0; -var tank1pump2_fail = 0; -var tank2pump1_fail = 0; -var tank2pump2_fail = 0; - var FUEL = { + offset1: 0, + offset2: 0, + timeEngStart: 0, + cmdCtrOn: props.globals.getNode("/systems/fuel/ctr-pump-cmd-on-eng-start"), + + Fail: { + }, + Switches: { + centerTkMode: props.globals.getNode("/controls/fuel/switches/center-mode"), + crossfeed: props.globals.getNode("/controls/fuel/switches/crossfeed"), + pumpLeft1: props.globals.getNode("/controls/fuel/switches/pump-left-1"), + pumpLeft2: props.globals.getNode("/controls/fuel/switches/pump-left-2"), + pumpCenter1: props.globals.getNode("/controls/fuel/switches/pump-center-1"), + pumpCenter2: props.globals.getNode("/controls/fuel/switches/pump-center-2"), + pumpRight1: props.globals.getNode("/controls/fuel/switches/pump-right-1"), + pumpRight2: props.globals.getNode("/controls/fuel/switches/pump-right-2"), + }, + Valves: { + crossfeed: props.globals.getNode("/systems/fuel/valves/crossfeed-valve"), + lpValve1: props.globals.getNode("/systems/fuel/valves/engine-1-lp-valve"), + lpValve2: props.globals.getNode("/systems/fuel/valves/engine-2-lp-valve"), + transfer1: props.globals.getNode("/systems/fuel/valves/outer-inner-transfer-valve-1"), + transfer2: props.globals.getNode("/systems/fuel/valves/outer-inner-transfer-valve-2"), + }, + Quantity: { + leftOuter: props.globals.getNode("/consumables/fuel/tank[0]/level-lbs"), + leftInner: props.globals.getNode("/consumables/fuel/tank[1]/level-lbs"), + center: props.globals.getNode("/consumables/fuel/tank[2]/level-lbs"), + rightInner: props.globals.getNode("/consumables/fuel/tank[3]/level-lbs"), + rightOuter: props.globals.getNode("/consumables/fuel/tank[4]/level-lbs"), + usedLeft: props.globals.getNode("/systems/fuel/fuel-used-1"), + usedRight: props.globals.getNode("/systems/fuel/fuel-used-2"), + }, + resetFail: func() { + + }, + init: func() { + + }, + loop: func() { + systems.FUEL.Quantity.usedLeft.setValue(pts.JSBSim.Propulsion.Engine1.fuelUsed.getValue() + me.offset1); + systems.FUEL.Quantity.usedRight.setValue(pts.JSBSim.Propulsion.Engine2.fuelUsed.getValue() + me.offset2); + }, + setOffset: func() { + me.offset1 = me.offset1 -(pts.JSBSim.Propulsion.Engine1.fuelUsed.getValue()); + me.offset2 = me.offset2 -(pts.JSBSim.Propulsion.Engine2.fuelUsed.getValue()); + } +}; + +setlistener("/engines/engine[0]/state", func() { + if (pts.Engines.Engine1.state.getValue() == 3) { + FUEL.timeEngStart = pts.Sim.Time.elapsedSec.getValue(); + FUEL.cmdCtrOn.setValue(1); + ctrTkTimer.start(); + } +}, 0, 0); + +setlistener("/engines/engine[1]/state", func() { + if (pts.Engines.Engine2.state.getValue() == 3) { + FUEL.timeEngStart = pts.Sim.Time.elapsedSec.getValue(); + FUEL.cmdCtrOn.setValue(1); + ctrTkTimer.start(); + } +}, 0, 0); + +var FUELx = { init: func() { setprop("/systems/fuel/gravityfeedL", 0); setprop("/systems/fuel/gravityfeedR", 0); @@ -45,7 +83,7 @@ var FUEL = { setprop("/controls/fuel/tank2pump1", 0); setprop("/controls/fuel/tank2pump2", 0); setprop("/controls/fuel/mode", 1); - setprop("/systems/fuel/x-feed", 0); + setprop("/systems/fuel/valves/crossfeed-valve", 0); setprop("/systems/fuel/tank[0]/feed", 0); setprop("/systems/fuel/tank[1]/feed", 0); setprop("/systems/fuel/tank[2]/feed", 0); @@ -67,7 +105,7 @@ var FUEL = { tank2pump1_sw = getprop("/controls/fuel/tank2pump1"); tank2pump2_sw = getprop("/controls/fuel/tank2pump2"); mode_sw = getprop("/controls/fuel/mode"); - xfeed = getprop("/systems/fuel/x-feed"); + xfeed = getprop("/systems/fuel/valves/crossfeed-valve"); ac1 = getprop("/systems/electrical/bus/ac-1"); ac2 = getprop("/systems/electrical/bus/ac-2"); gravityfeedL = getprop("/systems/fuel/gravityfeedL"); @@ -124,9 +162,9 @@ var FUEL = { } if ((ac1 >= 110 or ac2 >= 110) and xfeed_sw) { - setprop("/systems/fuel/x-feed", 1); + setprop("/systems/fuel/valves/crossfeed-valve", 1); } else { - setprop("/systems/fuel/x-feed", 0); + setprop("/systems/fuel/valves/crossfeed-valve", 0); } tank0 = getprop("/systems/fuel/tank[0]/feed"); @@ -192,3 +230,10 @@ var FUEL = { } }, }; + +var ctrTkTimer = maketimer(0.5, func() { + if (pts.Sim.Time.elapsedSec.getValue() > (FUEL.timeEngStart + 120)) { + FUEL.cmdCtrOn.setValue(0); + ctrTkTimer.stop() + } +}); \ No newline at end of file diff --git a/Nasal/property-tree-setup.nas b/Nasal/property-tree-setup.nas index 05a81b06..e4ae0765 100644 --- a/Nasal/property-tree-setup.nas +++ b/Nasal/property-tree-setup.nas @@ -29,11 +29,13 @@ var Engines = { epractual: props.globals.getNode("/engines/engine[0]/epr-actual"), n1actual: props.globals.getNode("/engines/engine[0]/n1-actual"), n2actual: props.globals.getNode("/engines/engine[0]/n2-actual"), + state: props.globals.getNode("/engines/engine[0]/state"), }, Engine2: { epractual: props.globals.getNode("/engines/engine[1]/epr-actual"), n1actual: props.globals.getNode("/engines/engine[1]/n1-actual"), n2actual: props.globals.getNode("/engines/engine[1]/n2-actual"), + state: props.globals.getNode("/engines/engine[1]/state"), }, }; @@ -59,6 +61,17 @@ var JSBSIM = { }, }; +var JSBSim = { + Propulsion: { + Engine1: { + fuelUsed: props.globals.getNode("/fdm/jsbsim/propulsion/engine[0]/fuel-used-lbs"), + }, + Engine2: { + fuelUsed: props.globals.getNode("/fdm/jsbsim/propulsion/engine[1]/fuel-used-lbs"), + }, + }, +}; + var Options = { eng: props.globals.getNode("/options/eng"), }; diff --git a/Systems/a320-100-fuel.xml b/Systems/a320-100-fuel.xml new file mode 100644 index 00000000..4225d107 --- /dev/null +++ b/Systems/a320-100-fuel.xml @@ -0,0 +1,417 @@ + + + + + + + + + + + + + /systems/fuel/pumps/all-eng-pump-off eq 1 + + /systems/electrical/bus/ac-ess-shed ge 110 + /systems/electrical/bus/ac-si-bus ge 110 + + + + + + + + /controls/fuel/switches/pump-left-1 eq 1 + + + /systems/electrical/sources/idg-1/pmg-volt ge 110 + /controls/electrical/switches/gen-1-line-contactor eq 1 + + /systems/electrical/bus/ac-1 ge 110 + + + + + + + + /controls/fuel/switches/pump-left-2 eq 1 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /controls/fuel/switches/pump-right-1 eq 1 + + + /systems/electrical/sources/idg-1/pmg-volt ge 110 + /controls/electrical/switches/gen-1-line-contactor eq 1 + + /systems/electrical/bus/ac-1 ge 110 + + + + + + + + /controls/fuel/switches/pump-right-2 eq 1 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /systems/fuel/left-inner-full eq 1 + propulsion/tank[1]/contents-lbs lt 11420 + propulsion/tank[1]/contents-lbs ge 10300 + + + propulsion/tank[1]/contents-lbs eq 11420 + + + + + + + /systems/fuel/right-inner-full eq 1 + propulsion/tank[2]/contents-lbs lt 11420 + propulsion/tank[2]/contents-lbs ge 10300 + + + propulsion/tank[2]/contents-lbs eq 11420 + + + + + + + /systems/fuel/pumps/wing-pump-left-1-operate eq 0 + /systems/fuel/pumps/wing-pump-left-2-operate eq 0 + /systems/fuel/pumps/wing-pump-right-1-operate eq 0 + /systems/fuel/pumps/wing-pump-right-2-operate eq 0 + + + + + + + propulsion/tank[1]/contents-lbs le 1650 + + + + + + + propulsion/tank[2]/contents-lbs le 1650 + + + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-1-cmd eq 1 + /systems/fuel/refuel/refuelling eq 0 + + + /systems/fuel/quantity/left-wing-inner-low eq 1 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/fuel/valves/outer-inner-transfer-valve-1-cmd + /systems/fuel/valves/outer-inner-transfer-valve-1-power + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-2-cmd eq 1 + /systems/fuel/refuel/refuelling eq 0 + + + /systems/fuel/quantity/right-wing-inner-low eq 1 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/fuel/valves/outer-inner-transfer-valve-2-cmd + /systems/fuel/valves/outer-inner-transfer-valve-2-power + + + + + + + /controls/fuel/switches/crossfeed eq 1 + + + + + + + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/fuel/valves/crossfeed-valve-cmd + /systems/fuel/valves/crossfeed-valve-power + + + + + + + /controls/engines/engine[0]/fire-btn eq 0 + /controls/engines/engine[0]/cutoff-switch eq 0 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/fuel/valves/engine-1-lp-valve-cmd + /systems/fuel/valves/engine-1-lp-valve-power + + + + + + /controls/engines/engine[1]/fire-btn eq 0 + /controls/engines/engine[1]/cutoff-switch eq 0 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/fuel/valves/engine-2-lp-valve-cmd + /systems/fuel/valves/engine-2-lp-valve-power + + + + + + /controls/APU/master eq 1 + /controls/APU/fire-btn eq 0 + + + + + + + /systems/electrical/bus/dc-bat ge 25 + /systems/electrical/bus/dc-hot-1 ge 25 + + + + + /systems/fuel/valves/apu-lp-valve-cmd + /systems/fuel/valves/apu-lp-valve-power + + + + + + /systems/fuel/pumps/apu-operate + 25.3 + + + + /systems/fuel/pumps/apu-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-left-1-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-left-1-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-left-2-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-left-2-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-right-1-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-right-1-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-right-2-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-right-2-psi-cmd + 5 + 10 + + + + + + + + + /systems/fuel/pumps/wing-pump-left-1-operate eq 1 + /systems/fuel/pumps/wing-pump-left-2-operate eq 1 + + + /accelerations/pilot-gdamped ge 0.5 + + + + + + + /systems/fuel/pumps/wing-pump-right-1-operate eq 1 + /systems/fuel/pumps/wing-pump-right-2-operate eq 1 + + + /accelerations/pilot-gdamped ge 0.5 + + + + + + + /systems/fuel/feed-left-inner eq 1 + propulsion/tank[1]/contents-lbs gt 31.24 + propulsion/tank[4]/contents-lbs lt 9 + + + + + + + /systems/fuel/valves/crossfeed-valve eq 1 + propulsion/tank[2]/contents-lbs gt 31.24 + propulsion/tank[4]/contents-lbs lt 9 + + + + + + + /systems/fuel/valves/crossfeed-valve eq 1 + /systems/fuel/feed-left-inner eq 1 + propulsion/tank[1]/contents-lbs gt 31.24 + propulsion/tank[5]/contents-lbs lt 9 + + + + + + + /systems/fuel/feed-right-inner eq 1 + propulsion/tank[2]/contents-lbs gt 31.24 + propulsion/tank[5]/contents-lbs lt 9 + + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-1 eq 1 + /accelerations/pilot-gdamped ge 0.5 + + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-2 eq 1 + /accelerations/pilot-gdamped ge 0.5 + + + + + -/systems/fuel/internal/left-wing-outer-to-inner-tank + propulsion/tank[0]/external-flow-rate-pps + + + + /systems/fuel/internal/left-wing-outer-to-inner-tank + -/systems/fuel/internal/left-wing-tank-eng-1 + -/systems/fuel/internal/left-wing-tank-eng-2 + propulsion/tank[1]/external-flow-rate-pps + + + + /systems/fuel/internal/right-wing-outer-to-inner-tank + -/systems/fuel/internal/right-wing-tank-eng-1 + -/systems/fuel/internal/right-wing-tank-eng-2 + propulsion/tank[2]/external-flow-rate-pps + + + + -/systems/fuel/internal/right-wing-outer-to-inner-tank + propulsion/tank[3]/external-flow-rate-pps + + + + /systems/fuel/internal/left-wing-tank-eng-1 + /systems/fuel/internal/right-wing-tank-eng-1 + propulsion/tank[4]/external-flow-rate-pps + + + + /systems/fuel/internal/left-wing-tank-eng-2 + /systems/fuel/internal/right-wing-tank-eng-2 + propulsion/tank[5]/external-flow-rate-pps + + + + diff --git a/Systems/a320-fuel.xml b/Systems/a320-fuel.xml new file mode 100644 index 00000000..fc318185 --- /dev/null +++ b/Systems/a320-fuel.xml @@ -0,0 +1,565 @@ + + + + + + + + + + + + + /systems/fuel/pumps/all-eng-pump-off eq 1 + + /systems/electrical/bus/ac-ess-shed ge 110 + /systems/electrical/bus/ac-si-bus ge 110 + + + + + + + + /controls/fuel/switches/pump-left-1 eq 1 + + + /systems/electrical/sources/idg-1/pmg-volt ge 110 + /controls/electrical/switches/gen-1-line-contactor eq 1 + + /systems/electrical/bus/ac-1 ge 110 + + + + + + + + /controls/fuel/switches/pump-left-2 eq 1 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /controls/fuel/switches/pump-right-1 eq 1 + + + /systems/electrical/sources/idg-1/pmg-volt ge 110 + /controls/electrical/switches/gen-1-line-contactor eq 1 + + /systems/electrical/bus/ac-1 ge 110 + + + + + + + + /controls/fuel/switches/pump-right-2 eq 1 + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /systems/fuel/left-inner-full eq 1 + propulsion/tank[1]/contents-lbs lt 11420 + propulsion/tank[1]/contents-lbs ge 10300 + + + propulsion/tank[1]/contents-lbs eq 11420 + + + + + + + /systems/fuel/right-inner-full eq 1 + propulsion/tank[3]/contents-lbs lt 11420 + propulsion/tank[3]/contents-lbs ge 10300 + + + propulsion/tank[3]/contents-lbs eq 11420 + + + + + + + /controls/fuel/switches/pump-center-1 eq 1 + + /controls/fuel/switches/center-mode eq 0 + + /systems/fuel/pumps/center-control-low-level ne 1 + /systems/fuel/ctr-pump-cmd-on-eng-start eq 1 + + fcs/slat-pos-deg lt 16 + /systems/fuel/left-inner-full ne 1 + + + + /systems/electrical/bus/ac-1 ge 110 + + + + + + + /controls/fuel/switches/pump-center-2 eq 1 + + /controls/fuel/switches/center-mode eq 0 + + /systems/fuel/pumps/center-control-low-level ne 1 + /systems/fuel/ctr-pump-cmd-on-eng-start eq 1 + + fcs/slat-pos-deg lt 16 + /systems/fuel/pumps/center-control-low-level ne 1 + /systems/fuel/right-inner-full ne 1 + + + + /systems/electrical/bus/ac-2 ge 110 + + + + + + + /systems/fuel/pumps/wing-pump-left-1-operate eq 0 + /systems/fuel/pumps/wing-pump-left-2-operate eq 0 + /systems/fuel/pumps/wing-pump-right-1-operate eq 0 + /systems/fuel/pumps/wing-pump-right-2-operate eq 0 + /systems/fuel/pumps/center-pump-1-operate eq 0 + /systems/fuel/pumps/center-pump-2-operate eq 0 + + + + + + + propulsion/tank[1]/contents-lbs le 1650 + + + + + + + propulsion/tank[2]/contents-lbs le 220 + + + + + + + propulsion/tank[3]/contents-lbs le 1650 + + + + + Timer for the Fuel Center pumps + /systems/fuel/quantity/center-low + 100 + 0.00333 + + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-1-cmd eq 1 + /systems/fuel/refuel/refuelling eq 0 + + + /systems/fuel/quantity/left-wing-inner-low eq 1 + /systems/fuel/quantity/right-wing-inner-low eq 1 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/fuel/valves/outer-inner-transfer-valve-1-cmd + /systems/fuel/valves/outer-inner-transfer-valve-1-power + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-2-cmd eq 1 + /systems/fuel/refuel/refuelling eq 0 + + + /systems/fuel/quantity/left-wing-inner-low eq 1 + /systems/fuel/quantity/right-wing-inner-low eq 1 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/fuel/valves/outer-inner-transfer-valve-2-cmd + /systems/fuel/valves/outer-inner-transfer-valve-2-power + + + + + + + /controls/fuel/switches/crossfeed eq 1 + + + + + + + /systems/electrical/bus/dc-2 ge 25 + /systems/electrical/bus/dc-ess-shed ge 25 + + + + + /systems/fuel/valves/crossfeed-valve-cmd + /systems/fuel/valves/crossfeed-valve-power + + + + + + + /controls/engines/engine[0]/fire-btn eq 0 + /controls/engines/engine[0]/cutoff-switch eq 0 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/fuel/valves/engine-1-lp-valve-cmd + /systems/fuel/valves/engine-1-lp-valve-power + + + + + + /controls/engines/engine[1]/fire-btn eq 0 + /controls/engines/engine[1]/cutoff-switch eq 0 + + + + + + + /systems/electrical/bus/dc-ess-shed ge 25 + /systems/electrical/bus/dc-2 ge 25 + + + + + /systems/fuel/valves/engine-2-lp-valve-cmd + /systems/fuel/valves/engine-2-lp-valve-power + + + + + + /controls/APU/master eq 1 + /controls/APU/fire-btn eq 0 + + + + + + + /systems/electrical/bus/dc-bat ge 25 + /systems/electrical/bus/dc-hot-1 ge 25 + + + + + /systems/fuel/valves/apu-lp-valve-cmd + /systems/fuel/valves/apu-lp-valve-power + + + + + + /systems/fuel/pumps/apu-operate + 25.3 + + + + /systems/fuel/pumps/apu-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-left-1-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-left-1-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-left-2-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-left-2-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/center-pump-1-operate + 30 + + + + /systems/fuel/pumps/center-pump-1-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/center-pump-2-operate + 30 + + + + /systems/fuel/pumps/center-pump-2-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-right-1-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-right-1-psi-cmd + 5 + 10 + + + + /systems/fuel/pumps/wing-pump-right-2-operate + 25.3 + + + + /systems/fuel/pumps/wing-pump-right-2-psi-cmd + 5 + 10 + + + + + + + + + /systems/fuel/pumps/wing-pump-left-1-operate eq 1 + /systems/fuel/pumps/wing-pump-left-2-operate eq 1 + + + /accelerations/pilot-gdamped ge 0.5 + + + + + + + /systems/fuel/pumps/wing-pump-right-1-operate eq 1 + /systems/fuel/pumps/wing-pump-right-2-operate eq 1 + + + /accelerations/pilot-gdamped ge 0.5 + + + + + + + /systems/fuel/pumps/center-pump-1-operate eq 1 + + + + + + + /systems/fuel/pumps/center-pump-2-operate eq 1 + + + + + + + + /systems/fuel/quantity/center-low eq 1 + /systems/fuel/feed-center-1 eq 0 + + /systems/fuel/feed-left-inner eq 1 + propulsion/tank[1]/contents-lbs gt 31.24 + propulsion/tank[5]/contents-lbs lt 9 + + + + + + + + /systems/fuel/feed-center-1 eq 1 + + /systems/fuel/feed-center-2 eq 1 + /systems/fuel/valves/crossfeed-valve eq 1 + + + propulsion/tank[3]/contents-lbs gt 31.24 + propulsion/tank[5]/contents-lbs lt 9 + + + + + + + /systems/fuel/feed-right-inner eq 1 + + /systems/fuel/quantity/center-low eq 1 + /systems/fuel/feed-center-2 eq 0 + + /systems/fuel/valves/crossfeed-valve eq 1 + propulsion/tank[3]/contents-lbs gt 31.24 + propulsion/tank[5]/contents-lbs lt 9 + + + + + + + /systems/fuel/valves/crossfeed-valve eq 1 + + /systems/fuel/quantity/center-low eq 1 + /systems/fuel/feed-center-1 eq 0 + + /systems/fuel/feed-left-inner eq 1 + propulsion/tank[1]/contents-lbs gt 31.24 + propulsion/tank[6]/contents-lbs lt 9 + + + + + + + + /systems/fuel/feed-center-2 eq 1 + + /systems/fuel/feed-center-1 eq 1 + /systems/fuel/valves/crossfeed-valve eq 1 + + + propulsion/tank[3]/contents-lbs gt 31.24 + propulsion/tank[6]/contents-lbs lt 9 + + + + + + + + /systems/fuel/quantity/center-low eq 1 + /systems/fuel/feed-center-2 eq 0 + + /systems/fuel/feed-right-inner eq 1 + propulsion/tank[3]/contents-lbs gt 31.24 + propulsion/tank[6]/contents-lbs lt 9 + + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-1 eq 1 + /accelerations/pilot-gdamped ge 0.5 + + + + + + + /systems/fuel/valves/outer-inner-transfer-valve-2 eq 1 + /accelerations/pilot-gdamped ge 0.5 + + + + + -/systems/fuel/internal/left-wing-outer-to-inner-tank + propulsion/tank[0]/external-flow-rate-pps + + + + /systems/fuel/internal/left-wing-outer-to-inner-tank + -/systems/fuel/internal/left-wing-tank-eng-1 + -/systems/fuel/internal/left-wing-tank-eng-2 + propulsion/tank[1]/external-flow-rate-pps + + + + -/systems/fuel/internal/center-tank-eng-1 + -/systems/fuel/internal/center-tank-eng-2 + propulsion/tank[2]/external-flow-rate-pps + + + + /systems/fuel/internal/right-wing-outer-to-inner-tank + -/systems/fuel/internal/right-wing-tank-eng-1 + -/systems/fuel/internal/right-wing-tank-eng-2 + propulsion/tank[3]/external-flow-rate-pps + + + + -/systems/fuel/internal/right-wing-outer-to-inner-tank + propulsion/tank[4]/external-flow-rate-pps + + + + /systems/fuel/internal/left-wing-tank-eng-1 + /systems/fuel/internal/right-wing-tank-eng-1 + /systems/fuel/internal/center-tank-eng-2 + propulsion/tank[5]/external-flow-rate-pps + + + + /systems/fuel/internal/left-wing-tank-eng-2 + /systems/fuel/internal/right-wing-tank-eng-2 + /systems/fuel/internal/center-tank-eng-2 + propulsion/tank[6]/external-flow-rate-pps + + + + diff --git a/Systems/fuel.xml b/Systems/fuel.xml index 1c72894f..355007f6 100644 --- a/Systems/fuel.xml +++ b/Systems/fuel.xml @@ -29,7 +29,7 @@ - /systems/fuel/x-feed == 1 + /systems/fuel/valves/crossfeed-valve == 1 /systems/fuel/only-use-ctr-tank == 0 /systems/fuel/tank[2]/feed == 1 propulsion/tank[0]/contents-lbs eq 0 @@ -62,7 +62,7 @@ - /systems/fuel/x-feed == 1 + /systems/fuel/valves/crossfeed-valve == 1 /systems/fuel/only-use-ctr-tank == 0 /systems/fuel/tank[0]/feed == 1 propulsion/tank[2]/contents-lbs eq 0 diff --git a/revision.txt b/revision.txt index c7930257..301160a9 100644 --- a/revision.txt +++ b/revision.txt @@ -1 +1 @@ -7 \ No newline at end of file +8 \ No newline at end of file