We provide integration points with several hardware manufacturers using 3 different methodologies. By far, the most popular and the most reliable is having your hardware transmit custom SimConnect events. Our software "listens" for the designated event numbers, as specified in an avionics INI file, and then our software responds to the events accordingly. Similarly, our software can publish events back to hardware via custom SimConnect events to tell hardware such as lights when to turn on, or blink, etc. Custom SimConnect events start at the number 0x11000.
The second method you could use for transmitting events to our software is through the use of FSUIPC offsets. This is less desirable than SimConnect, but it's certainly a functioning options. For FSUIPC, you would need to write software that monitors your hardware knobs and switches, and updates designated FSUIPC offsets with a number, indicating that a knob or switch has been toggled or turned. The our software "listens" to those designated FSUIPC offsets to know if a knob or button has been manipulated. If you do not already have expertise in FSUIPC, it would be more advantageous to start with SimConnect since that doesn't require the addition of the FSUIPC addon. But if you are already standardized on FSUIPC, this method would be an option.
The final method of transmitting events to our software is through the use of keyboard shortcuts. This is the least ideal option, but some customers prefer to define keyboard commands that represent knobs and buttons. It's less ideal because you can run into problems if the simulator window loses focus. Windows directs keyboard commands to the current window that has focus, and if this inadvertently changes, you can run into problems. Furthermore, the only window that can accept keyboard input is the main window (the one with the menubar on it). So if focus happens to fall on a different simulator window, your keyboard shortcuts will not be received. This is why we usually advise customers to avoid this option unless SimConnect and FSUIPC are for some reason not viable options. (This is not typical).
If you use FSUIPC, it's a requirement that you at at least running the version as reference by this link.