private async void SimConnect_OnRecvSimobjectData(SimConnectImpl sender, SIMCONNECT_RECV_SIMOBJECT_DATA data) { if (data.dwRequestID == (uint)REQUEST.Position && data.dwDefineID == (uint)DEFINITION.Position && data.dwData?.FirstOrDefault() is Position pos) { await PositionReceived.RaiseAsync(pos).ConfigureAwait(false); } if (data.dwRequestID == (uint)REQUEST.Attitude && data.dwDefineID == (uint)DEFINITION.Attitude && data.dwData?.FirstOrDefault() is Attitude att) { await AttitudeReceived.RaiseAsync(att).ConfigureAwait(false); } if (data.dwRequestID == (uint)REQUEST.TrafficObjectBase + data.dwObjectID && data.dwDefineID == (uint)DEFINITION.Traffic && data.dwObjectID != SimConnectImpl.SIMCONNECT_OBJECT_ID_USER && data.dwData?.FirstOrDefault() is Traffic tfk) { await TrafficReceived.RaiseAsync(tfk, data.dwObjectID).ConfigureAwait(false); } }