Exemple #1
0
        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);
            }
        }