This alone could already help a lot for a number of things indeed. Thank you
for your understanding.
Hello @ChrisSMS I made some progress on this.
Here’s what I found. The crash occurs because the Gauge RPN evaluation
function is re-entrant but not designed for it. The unique RPN evaluator
context is altered when you send an event that is also listened to in your
Trap_Events.xml gauge. The evaluator starts to execute the
StartupMSFS.xml RPN code, sends the K event, then immediately starts to
execute the event callback RPN code in Trap_Events.xml , overwriting the
StartupMSFS context and that’s causing the crash. This code has not been
modified by Asobo so I’m not sure how it could work with FSX. I need to do
further investigations for this as this is not something we will modify
without strong knowledge on the consequences. In the meantime, you can either:
- Remove any call to an event you are watching in Trap_Events.xml or
remove the callback itself or - Use Behavior 's InputEvents
Bindings to handle events callbacks instead of the legacy gauge
****Regards, Sylvain
Sylvain, I also continued my tests, and I see that the problem is not really
the interception of the “ENGINE_AUTO_START” Event via : This interception
works fine. But, (>K:ENGINE_AUTO_SHUTDOWN) in an .xml gauge systematically
crashes the simu. If the (>K:ENGINE_AUTO_SHUTDOWN) is placed in the
Behavior…, it works without any CDT…! I hope this will help you to find
the problem! Greetings, and good flights! Chris
“the problem is not really the interception of the “ENGINE_AUTO_START” Event
via : This interception works fine. But, (>K:ENGINE_AUTO_SHUTDOWN) in an .xml
gauge systematically crashes the simu.” It’s a combination of both. The game
crashes if the gauge sends an event that it also watches. Removing the send or
the watch solves the issue. And moving one of those to the Behavior solves the
issue as the Behavior processor has been designed by Asobo to handle this
case.
OK…, I understand the problem better! In the meantime, I found a solution
for my startup by intercepting the automatic startup by , and placing the
automatic stop in the Behavior; now everything works fine… Thanks for taking
the time to respond Sylvain! I really appreciate it.