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
+
+
+
+
+ /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
+
+
+
+
+ /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
+
+
+
+
+ -/systems/fuel/internal/right-wing-outer-to-inner-tank
+
+
+
+
+ /systems/fuel/internal/left-wing-tank-eng-1
+ /systems/fuel/internal/right-wing-tank-eng-1
+
+
+
+
+ /systems/fuel/internal/left-wing-tank-eng-2
+ /systems/fuel/internal/right-wing-tank-eng-2
+
+
+
+
+
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
+
+
+
+
+ /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
+
+
+
+
+ -/systems/fuel/internal/center-tank-eng-1
+ -/systems/fuel/internal/center-tank-eng-2
+
+
+
+
+ /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
+
+
+
+
+ -/systems/fuel/internal/right-wing-outer-to-inner-tank
+
+
+
+
+ /systems/fuel/internal/left-wing-tank-eng-1
+ /systems/fuel/internal/right-wing-tank-eng-1
+ /systems/fuel/internal/center-tank-eng-2
+
+
+
+
+ /systems/fuel/internal/left-wing-tank-eng-2
+ /systems/fuel/internal/right-wing-tank-eng-2
+ /systems/fuel/internal/center-tank-eng-2
+
+
+
+
+
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