I am the developer of MobiFlight and I was using the 2.0 version of your library so far. We actually had some issues with missing writes and reads and I believe that is something that you also addressed in your 3.x version (at least the change log mentions something that pretty much sounds like the problem I was having...)
I am migrating to the 3.x version now and I observed a strange behavior when using EventIDs/FSControls.
With 2.0 Version I was using the following code and the logic that was explained in the FSUIPC documentation (cache is pretty much just a wrapper for your library that manages creating the required offsets and the respective reading and writing udpates):
So I am setting the offset for param, I am setting EventID at the offset for the EventID/FSControls. Write then simply triggers FSUIPCConnection.process().
In version 2, I was able to do this and the effect was as expected. Every time I set the offset the Event will be triggered in the flight sim.
Example: Increase COM1 freq, you call the method once with the right EventID and Param and the COM1 freq will be increased once accordingly. Call the method various times, the COM1 freq will be increased multiple times.
In version 3 however, If i set these offsets once, it seems that they are continuously executed on every FSUIPCConnection.process(). It looks like if the offsets are written every time. When I write to other FSUIPC Offsets that don't deal with the EventIDs/FSControls, I don't
I changed my code to call the newly added method FSUIPCConnection.SendControlToFS and it seems to be working just fine now again, but I would still like to understand what has changed in regard to writing offsets to make sure I don't miss to change other parts of my logic too.