Пример #1
0
        /// <summary>
        /// WiFiスキャンが完了したときのイベント
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void Wifi_AvailableNetworksChanged(WiFiAdapter sender, object e)
        {
            Debug.WriteLine("Wifi_AvailableNetworksChanged - get report");

            // スキャンされたすべてのWiFiネットワークのレポートを取得
            WiFiNetworkReport report = sender.NetworkReport;

            // ネットワークを探して列挙する
            foreach (WiFiAvailableNetwork net in report.AvailableNetworks)
            {
                // 見つかったすべてのネットワークを表示
                Debug.WriteLine($"Net SSID :{net.Ssid},  BSSID : {net.Bsid},  rssi : {net.NetworkRssiInDecibelMilliwatts.ToString()},  signal : {net.SignalBars.ToString()}");

                // 自分のネットワークの場合、接続する
                if (net.Ssid == MYSSID)
                {
                    // すでに接続されている場合は切断します
                    sender.Disconnect();

                    // ネットワークに接続する
                    WiFiConnectionResult result = sender.Connect(net, WiFiReconnectionKind.Automatic, MYPASSWORD);

                    // ステータス表示
                    if (result.ConnectionStatus == WiFiConnectionStatus.Success)
                    {
                        Debug.WriteLine("Connected to Wifi network");
                    }
                    else
                    {
                        Debug.WriteLine($"Error {result.ConnectionStatus} connecting o Wifi network");
                    }
                }
            }
        }
