Closed cjkreklow closed 2 years ago
Hi @cjkreklow!
Nice idea!
As I've been adding the configurations for different aircraft it's interesting to see how some of their cockpit codes specifically check for the main avionics/battery/master to be on before enabling lights, and some don't. In general I've been following the specific patterns for each specific aircraft where possible.
But yep, it would certainly be interesting to have an easy way to disable all lights. (Check out all the ugly repeated ASCRJ_ELEC_BATTMASTER
configuration here for the CRJ configuration: https://github.com/RoystonS/BetterBravoLights/blob/main/BravoLights/Config.BuiltIn.ini#L420-L450)
I'd not noticed that the default Honeycomb driver disables the lights until power is available. I have previously documented how their use of 'A:ELECTRICAL MAIN BUS AMPS' for their 'Low Volts' isn't actually correct, here: https://github.com/RoystonS/honeycomb/blob/main/bravo-lights.md#fix-the-low-volts-indicator but I had wondered what on earth their strange piece of 'byte 0' configuration was about:
{
"ByteIndex": 0,
"BitIndex": 0,
"Condition": "A:ELECTRICAL MAIN BUS AMPS, Amperes",
"ConditionValue": "!=0"
},
The USB protocol for the Bravo only uses 4 bytes (their 1-4) so I had wondered why there was a stray 'byte 0'. Good spot!
Yes, it would certainly be easy to add something like
[Default]
MasterEnable = A:ELECTRICAL MAIN BUS AMPS, amps > 0
[Aircraft.Aerosoft_CRJ_550]
MasterEnable = L:ASCRJ_ELEC_BATTMASTER == 1
to provide an aircraft-specific global light override.
Yep, very very easy indeed. I haven't written all the tests yet, but the implementation took 3 lines of code.
So, if I add
MasterEnable = A:SOME THING, volts >= 1 OR A:ANOTHER THING, amps > 0
to any aircraft (including [Default]
) it then effectively ANDs itself to all expressions.
For example, this is how the PARKING BRAKE expression gets modified:
Can you confirm this is what you were looking for, @cjkreklow ?
Yes, that looks perfect. Thanks!
I using version from flightsim.to and it seem that it doesn't using that function
MasterEnable = A:ELECTRICAL MAIN BUS AMPS, amps > 0
How can I get version with that?
Hi @t0ffi!
There's a new version coming out in a few days with that new feature in. I did do the coding and testing for it in December (https://github.com/RoystonS/BetterBravoLights/commit/3a2a9f8aae8937c524fc3ec518dae8ba669094b8#diff-f9e29519c9706396914d64b612a000e61ea0ce1e28d88dcee6306e8b8eaf77a5R52-R66) but then the universe around me exploded and I've not had time to even launch MSFS since then. The rubble has just started to settle and I'll be pushing the new version out very shortly.
Thank you for information I waiting for new version.
I just released v0.7.0 which includes this feature. Thank you!
Thank you for providing us new version. I just testing a20nx FBW and lights are enabled during cold and dark state. Maybe I need to turn something?
Well, that's interesting...
The new MasterEnable
feature is working as intended, but the FBW aircraft is reporting that the electrics panel is on even when cold + dark:
The logic there is saying "If the electrical panel is on and either engine oil pressures are less than 60 psi, show the low oil pressure light", and MSFS is reporting that the electrical panel is on.
I presume that the FBW 320 (as it often seems to do) is using a different value to indicate that the electrical panel is on?
I'll take a quick look and see if I can figure it out. A fix will simply involve adding one line of config to say "The MasterEnable
flag for this aircraft is ... blah...".
So... @t0ffi , it turns out that there are huge numbers of custom variables for the FBW A32NX, even just for its electrical system.
Here's the full list that FBW provide: https://github.com/flybywiresim/a32nx/blob/master/docs/a320-simvars.md
Do you know which of those indicate that the aircraft is 'powered'? There seem to be 14 variables indicating that various busses have power. One or more of those probably indicates the state needed but I'm afraid I haven't the first clue as I don't know the A320 systems.
So, for instance, an expression in your config.ini file like:
[Aircraft.FlyByWire_A320_NEO]
MasterEnable = L:A32NX_ELEC_AC_ESS_SHED_BUS_IS_POWERED == 1
seems to work for me in that lights then only come on when I start up the aircraft BUT - and this is a hugely important BUT - I have no idea what an 'ESS SHED BUS' is. When I say 'start up the aicraft' I'm literally hitting Ctrl+E because I'm no A320 pilot and don't know the full startup procedure.
Armed with that, can you figure out what the correct variable (or variables plural) would be?
Pretty sure you want A32NX_ELEC_AC_ESS_BUS_IS_POWERED there.
Nice one, @cjkreklow.
Ok @t0ffi, so try putting this into your Config.ini
file:
[Aircraft.FlyByWire_A320_NEO]
MasterEnable = L:A32NX_ELEC_AC_ESS_BUS_IS_POWERED == 1
Everything now working fine. After turning on bat no lights, lights starts to appear after connecting external power. @RoystonS, @cjkreklow thank you guys for your help!
Nice one. I already made the code change so that'll be part of the built-in configuration in the next release of BBL, so you'll be able to get rid of that custom config then.
https://github.com/RoystonS/BetterBravoLights/commit/ae1d4cb361252409f40ed21aeebcbbb4efac1b4f
Software version 0.6.0
Is your feature request related to a problem? Please describe. The default Honeycomb driver disables the lights until power is available, this is not present in BetterBravoLights.
Describe the solution you'd like A "master toggle" option of some kind that would disable all the lights for a given condition. The Honeycomb configuration appears to be when A:ELECTRICAL MAIN BUS AMPS == 0
Describe alternatives you've considered Adding an AND condition to each individual configuration with A:ELECTRICAL MAIN BUS AMPS > 0