A couple of users have reported that they are getting multiple SimConnect exception = 3 (UnrecognizedID) in the log file that SODE writes out. My exception handler would then inhibit the triggering of jetways to prevent writing data to non-existent simobjects.
However, I was not able to trace the source of those errors and my injected simobjects are not removed and are present. But still, the simconnect communications diagnostic window shows various
Code: Select all
>>>>> EXCEPTION=3, SendID=686, Index=3 <<<<<
Some users reported that they were able to stop those exceptions by deactivating some other SimConnect client add-on (TacPack or Aivlasoft EFB). SODE would then run without issues.
So I have made a small SimConnect client application that just generates a unrecognized ID exception periodically (PERIOD_SECOND) by calling RequestDataOnSimObject with a wrong object ID.
Following observations were made:
In the diagnostic window, the exceptions are showing at the correct rate, i.e. every second. But the module index is not from my small exception generator, but from an other module making (valid) data requests! In my case the log says the exceptions would come from the Addon Manager X module [67], which makes periodic data requests in the background. Obviously the SendID always refers to the last data request made to the server. It also always refers to parameter Index=3, regardless of the SimConnect API call made (mostly RequestDataOnSimObject and TransmitClientEvent).
It seems that the exception generated by my small application [69] is being broadcasted to other clients of the SimConnect server! As soon as I turn off my application, the exceptions would disappear.
Here's the server communications trace:
Code: Select all
> 19.64717 [67, 1]Open: Version=0x00000004 Name="Addon Manager X"
...
> 131.83063 [69, 1]Open: Version=0x00000004 Name="SimConnect Exception Generator"
...
< 219.93907 [67] >>>>> EXCEPTION=3, SendID=686, Index=3 <<<<<
> 219.95226 [67, 687]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 220.11646 [67, 688]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 220.28724 [67, 689]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 220.45064 [67, 690]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 220.62110 [67, 691]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 220.78418 [67, 692]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
< 220.93723 [67] >>>>> EXCEPTION=3, SendID=692, Index=3 <<<<<
> 220.95085 [67, 693]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 221.11966 [67, 694]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 221.28252 [67, 695]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 221.44933 [67, 696]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 221.53895 [65, 1398]TransmitClientEvent:ObjectID=0, EventID=42, dwData=0, GroupID=1, Flags=16
> 221.61772 [67, 697]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 221.78472 [67, 698]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
< 221.94233 [67] >>>>> EXCEPTION=3, SendID=698, Index=3 <<<<<
> 221.95584 [67, 699]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 222.11991 [67, 700]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 222.28240 [67, 701]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 222.45004 [67, 702]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 222.61922 [67, 703]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
> 222.78717 [67, 704]RequestDataOnSimObject:RequestID=5, DefineID=9, ObjectID=0, Period=1, Flags=0, origin=0, interval=0, limit=0
< 222.93817 [67] >>>>> EXCEPTION=3, SendID=704, Index=3 <<<<<
Code: Select all
> 19.58016 [65, 1]Open: Version=0x00000004 Name="SimObject Display Engine SODE"
...
> 242.91270 [65, 1822]TransmitClientEvent:ObjectID=0, EventID=19, dwData=0, GroupID=32, Flags=16
< 242.94258 [65] >>>>> EXCEPTION=3, SendID=1822, Index=3 <<<<<
Conclusion: Once a SimConnect client (e.g. TacPack) generates a UNRECOGNIZED_ID exception from a periodic RequestDataOnSimObject() call, this exception leaks into other clients and that can fool the exception handling of those clients.
Thanks for looking into this. If you are interested, I can provide my small exception generator to you for testing.