Yes, yes, yes! As I’ve said in my previous post:
-
It used to be not possible to read/write LVars from Simconnect (.EXE or .WASM doesn’t matter). To do this before SU12, you had to call the legacy Gauges API (not Simconnect), which was ONLY accessible in a WASM model.
-
MSFS 2020 SU12 added the ability to specify an LVar by simply adding “L:” to its name in a normal Simconnect data Definition, same as normal A: SimVars (A: don’t use the A: prefix, L: do.
-
Once you can use the variable with Simconnect, WASM or EXE doesn’t matter anymore.
In theory, all those WASM modules that don’t do anything other than being servers for other .EXE using the Simconnect Client data areas and commands to call into the Gauges API and give access to LVars, are technically useless now because, before SU12, you had to do this:
Before SU12
Your .EXE → Simconnect Client data areas → WASM module → Gauges API → MSFS
After SU12
Your .EXE → Simconnect L: vars → MSFS
Does it mean WASM modules that acts are bridge for LVars are completely useless today ? Not entirely. While they are no longer required to read/write LVars, they are still required for one crucial function in the Gauges API, which is:
execute_calculator_code()
Which executes an RPN expression like this:
“(L:MyVariable, number)”
If you want to execute RPN code programmatically, you STILL need a WASM module.
Note that, using RPN “just” to set or read LVariable is less efficient than using Simconnect, because the expression needs to be parsed or eventually cached, so if you “just” want to read/write a variable, executing RPN is not the best solution.
Also, with Simconnect you can read and write more than one variable at once with a SINGLE call, so if you need to do that, it’s way more efficient through Simconnect.
But of course, if your application is data driven, as in “user configurable”, meaning users might need to supply a custom XML expression to do something (like user-configurable custom hardware support, for example), execute_calculator_code is still very useful, and might be the only reason to keep having a WASM module.