Hi, I’m developing a .NET 8 WinForms application that connects to MSFS using SimConnect. The connection is successful, and SimConnect.dll loads without errors. However, the Instance.OnRecvSimobjectData event handler never fires, so I can’t receive telemetry data.
What I’ve tried:
- Registered the data definition and struct for aircraft telemetry.
- Requested periodic data for the user aircraft (SIMCONNECT_OBJECT_ID_USER).
- Subscribed to
OnRecvSimobjectDatabefore requesting data. - Added exception logging (
OnRecvException), but no exceptions are reported. - Used message ID 0x0402 for SimConnect and the form.
Not too sure about these:
- Confirmed MSFS is running and SimConnect connects (
OnRecvOpenfires). I don’t ever see the debug message, but I do see another “success” message where I donew SimConnect().
- Verified the WinForms message loop is running and the form handle is valid.
Relevant code snippet:
Instance = new SimConnect("APPNAME", windowHandle, 0x0402, null, 0);
Instance.OnRecvOpen += (s, e) => Debug.WriteLine("SimConnect: connection opened.");
Instance.OnRecvSimobjectData += SimConnect_OnRecvSimobjectData;
Instance.OnRecvException += (s, e) => Debug.WriteLine($"SimConnect Exception: {e.dwException}");
SimConnectIntegration.Definitions.AircraftDataDefinition.Register(Instance);
Instance.RequestDataOnSimObject(
SimConnectIntegration.Definitions.DEFINITIONS.AircraftData,
SimConnectIntegration.Definitions.DEFINITIONS.AircraftData,
SimConnect.SIMCONNECT_OBJECT_ID_USER,
SIMCONNECT_PERIOD.SECOND,
SIMCONNECT_DATA_REQUEST_FLAG.DEFAULT,
0u, 0u, 0u
);
The handler:
private static void SimConnect_OnRecvSimobjectData(SimConnect sender, SIMCONNECT_RECV_SIMOBJECT_DATA data)
{
Debug.WriteLine("--- SimConnect_OnRecvSimobjectData received ---");
// ... dump data fields ...
}
Project structure:
MsfsClient/
├── Forms/
│ ├── MainForm.cs
│ ├── MainForm.Designer.cs
├── Models/
│ └── AircraftTelemetry.cs
├── Services/
│ ├── SimConnectService.cs
│ ├── SimConnectMapper.cs
│ └── NativeLibraryLoader.cs
├── SimConnectIntegration/
│ ├── Definitions/
│ │ └── AircraftDataDefinition.cs
│ ├── Structs/
│ │ └── AircraftDataStruct.cs
├── MsfsClient.csproj
What could prevent OnRecvSimobjectData from firing, even though SimConnect allegedly connects and no exceptions are reported? Thank you for any guidance.