Пример #2
0
        private static void WifiAvailableNetworksChanged(WiFiAdapter sender, object e)
        {
            var wifiNetworks = sender.NetworkReport.AvailableNetworks;

            foreach (var net in wifiNetworks)
            {
                Debug.WriteLine($"SSID: {net.Ssid}, strength: {net.SignalBars}");
                if (net.Ssid == MySsid)
                {
                    if (_isConnected)
                    {
                        sender.Disconnect();
                        _isConnected = false;
                        Thread.Sleep(3000);
                    }
                    // Connect to network
                    WiFiConnectionResult result = sender.Connect(net, WiFiReconnectionKind.Automatic, MyPassword);

                    // Display status
                    if (result.ConnectionStatus == WiFiConnectionStatus.Success)
                    {
                        Debug.WriteLine($"Connected to Wifi network {net.Ssid}");
                        _isConnected = true;
                        break;
                    }
                    else
                    {
                        Debug.WriteLine($"Error {result.ConnectionStatus} connecting to Wifi network");
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Event handler for when WiFi scan completes
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void Wifi_AvailableNetworksChanged(WiFiAdapter sender, object e)
        {
            Debug.WriteLine("Wifi_AvailableNetworksChanged - get report");

            // Get Report of all scanned WiFi networks
            WiFiNetworkReport report = sender.NetworkReport;

            // Enumerate though networks looking for our network
            foreach (WiFiAvailableNetwork net in report.AvailableNetworks)
            {
                // Show all networks found
                Debug.WriteLine($"Net SSID :{net.Ssid},  BSSID : {net.Bsid},  rssi : {net.NetworkRssiInDecibelMilliwatts.ToString()},  signal : {net.SignalBars.ToString()}");

                // If its our Network then try to connect
                if (net.Ssid == MYSSID)
                {
                    // Disconnect in case we are already connected
                    sender.Disconnect();

                    // Connect to network
                    WiFiConnectionResult result = sender.Connect(net, WiFiReconnectionKind.Automatic, MYPASSWORD);

                    // Display status
                    if (result.ConnectionStatus == WiFiConnectionStatus.Success)
                    {
                        Debug.WriteLine("Connected to Wifi network");
                    }
                    else
                    {
                        Debug.WriteLine($"Error {result.ConnectionStatus.ToString()} connecting o Wifi network");
                    }
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Отключиться от устройства
        /// </summary>
        public async void DisconnectAsync()
        {
            await Task.Run(() =>
            {
                if (_wifiAdapter != null)
                {
                    _wifiAdapter.Disconnect();
                }
            });

            _currentWiFi       = null;
            _currentCredential = null;
        }
Пример #5
0
        private async void OnItemClick(object sender, ItemClickEventArgs e)
        {
            var selectedNetwork = (WiFiNetworkDisplay)e.ClickedItem;
            WiFiReconnectionKind reconnectionKind = WiFiReconnectionKind.Automatic;
            WiFiConnectionResult result;

            if (selectedNetwork.AvailableNetwork.SecuritySettings.NetworkAuthenticationType ==
                NetworkAuthenticationType.Open80211)
            {
                result = await firstAdapter.ConnectAsync(selectedNetwork.AvailableNetwork, reconnectionKind);

                ConnectResult(result);
            }
            else
            {
                if (selectedNetwork.ConnectivityLevel == "已连接")
                {
                    firstAdapter.Disconnect();
                    await selectedNetwork.UpdateConnectivityLevel();

                    return;
                }

                if (selectedNetwork.Pwd.Length >= 8)
                {
                    var credential = new PasswordCredential();
                    credential.Password = selectedNetwork.Pwd;
                    result =
                        await firstAdapter.ConnectAsync(selectedNetwork.AvailableNetwork, reconnectionKind, credential);

                    ConnectResult(result);
                }
                else
                {
                    var message = new PwdControl(async(x) =>
                    {
                        var credential      = new PasswordCredential();
                        credential.Password = x;
                        result =
                            await
                            firstAdapter.ConnectAsync(selectedNetwork.AvailableNetwork, reconnectionKind, credential);
                        ConnectResult(result);
                    });
                    await message.ShowAsync();
                }
            }
        }
Пример #6
0
        public IAsyncOperation <OnboardingOffboardResult> OffboardAsync(AllJoynMessageInfo info)
        {
            return(Task.Run(() =>
            {
                lock (_stateLock)
                {
                    if (_state == OnboardingState.ConfiguredValidated || _state == OnboardingState.ConfiguredValidating)
                    {
                        _wlanAdapter.Disconnect();
                    }
                    _state = OnboardingState.NotConfigured;
                    _personalApSsid = null;
                    _personalApPassword = null;
                    _authType = AuthType.Any;

                    _softAccessPoint?.Start();
                }
                return OnboardingOffboardResult.CreateSuccessResult();
            }).AsAsyncOperation());
        }
Пример #7
0
        public void DisconnectFromTelloWifi()
        {
            WiFiAdapter.Disconnect();
            //await ScanForNetworks();

            //var report = WiFiAdapter.NetworkReport;

            //var sfrNetwork = report.AvailableNetworks.First(availableNetwork => availableNetwork.Ssid.Equals(SfrSsid));
            //WiFiAdapter.ConnectAsync(sfrNetwork, WiFiReconnectionKind.Manual);

            //var connectionResult = await WiFiAdapter.ConnectAsync(sfrNetwork, WiFiReconnectionKind.Manual);

            //if (connectionResult.ConnectionStatus == WiFiConnectionStatus.Success)
            //{
            //    Debug.WriteLine("Connected to SFR network with success");
            //}
            //else
            //{
            //    Debug.WriteLine("Failed to reconnect to SFR network : " + connectionResult.ConnectionStatus.ToString());
            //}
        }
Пример #8
0
        async public Task ConnectToTelloWifi()
        {
            await InitializeFirstAdapter();

            WiFiAdapter.Disconnect();
            await ScanForNetworks();

            var report = WiFiAdapter.NetworkReport;

            var telloNetwork = report.AvailableNetworks.First(availableNetwork => availableNetwork.Ssid.Equals(TelloSSID));

            var connectionResult = await WiFiAdapter.ConnectAsync(telloNetwork, WiFiReconnectionKind.Manual);

            if (connectionResult.ConnectionStatus == WiFiConnectionStatus.Success)
            {
                Debug.WriteLine("Connected to Tello network with success");
            }
            else
            {
                Debug.WriteLine("Failed to connect to Tello network : " + connectionResult.ConnectionStatus.ToString());
            }
        }
Пример #9
0
        async void device_AvailableNetworksChanged(WiFiAdapter sender, object args)
        {
            if (isEnter)
            {
                return;
            }
            isEnter = true;

            if (hasAutoPassResult)
            {
                return;
            }
            WiFiNetworkReport networkReport = sender.NetworkReport;
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async() =>
            {
                txtStatus.Visibility = Visibility.Collapsed;

                listWiFi.Items.Clear();

                int remainingCount = App.WifiName.Count;
                //uint sigstrengthPassCnt = 0;

                //look for the requested network
                foreach (WiFiAvailableNetwork network in networkReport.AvailableNetworks)
                {
                    // Remove duplicated SSID
                    String strSsid = network.Ssid;
                    if (!String.IsNullOrEmpty(strSsid))
                    {
                        foreach (Customer item in listWiFi.Items)
                        {
                            if (item.Ssid.ToUpper() == network.Ssid.ToUpper())
                            {
                                strSsid = String.Empty;
                                break;
                            }
                        }
                    }

                    if (strSsid == string.Empty)
                    {
                        continue;
                    }

                    // Try to connect network if <ConnectionName> setting exists in SFTConfig.xml
                    if (!isConnection && (network.Ssid.ToUpper() == App.WifiNameConnection.ToUpper()))
                    {
                        var connectioResult = await sender.ConnectAsync(network, WiFiReconnectionKind.Automatic);

                        if (connectioResult.ConnectionStatus == WiFiConnectionStatus.Success)
                        {
                            isConnection = true;
                            App.LogComment(network.Ssid + " : Connection OK!");
                            sender.Disconnect();
                        }
                    }

                    // Set signal strength image
                    string image = String.Format(CultureInfo.CurrentCulture, "/Assets/Wifi{0}",
                                                 (Application.Current.RequestedTheme == ApplicationTheme.Dark) ? "Dark" : "Light");

                    int signalStrength = network.SignalBars;
                    if (signalStrength > 4)
                    {
                        signalStrength = 4;
                    }
                    if (signalStrength < 1)
                    {
                        signalStrength = 1;
                    }
                    signalStrength--;
                    image += signalStrength.ToString(CultureInfo.CurrentCulture) + ".png";

                    // Set Authentication Type
                    String authType = App.LoadString("Secure");
                    switch (network.SecuritySettings.NetworkAuthenticationType)
                    {
                    case NetworkAuthenticationType.Open80211:
                        authType = App.LoadString("Open");
                        break;

                    case NetworkAuthenticationType.None:
                        authType = App.LoadString("Open");
                        break;

                    case NetworkAuthenticationType.Unknown:
                        authType = App.LoadString("Open");
                        break;
                    }

                    // convert from rssi to quality: https://msdn.microsoft.com/en-us/library/windows/desktop/ms706828(v=vs.85).aspx
                    int quality = (Math.Min(Math.Max((int)network.NetworkRssiInDecibelMilliwatts, -100), -50) + 100) * 2;
                    // mark 2.4G and 5G APs in the list
                    string details = authType + ", " + App.LoadString("Signal") + " " + quality + "%" + ", " + PhyTypes[(int)network.PhyKind];
                    // Add a scanned network to list box
                    listWiFi.Items.Add(new Customer(network.Ssid, details, image));
                    // App.LogComment("Available network: " + network.Ssid + ", " + authType + ", Bars=" + network.SignalBars.ToString(CultureInfo.CurrentCulture));
                    App.LogComment("Available network: " + network.Ssid + ", " + details + ", Bars=" + network.SignalBars.ToString(CultureInfo.CurrentCulture));

                    // Auto pass: check how many AP passed signal strength threshold value
                    //if (curConfig.SigStrength_ThresholdCount > 0)
                    //{
                    //    if (network.SignalBars >= curConfig.SigStrength_ThresholdSigBar)
                    //        sigstrengthPassCnt++;
                    //}

                    // Auto pass if WiFi test meet auto pass critera: found all WiFi predefined name list
                    if (remainingCount > 0)
                    {
                        bool isAboveThreshold   = false;
                        int qualityInPercentage = 0;
                        if (curConfig.SigStrength_ThresholdSigQuality > 0)
                        {
                            qualityInPercentage = (Math.Min(Math.Max((int)network.NetworkRssiInDecibelMilliwatts, -100), -50) + 100) * 2;
                            if (App.WifiName.Contains(network.Ssid) && qualityInPercentage >= curConfig.SigStrength_ThresholdSigQuality)
                            {
                                isAboveThreshold = true;
                            }
                        }
                        else if (curConfig.SigStrength_ThresholdSigBar > 0)
                        {
                            if (App.WifiName.Contains(network.Ssid) && network.SignalBars >= curConfig.SigStrength_ThresholdSigBar)
                            {
                                remainingCount--;
                            }
                        }
                        if (isAboveThreshold)
                        {
                            remainingCount--;
                            App.LogComment(network.Ssid + " Found; Rssi=" + network.NetworkRssiInDecibelMilliwatts + "dBm(%" + qualityInPercentage + "), SigBar=" + network.SignalBars + "; PhyType=" + network.PhyKind);
                        }
                    }
                }

                // Enter Auto-Pass/Auto-Faill condition if one of <AvailableName>, <ConnectionName>, or <Threshold> setting exists in SFTConfig.xml
                if (App.WifiName.Count > 0 || !String.IsNullOrEmpty(App.WifiNameConnection)
                    // || curConfig.SigStrength_ThresholdCount > 0
                    )
                {
                    hasAutoPassResult = true;
                    // App.LogComment("Require " + curConfig.SigStrength_ThresholdCount + " AP that has SignalBar >= " + curConfig.SigStrength_ThresholdSigBar + ": Found " + sigstrengthPassCnt);
                    if (remainingCount == 0 && isConnection) // && sigstrengthPassCnt >= curConfig.SigStrength_ThresholdCount)
                    {
                        App.ResultControl("btnPass", this.Name);
                    }
                    else
                    {
                        App.ResultControl("btnFail", this.Name);
                    }
                }

                isEnter = false;
            });
        }
 private void DisconnectButton_Click(object sender, RoutedEventArgs e)
 {
     firstAdapter.Disconnect();
 }
Пример #11
0
 public void DisconnectWifi()
 {
     wifiAdapter.Disconnect();
 }
Пример #12
0
        private async void ConfirmButton_Click(object sender, RoutedEventArgs e)
        {
            string Pass = WiFiList[WiFiControl.SelectedIndex].Password;

            if (Pass != "" && Pass.Length >= 8)
            {
                WiFiList[WiFiControl.SelectedIndex].HideMessage();
                (WiFiControl.ContainerFromItem(WiFiControl.SelectedItem) as ListViewItem).ContentTemplate = WiFiConnectingState;

                WiFiInfo           Info       = WiFiList[WiFiControl.SelectedIndex];
                PasswordCredential Credential = new PasswordCredential
                {
                    Password = Info.Password
                };

                var ConnectResult = await WiFi.ConnectAsync(Info.GetWiFiAvailableNetwork(), Info.AutoConnect?WiFiReconnectionKind.Automatic : WiFiReconnectionKind.Manual, Credential);

                if (ConnectResult.ConnectionStatus == WiFiConnectionStatus.Success)
                {
                    foreach (var WiFiInfo in from WiFiInfo in WiFiList
                             where WiFiInfo.IsConnected == true
                             select WiFiInfo)
                    {
                        WiFiInfo.ChangeConnectionStateAsync(false);
                    }

                    Info.HideMessage();
                    Info.ChangeConnectionStateAsync(true, true);

                    (WiFiControl.ContainerFromItem(WiFiControl.SelectedItem) as ListViewItem).ContentTemplate = WiFiConnectedState;

                    bool IsExist = false;

                    foreach (var WiFiInfo in from WiFiInfo in StoragedWiFiInfoCollection
                             where WiFiInfo.SSID == Info.Name
                             select WiFiInfo)
                    {
                        if (WiFiInfo.Password != Info.Password)
                        {
                            await SQLite.GetInstance().UpdateWiFiDataAsync(Info.Name, Info.Password);
                        }
                        else if (WiFiInfo.Password == Info.Password)
                        {
                            IsExist = true;
                        }

                        if (WiFiInfo.AutoConnect != Info.AutoConnect)
                        {
                            await SQLite.GetInstance().UpdateWiFiDataAsync(Info.Name, Info.AutoConnect);
                        }

                        break;
                    }

                    if (!IsExist)
                    {
                        IsExist = false;
                        StoragedWiFiInfoCollection.Add(new WiFiInDataBase(Info.Name, Info.Password, Info.AutoConnect ? "True" : "False"));
                        await SQLite.GetInstance().SetWiFiDataAsync(Info.Name, Info.Password, Info.AutoConnect);
                    }
                }
                else
                {
                    WiFi.Disconnect();
                    (WiFiControl.ContainerFromItem(WiFiControl.SelectedItem) as ListViewItem).ContentTemplate = WiFiErrorState;
                    Info.ShowMessage("连接失败");
                }

                //连接完成后重新开始搜索
                WiFiScanTimer.Tick += WiFiScanTimer_Tick;
                WiFiScanTimer.Start();
            }
            else
            {
                WiFiList[WiFiControl.SelectedIndex].ShowMessage("密码必须非空且大于8位");
            }
        }
Пример #13
0
 public void Disconnect()
 {
     _wifiAdapter.Disconnect();
 }
 public void Disconnect()
 {
     adapter.Disconnect();
 }
Пример #15
0
 private void DisconnectButton_Click(object sender, RoutedEventArgs e)
 {
     wifiAdapter.Disconnect();
     connectpanel.Visibility = Visibility.Collapsed;
 }
Пример #16
0
        private async void DoWifiConnect(object sender, RoutedEventArgs e, bool pushButtonConnect)
        {
            var selectedNetwork = ResultsListView.SelectedItem as WiFiNetworkDisplay;

            if (selectedNetwork == null || firstAdapter == null)
            {
                rootPage.NotifyUser("Network not selected", NotifyType.ErrorMessage);
                return;
            }


            var ssid = selectedNetwork.AvailableNetwork.Ssid;

            if (string.IsNullOrEmpty(ssid))
            {
                if (string.IsNullOrEmpty(selectedNetwork.HiddenSsid))
                {
                    rootPage.NotifyUser("Ssid required for connection to hidden network.", NotifyType.ErrorMessage);
                    return;
                }
                else
                {
                    ssid = selectedNetwork.HiddenSsid;
                }
            }

            WiFiReconnectionKind reconnectionKind = WiFiReconnectionKind.Manual;

            if (selectedNetwork.ConnectAutomatically)
            {
                reconnectionKind = WiFiReconnectionKind.Automatic;
            }

            Task <WiFiConnectionResult> didConnect = null;
            WiFiConnectionResult        result     = null;

            if (pushButtonConnect)
            {
                if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 5, 0))
                {
                    didConnect = firstAdapter.ConnectAsync(selectedNetwork.AvailableNetwork, reconnectionKind, null, string.Empty, WiFiConnectionMethod.WpsPushButton).AsTask();
                }
            }
            else
            {
                PasswordCredential credential = new PasswordCredential();
                if (selectedNetwork.IsEapAvailable && selectedNetwork.UsePassword)
                {
                    if (!String.IsNullOrEmpty(selectedNetwork.Domain))
                    {
                        credential.Resource = selectedNetwork.Domain;
                    }

                    credential.UserName = selectedNetwork.UserName ?? "";
                    credential.Password = selectedNetwork.Password ?? "";
                }
                else if (!String.IsNullOrEmpty(selectedNetwork.Password))
                {
                    credential.Password = selectedNetwork.Password;
                }

                if (selectedNetwork.IsHiddenNetwork)
                {
                    // Hidden networks require the SSID to be supplied
                    didConnect = firstAdapter.ConnectAsync(selectedNetwork.AvailableNetwork, reconnectionKind, credential, ssid).AsTask();
                }
                else
                {
                    didConnect = firstAdapter.ConnectAsync(selectedNetwork.AvailableNetwork, reconnectionKind, credential).AsTask();
                }
            }

            SwitchToItemState(selectedNetwork, WifiConnectingState, false);

            if (didConnect != null)
            {
                result = await didConnect;
            }

            if (result != null && result.ConnectionStatus == WiFiConnectionStatus.Success)
            {
                rootPage.NotifyUser(string.Format("Successfully connected to {0}.", selectedNetwork.Ssid), NotifyType.StatusMessage);

                // refresh the webpage
                webViewGrid.Visibility          = Visibility.Visible;
                toggleBrowserButton.Content     = "Hide Browser Control";
                refreshBrowserButton.Visibility = Visibility.Visible;

                ResultCollection.Remove(selectedNetwork);
                ResultCollection.Insert(0, selectedNetwork);
                ResultsListView.SelectedItem = ResultsListView.Items[0];
                ResultsListView.ScrollIntoView(ResultsListView.SelectedItem);

                SwitchToItemState(selectedNetwork, WifiConnectedState, false);
            }
            else
            {
                // Entering the wrong password may cause connection attempts to timeout
                // Disconnecting the adapter will return it to a non-busy state
                if (result.ConnectionStatus == WiFiConnectionStatus.Timeout)
                {
                    firstAdapter.Disconnect();
                }
                rootPage.NotifyUser(string.Format("Could not connect to {0}. Error: {1}", selectedNetwork.Ssid, (result != null ? result.ConnectionStatus : WiFiConnectionStatus.UnspecifiedFailure)), NotifyType.ErrorMessage);
                SwitchToItemState(selectedNetwork, WifiConnectState, false);
            }

            // Since a connection attempt was made, update the connectivity level displayed for each
            foreach (var network in ResultCollection)
            {
                var task = network.UpdateConnectivityLevelAsync();
            }
        }
Пример #17
0
        private void Send(object sender, object e)
#endif
        {
            timeTick = SEND_INTERVAL;
            if (client.Messages() == 0) return;
#if _CREATE_WIFI_CONNECTION
            SetStatus("RequestAccessAsync");

            var access = await WiFiAdapter.RequestAccessAsync();
            if (access == WiFiAccessStatus.Allowed)
            {
                var wifiDevices = await DeviceInformation.FindAllAsync(WiFiAdapter.GetDeviceSelector());
                if (wifiDevices?.Count > 0)
                {
                    wifi = await WiFiAdapter.FromIdAsync(wifiDevices[0].Id);

                    await WriteStatus(true);
                    await client.SaveQueueAsync();

                    SetStatus("ScanAsync");
                    IAsyncAction a = wifi?.ScanAsync();
                    await a;

                    await WriteStatus(false);

                    if (a.Status == AsyncStatus.Completed && wifi?.NetworkReport?.AvailableNetworks?.Count > 0)
                    {
                        foreach (var network in wifi.NetworkReport.AvailableNetworks)
                        {
                            bool found = false;
                            uint wlan = 0;
                            for (uint i = 0; i < Access.Networks; i++)
                            {
                                if (network.Ssid == Access.SSID(i))
                                {
                                    wlan = i;   
                                    found = true;
                                    break;
                                }
                            }
                            if (found)
                            {
                                var passwordCredential = new PasswordCredential();
                                passwordCredential.Password = Access.WIFI_Password(wlan);

                                SetStatus("ConnectAsync");
                                var result = await wifi.ConnectAsync(network, WiFiReconnectionKind.Automatic, passwordCredential);

                                if (result.ConnectionStatus.Equals(WiFiConnectionStatus.Success))
                                {
#endif
                                    try
                                    {
                                        AsyncActionCompletedHandler handler = (IAsyncAction asyncInfo, AsyncStatus asyncStatus) =>
                                        {
                                            var ignored = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
                                            {
                                                switch (asyncStatus)
                                                {
                                                    case AsyncStatus.Completed:
                                                        errorText.Text = client.Sent() + " Messages sent";
                                                        SetStatus("OK");
                                                        networkError = 0;
                                                        break;
                                                    case AsyncStatus.Canceled:
                                                    case AsyncStatus.Error:
                                                        errorText.Text = "Send: " + asyncInfo.ErrorCode;
                                                        SetStatus("Error");
                                                        break;
                                                }
                                                if (rebootPending) reboot = true;
#if _CREATE_WIFI_CONNECTION
                                                wifi.Disconnect();
                                                wifi = null;
#endif
                                            });
                                        };            
                                        SetStatus("Sending messages");
                                        client.SendMessagesAsync(handler);       
                                    }
                                    catch (Exception ex)
                                    {
                                        Error("Send: " + ex.ToString() + " " + ex.Message + " " + ex.HResult);
                                    }
#if _CREATE_WIFI_CONNECTION
                                }
                                else NoConnection(false, result.ConnectionStatus.ToString());
                                return;
                            }
                        }
                        NoConnection(rebootPending  || (++networkError == 5), Access.Ssid + " not found.");
                    }
                    else NoConnection(rebootPending || (++networkError == 5), "No wifi networks found " + a.Status.ToString());
                }   
                else NoConnection(true, "No wifi adapter found");                    
            }
            else NoConnection(true, "Wifi access denied" + access.ToString());
#endif
        }