Heretic
Resource contributor
- Messages
- 6,830
- Country
Has anybody ever noticed that this variable supports more values than just 0 and 1?
I've got a twin engine airplane with a left and right main tank. Both tanks have an electric fuel pump each and are connected by a cross feed line.
Feeding from left to right is a matter of opening the cross feed valve and switching off the boost pump of the right tank, and vice versa.
The documented value for the variable in the ESP SDK* are "0 = closed" and "1 = open", but the unit is "enum".
The code below controls the fuel selectors based on crossfeed valve and fuel pump state.
Opening the cross feed valve duly changes the value of (A:FUEL CROSS FEED, enum) to "1".
With an open cross feed valve, and an asymmetric fuel pump configuration (left on, right off and vice versa), (A:FUEL CROSS FEED, enum) will take the value of the feeding tank.
So if the above code switches both fuel selectors to "right main" (3), (A:FUEL CROSS FEED, enum) will appropriately read "3". Same for "left main" (2).
Restoring a symmetric fuel pump configuration (both on or off) will reset (A:FUEL CROSS FEED, enum) to zero.
Without the above code (i.e. active switching of the fuel selectors), (A:FUEL CROSS FEED, enum) will only read "0" or "1".
Can anybody confirm this?
If it's indeed genuine and previously undocumented, I'd welcome some more experimentation to see what other values the variable posesses.
In any case, it might come in handy to some.
* https://msdn.microsoft.com/en-us/library/cc526981.aspx#AircraftFuelData
I've got a twin engine airplane with a left and right main tank. Both tanks have an electric fuel pump each and are connected by a cross feed line.
Feeding from left to right is a matter of opening the cross feed valve and switching off the boost pump of the right tank, and vice versa.
The documented value for the variable in the ESP SDK* are "0 = closed" and "1 = open", but the unit is "enum".
The code below controls the fuel selectors based on crossfeed valve and fuel pump state.
Code:
(A:FUEL CROSS FEED,enum) 0 ==
if{ (A:FUEL TANK SELECTOR:1, enum) 2 != if{ 2 (>K:FUEL_SELECTOR_SET) }
(A:FUEL TANK SELECTOR:2, enum) 3 != if{ 3 (>K:FUEL_SELECTOR_2_SET) } }
els{ (A:GENERAL ENG FUEL PUMP ON:1, Bool) (A:GENERAL ENG FUEL PUMP ON:2, Bool) >
if{ (A:FUEL TANK SELECTOR:1, enum) 2 != if{ 2 (>K:FUEL_SELECTOR_SET) }
(A:FUEL TANK SELECTOR:2, enum) 2 != if{ 2 (>K:FUEL_SELECTOR_2_SET) } }
(A:GENERAL ENG FUEL PUMP ON:1, Bool) (A:GENERAL ENG FUEL PUMP ON:2, Bool) <
if{ (A:FUEL TANK SELECTOR:1, enum) 3 != if{ 3 (>K:FUEL_SELECTOR_SET) }
(A:FUEL TANK SELECTOR:2, enum) 3 != if{ 3 (>K:FUEL_SELECTOR_2_SET) } }
(A:GENERAL ENG FUEL PUMP ON:1, Bool) (A:GENERAL ENG FUEL PUMP ON:2, Bool) ==
if{ (A:FUEL TANK SELECTOR:1, enum) 2 != if{ 2 (>K:FUEL_SELECTOR_SET) }
(A:FUEL TANK SELECTOR:2, enum) 3 != if{ 3 (>K:FUEL_SELECTOR_2_SET) } } }
Opening the cross feed valve duly changes the value of (A:FUEL CROSS FEED, enum) to "1".
With an open cross feed valve, and an asymmetric fuel pump configuration (left on, right off and vice versa), (A:FUEL CROSS FEED, enum) will take the value of the feeding tank.
So if the above code switches both fuel selectors to "right main" (3), (A:FUEL CROSS FEED, enum) will appropriately read "3". Same for "left main" (2).
Restoring a symmetric fuel pump configuration (both on or off) will reset (A:FUEL CROSS FEED, enum) to zero.
Without the above code (i.e. active switching of the fuel selectors), (A:FUEL CROSS FEED, enum) will only read "0" or "1".
Can anybody confirm this?
If it's indeed genuine and previously undocumented, I'd welcome some more experimentation to see what other values the variable posesses.
In any case, it might come in handy to some.
* https://msdn.microsoft.com/en-us/library/cc526981.aspx#AircraftFuelData