May 28May 28 Hello Lorby_SI and community,I would like to report a finding regarding L:1 scoped variable support in AAO v4.56 b19 (MSFS2024 version) that I believe warrants developer attention.---BACKGROUNDI recently spent an extensive debugging session resolving a propeller feathering bug on the Redwing L-1049 Super Constellation in FS2024 after SU4/SU5. The feather switches on this aircraft use scoped variables: L:1:CONST_FEATHER_Switch1 L:1:CONST_FEATHER_Switch2 L:1:CONST_FEATHER_Switch3 L:1:CONST_FEATHER_Switch4The value of these variables is 0 when not feathered and 100 when feathered.During that debugging session I discovered that FSUIPC7's standard ipc.readLvar() function cannot read scoped variables at all — it always returns nil. The only reliable solution was FSUIPC7's event.Lvar() function which routes through FSUIPC7's internal WASM module to correctly access and monitor scoped variables in real time.---THE TESTAfter seeing that AAO v4.52 added L:1 variable processing (read and write) in the changelog, I decided to test whether AAO could track scoped variables in real time using the Observe Variables tool.Test environment: - AAO v4.56 b19 (MSFS2024 version) - Redwing L-1049 Super Constellation - FS2024 with latest updates - Variable tested: L:1:CONST_FEATHER_Switch1Test procedure: 1. Loaded the L-1049 in FS2024 2. Opened Scripting -> Watch simulator variables 3. Manually entered L:1:CONST_FEATHER_Switch1 and clicked Add 4. AAO successfully displayed the variable with an initial value of [0.000000] — correct for unfeathered state 5. Operated the feather switch for engine 1 multiple times in the virtual cockpit 6. Observed the value in the AAO watch window throughoutRESULT: The value remained frozen at [0.000000] and did not update when the feather switch was engaged. The variable is not being tracked in real time.---CONCLUSIONAAO v4.56 can successfully initialize and display L:1 scoped variables at their startup value, but does not appear to receive live updates when those values change in the sim. This is the same fundamental limitation that FSUIPC7's ipc.readLvar() has with scoped variables — a static read rather than a live monitored connection.FSUIPC7 solves this via its event.Lvar() function which uses a WASM module running inside the sim sandbox to receive real time callbacks when scoped variable values change. Without an equivalent mechanism in AAO, scoped variables cannot be used for real time controller logic, condition monitoring, or hardware feedback.---WHY THIS MATTERSAs FS2024 add-on aircraft become more sophisticated, the use of scoped variables for critical systems is increasing. Aircraft like the Redwing L-1049 use them for feather switches. Other complex warbirds and classic airliners are likely doing the same. Without real time scoped variable tracking, users of these aircraft cannot: - Assign hardware switches to respond to scoped variable states - Build AAO scripts that conditionally act based on scoped variable values - Use AAO for any logic that depends on knowing the real time state of a scoped variable---QUESTIONS FOR THE DEVELOPER1. Is real time monitoring of L:1 scoped variables something that is planned or on the roadmap?2. The Asobo SDK documentation suggests that SimConnect_AddToDataDefinition can reference L:1 variables — has this been explored as a path to real time scoped variable access?3. Alternatively, would a WASM bridge approach similar to FSUIPC7's event.Lvar() be feasible within AAO's architecture?---I hope this detailed report is useful. I am happy to provide any additional testing or information if it would help diagnose or resolve this. The L-1049 with its four scoped feather switch variables provides a clean and reproducible test case.Thank you for the outstanding work on AAO — it is an indispensable tool for serious simmers.Regards,Ed
May 28May 28 Commercial Member 1 hour ago, Hollister56 said:L:1:CONST_FEATHER_Switch1The correct syntax would be(L:1:CONST_FEATHER_Switch1, Number)LVars that are to be synchronized with the sim must have a unit in AAO. Use "Number" when in doubt. Otherwise the LVar remains internal to AAO (so you can freely use your own LVars in your scripts without weighing down the interface to the sim).On a side note, in the latest SDK documentation for MSFS 2024 Asobo says that "L:1:" equals "Z:". Don't know if that is true though. Edited May 28May 28 by Lorby_SI LORBY-SI
May 28May 28 Author Thanks for the reply and I will test that out now!That worked and yes I was successful in assigning scoped L:1 variables to my Bravo controller. Not too hard to do when you know what to do, and AI is a huge help in the learning process. Another great thing about AI, I am using Claude, is it will summarize everything you do into a PDF for you to refer to at a future date. This is a incredable learning tool for anyone interested in this subject.Thanks again for the guidence and all the support you give your users.Ed Edited May 28May 28 by Hollister56
Create an account or sign in to comment