/// <summary>
 /// Request an update for a specific SimVar request
 /// </summary>
 /// <param name="requestID">ID returned by SendRequest</param>
 /// <param name="frequency">SimVar can be requested manually (SimConnectUpdateFrequency.Never) or auto-sent at a pre-defined frequency</param>
 public static void GetSimVar(int requestID, SimConnectUpdateFrequency frequency)
 {
     WriteLog("Start GetSimVar(int, SimConnectUpdateFrequency)");
     try
     {
         if (IsConnected)
         {
             if (frequency == SimConnectUpdateFrequency.Never || (int)frequency > (int)SIMCONNECT_PERIOD.SECOND)
             {
                 if ((int)frequency > (int)SIMCONNECT_PERIOD.SECOND)
                 {
                     // Register SimVarRequest
                     RegisterSimVar(Requests[requestID], SimConnectUpdateFrequency.Never);
                     AddTimer(requestID, (int)frequency);
                 }
                 simConnect?.RequestDataOnSimObjectType((SIMVARREQUEST)requestID, (SIMVARDEFINITION)requestID, 0, SIMCONNECT_SIMOBJECT_TYPE.USER);
             }
             else
             {
                 SIMCONNECT_PERIOD period = Enum.Parse <SIMCONNECT_PERIOD>(frequency.ToString().ToUpper());
                 RegisterSimVar(Requests[requestID], SimConnectUpdateFrequency.Never);
                 simConnect?.RequestDataOnSimObject((SIMVARREQUEST)requestID, (SIMVARDEFINITION)requestID, 0, period, SIMCONNECT_DATA_REQUEST_FLAG.DEFAULT, 0, 0, 0);
             }
         }
     }
     catch (Exception ex)
     {
         WriteLog(string.Format("Get SimVar Error: {0}", ex.Message), EventLogEntryType.Error);
         // Likely cause, no request for this variable has previously been submitted
     }
     WriteLog("End GetSimVar(int, SimConnectUpdateFrequency)");
 }
Beispiel #2
0
        private void OnGroundHandler(ExtendedSimConnect simConnect, bool isOnGround)
        {
            SIMCONNECT_PERIOD period = isOnGround ? SIMCONNECT_PERIOD.SECOND : SIMCONNECT_PERIOD.NEVER;

            simConnect.RequestDataOnSimObject(this, period);
            wasAirspeedAlive = wasAbove80 = wasAbove100 = wasAboveV1 = wasAboveVR = null;
        }
Beispiel #3
0
        private void OnGroundHandler(ExtendedSimConnect simConnect, bool isOnGround)
        {
            SIMCONNECT_PERIOD period = isOnGround ? SIMCONNECT_PERIOD.SECOND : SIMCONNECT_PERIOD.NEVER;

            simConnect.RequestDataOnSimObject(this, period);
            wasDecel    = wasBelow70 = null;
            wasSpoilers = isOnGround ? false : null;
        }
 private void RequestData(Definitions id, SIMCONNECT_PERIOD period = SIMCONNECT_PERIOD.ONCE)
 {
     Debug.Assert(_simConnect != null);
     _simConnect?.RequestDataOnSimObject(id, id, (uint)SIMCONNECT_SIMOBJECT_TYPE.USER, period, period > SIMCONNECT_PERIOD.ONCE ? SIMCONNECT_DATA_REQUEST_FLAG.CHANGED : SIMCONNECT_DATA_REQUEST_FLAG.DEFAULT, 0, 0, 0);
 }
Beispiel #5
0
        internal void SetIsLIstening(ExtendedSimConnect simConnect, bool IsListening)
        {
            SIMCONNECT_PERIOD period = IsListening ? SIMCONNECT_PERIOD.SECOND : SIMCONNECT_PERIOD.NEVER;

            simConnect.RequestDataOnSimObject(this, period);
        }