예제 #1
1
            internal void OnWlanConnection(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
            {
                if (WlanConnectionNotification != null)
                    WlanConnectionNotification(notifyData, connNotifyData);

                if (queueEvents)
                {
                    WlanConnectionNotificationEventData queuedEvent = new WlanConnectionNotificationEventData();
                    queuedEvent.notifyData = notifyData;
                    queuedEvent.connNotifyData = connNotifyData;
                    EnqueueEvent(queuedEvent);
                }
            }
예제 #2
0
 public bool ConnectSynchronously(Wlan.WlanConnectionMode connectionMode, Wlan.Dot11BssType bssType, string profile, int connectTimeout)
 {
     _queueEvents = true;
     try
     {
         Connect(connectionMode, bssType, profile);
         while (_queueEvents && _eventQueueFilled.WaitOne(connectTimeout, true))
         {
             lock (_eventQueue)
             {
                 while (_eventQueue.Count != 0)
                 {
                     object obj2 = _eventQueue.Dequeue();
                     if (obj2 is WlanConnectionNotificationEventData)
                     {
                         WlanConnectionNotificationEventData data = (WlanConnectionNotificationEventData)obj2;
                         if (((data.NotifyData.notificationSource != Wlan.WlanNotificationSource.Acm) || (data.NotifyData.notificationCode != 10)) || data.ConnNotifyData.profileName != profile)
                         {
                             break;
                         }
                         return(true);
                     }
                 }
                 continue;
             }
         }
     }
     finally
     {
         _queueEvents = false;
         _eventQueue.Clear();
     }
     return(false);
 }
예제 #3
0
            internal void OnWlanConnection(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
            {
                if (WlanConnectionNotification != null)
                {
                    WlanConnectionNotification(notifyData, connNotifyData);
                }

                if (queueEvents)
                {
                    WlanConnectionNotificationEventData queuedEvent = new WlanConnectionNotificationEventData();
                    queuedEvent.notifyData     = notifyData;
                    queuedEvent.connNotifyData = connNotifyData;
                    EnqueueEvent(queuedEvent);
                }
            }
예제 #4
0
 internal void OnWlanConnection(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
 {
     if (WlanConnectionNotification != null)
     {
         WlanConnectionNotification(notifyData, connNotifyData);
     }
     if (_queueEvents)
     {
         WlanConnectionNotificationEventData data2 = new WlanConnectionNotificationEventData
         {
             NotifyData     = notifyData,
             ConnNotifyData = connNotifyData
         };
         WlanConnectionNotificationEventData queuedEvent = data2;
         EnqueueEvent(queuedEvent);
     }
 }
예제 #5
0
 /// <summary>
 /// Connects (associates) to the specified wireless network, returning either on a success to connect
 /// or a failure.
 /// </summary>
 /// <param name="connectionMode"></param>
 /// <param name="bssType"></param>
 /// <param name="profile"></param>
 /// <param name="connectTimeout"></param>
 /// <returns></returns>
 public bool ConnectSynchronously(Wlan.WlanConnectionMode connectionMode, Wlan.Dot11BssType bssType, string profile, int connectTimeout)
 {
     queueEvents = true;
     try
     {
         Connect(connectionMode, bssType, profile);
         while (queueEvents && eventQueueFilled.WaitOne(connectTimeout, true))
         {
             lock (eventQueue)
             {
                 while (eventQueue.Count != 0)
                 {
                     object e = eventQueue.Dequeue();
                     if (e is WlanConnectionNotificationEventData)
                     {
                         WlanConnectionNotificationEventData wlanConnectionData = (WlanConnectionNotificationEventData)e;
                         // Check if the conditions are good to indicate either success or failure.
                         if (wlanConnectionData.notifyData.notificationSource == Wlan.WlanNotificationSource.ACM)
                         {
                             switch ((Wlan.WlanNotificationCodeAcm)wlanConnectionData.notifyData.notificationCode)
                             {
                             case Wlan.WlanNotificationCodeAcm.ConnectionComplete:
                                 if (wlanConnectionData.connNotifyData.profileName == profile)
                                 {
                                     return(true);
                                 }
                                 break;
                             }
                         }
                         break;
                     }
                 }
             }
         }
     }
     finally
     {
         queueEvents = false;
         eventQueue.Clear();
     }
     return(false);                // timeout expired and no "connection complete"
 }
예제 #6
0
 internal void OnWlanConnection(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
 {
     if (WlanConnectionNotification != null)
     {
         WlanConnectionNotification(notifyData, connNotifyData);
     }
     if (_queueEvents)
     {
         WlanConnectionNotificationEventData data2 = new WlanConnectionNotificationEventData {
             NotifyData = notifyData,
             ConnNotifyData = connNotifyData
         };
         WlanConnectionNotificationEventData queuedEvent = data2;
         EnqueueEvent(queuedEvent);
     }
 }
예제 #7
0
            internal void OnWlanConnection(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
            {
                if (notifyData.notificationSource == Wlan.WlanNotificationSource.ACM &&
                    notifyData.notificationCode == (int)Wlan.WlanNotificationCodeAcm.Disconnected)
                {
                    disconnectCompleteEvent.Set();
                }

                if (WlanConnectionNotification != null)
                {
                    WlanConnectionNotification(notifyData, connNotifyData);
                }

                if (queueEvents)
                {
                    WlanConnectionNotificationEventData queuedEvent = new WlanConnectionNotificationEventData();
                    queuedEvent.notifyData = notifyData;
                    queuedEvent.connNotifyData = connNotifyData;
                    EnqueueEvent(queuedEvent);
                }
            }
예제 #8
0
            internal void OnWlanConnection(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
            {
                WlanConnectionNotification?.Invoke(notifyData, connNotifyData);

                if (_queueEvents)
                {
                    WlanConnectionNotificationEventData queuedEvent = new WlanConnectionNotificationEventData
                    {
                        NotifyData = notifyData,
                        ConnNotifyData = connNotifyData
                    };
                    EnqueueEvent(queuedEvent);
                }
            }