Пример #1
0
        private void Wlan_Notification(Wlan.WlanNotificationData notifyData)
        {
            switch (notifyData.notificationSource)
            {
            case Wlan.WlanNotificationSource.ACM:
                switch ((Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode)
                {
                case Wlan.WlanNotificationCodeAcm.ScanComplete:

                    this.Cursor = Cursors.WaitCursor;

                    try
                    {
                        this.Scan();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, WiFiThemeContainer.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    this.Cursor = Cursors.Default;

                    break;
                }
                break;
            }
        }
Пример #2
0
        public static void HandleParamsReport(Wlan.WlanNotificationData notifyData)
        {
            NativeWifi.WlanClient.WlanInterface wlanIface = null;// = GenericInfo.WlanInterface;
            foreach (NativeWifi.WlanClient.WlanInterface wli in Information.GenericInfo.ClientInstance.Interfaces)
            {
                if (wli.InterfaceGuid == notifyData.interfaceGuid)
                {
                    if (wli.NetworkInterface.GetPhysicalAddress().Equals(PhysicalAddress.Parse(Program.MAC.Replace(":", "-").ToUpper()))) //Event filtering
                    {
                        wlanIface = wli;
                    }
                }
            }

            if (wlanIface != null)
            {
                ConnectionHelper ch = Program.toMihf;
                ID myLinkID         = new ID(new OctetString(GenericInfo.myID));
                ID mihfID           = new ID(new OctetString(GenericInfo.mihfID));

                if (Subscriptions.List.Link_Parameters_Report) //Generic subscription
                {
                    ch.Send(MessageBuilders.Link_Parameters_Report_Indication_MsgBuilder(
                                myLinkID, mihfID,
                                wlanIface.CurrentConnection.wlanAssociationAttributes.Dot11Bssid,
                                wlanIface.CurrentConnection.wlanAssociationAttributes.dot11Ssid.SSID,
                                Link_Param_Abs_Type.GEN_Sig_Strenth,
                                Link_Param_Gen.SignalStrength_1).ByteValue);
                }
                Reports.CheckThresholds(Link_Param_Abs_Type.GEN_Sig_Strenth, (int)wlanIface.RSSI);
            }
        }
Пример #3
0
 internal void OnWlanNotification(Wlan.WlanNotificationData notifyData)
 {
     if (WlanNotification != null)
     {
         WlanNotification(notifyData);
     }
 }
Пример #4
0
        void WlanEventSecure(Wlan.WlanNotificationData data)
        {
            switch (data.notificationSource)
            {
            case Wlan.WlanNotificationSource.ACM:
                switch ((Wlan.WlanNotificationCodeAcm)data.NotificationCode)
                {
                case Wlan.WlanNotificationCodeAcm.ScanComplete:
                    if (!btn_scan.Enabled)
                    {
                        btn_scan.Enabled = true;
                    }
                    UpdateAPs();
                    break;
                }

                log.Text += "ACM: " + ((Wlan.WlanNotificationCodeAcm)data.NotificationCode).ToString() + eol;
                break;

            case Wlan.WlanNotificationSource.MSM:
                log.Text += "MSM: " + ((Wlan.WlanNotificationCodeMsm)data.NotificationCode).ToString() + eol;
                break;

            case Wlan.WlanNotificationSource.HNWK:
                log.Text += "HNWK: " + ((Wlan.HostedNetworkNotificationCode)data.NotificationCode).ToString() + eol;
                break;

            default:
                log.Text += data.notificationSource.ToString() + ": " + data.notificationCode.ToString() + eol;
                break;
            }
        }
Пример #5
0
 private void WlanEvent(Wlan.WlanNotificationData data)
 {
     try {
         Invoke(wlan_event_cb, new object[] { data });
     } catch {
     }
 }
Пример #6
0
        public static void HandleLinkDown(Wlan.WlanNotificationData notifyData)
        {
            NativeWifi.WlanClient.WlanInterface wlanIface = null;// = GenericInfo.WlanInterface;
            foreach (NativeWifi.WlanClient.WlanInterface wli in Information.GenericInfo.ClientInstance.Interfaces)
            {
                if (wli.InterfaceGuid == notifyData.interfaceGuid)
                {
                    if (wli.NetworkInterface.GetPhysicalAddress().Equals(PhysicalAddress.Parse(Program.MAC.Replace(":", "-").ToUpper()))) //Event filtering
                    {
                        wlanIface = wli;
                    }
                }
            }

            if (wlanIface != null)
            {
                ConnectionHelper ch = Program.toMihf;
                ID myLinkID         = new ID(new OctetString(GenericInfo.myID));
                ID mihfID           = new ID(new OctetString(GenericInfo.mihfID));

                if (Subscriptions.List.Link_Down)
                {
                    ch.Send(MessageBuilders.Link_Down_Indication_802_11_MsgBuilder(myLinkID, mihfID,
                                                                                   new String(Encoding.ASCII.GetChars(wlanIface.LatestConnection.wlanAssociationAttributes.dot11Ssid.SSID)),
                                                                                   wlanIface.LatestConnection.wlanAssociationAttributes.Dot11Bssid,
                                                                                   Link_Dn_Reason.ExplicitDisconnect).ByteValue);//TODO get reasons
                }
            }
        }
Пример #7
0
 private void wlanInterfaceTmp_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
 {
     if (connNotifyData.profileName != "")
     {
         WlanClient wlanClientTmp = new WlanClient();
         WlanClient.WlanInterface wlanInterfaceTmp = wlanClientTmp.Interfaces[0];
         Dispatcher.Invoke(() =>
         {
             List <Object> dataList = GetAvailableNetworkList1();
             if (dataList == null)
             {
                 return;
             }
             dataGridWlan1.ItemsSource = dataList;
             if (wlanInterfaceTmp.IsWlanConnection())
             {
                 Wlan.WlanConnectionAttributes wlanAttr = wlanInterfaceTmp.CurrentConnection;
                 if (wlanAttr.isState == Wlan.WlanInterfaceState.Connected)
                 {
                     string macAddress = GetMacAddress(wlanAttr.wlanAssociationAttributes.dot11Bssid);
                     tbState.Text      = String.Format("当前设备已连接到Wlan: {0}, Mac地址: {1} IPv4地址: {2}", wlanAttr.profileName, macAddress, PathUtil.GetIPv4());
                 }
             }
         });
     }
 }
 void SelectedInterface_WlanNotification(Wlan.WlanNotificationData notifyData)
 {
     if (notifyData.notificationSource == Wlan.WlanNotificationSource.MSM)
     {
         SelectedInterface.RefreshConnected();
     }
 }
Пример #9
0
        private void WlanService_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
        {
            var dot11Ssid = connNotifyData.dot11Ssid;
            var wlanNMAE  = WlanService.GetWlanNameBySsid(dot11Ssid);

            Debug.WriteLine(wlanNMAE);
        }
Пример #10
0
        //当连接的连接状态进行通知 面是简单的通知事件的实现,根据通知的内容在界面上显示提示信息:
        private void WlanInterface_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
        {
            try
            {
                if (notifyData.notificationSource == Wlan.WlanNotificationSource.ACM)
                {
                    int notificationCode = (int)notifyData.NotificationCode;
                    switch (notificationCode)
                    {
                    case (int)Wlan.WlanNotificationCodeAcm.ConnectionStart:

                        Console.WriteLine("开始连接无线网络.......");
                        break;

                    case (int)Wlan.WlanNotificationCodeAcm.ConnectionComplete:

                        break;

                    case (int)Wlan.WlanNotificationCodeAcm.Disconnecting:

                        Console.WriteLine("正在断开无线网络连接.......");
                        break;

                    case (int)Wlan.WlanNotificationCodeAcm.Disconnected:
                        Console.WriteLine("已经断开无线网络连接.......");
                        break;
                    }
                }
                //}));
            }
            catch (Exception e)
            {
                //Loger.WriteLog(e.Message);
            }
        }
 void SelectedInterface_WlanNotification(Wlan.WlanNotificationData notifyData)
 {
     if (owner != null && owner.IsVisible && notifyData.notificationSource == Wlan.WlanNotificationSource.MSM)
     {
         SelectedInterface?.UpdateInformation();
         UpdateNetworkSignalQuality();
     }
 }
Пример #12
0
 private void iface_WlanNotification(Wlan.WlanNotificationData notifydata)
 {
     if (notifydata.notificationSource == Wlan.WlanNotificationSource.ACM &&
         (Wlan.WlanNotificationCodeAcm)notifydata.notificationCode == Wlan.WlanNotificationCodeAcm.ScanComplete)
     {
         OnNetworksScanComplete();
     }
 }
 void SelectedInterface_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
 {
     if (owner != null && owner.IsVisible)
     {
         SelectedInterface?.UpdateInformation();
         UpdateNetworkSignalQuality();
     }
 }
        private bool IsSentByCorrectNetworkInterface(Wlan.WlanNotificationData notificationData)
        {
            WlanClient.WlanInterface wifiInterface = GetInterfaceByInterfaceId(notificationData.interfaceGuid);
            if (wifiInterface == currentWifiInterface)
            {
                return(true);
            }

            return(false);
        }
Пример #15
0
        //private void WlanInterface_WlanReasonNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanReasonCode reasonCode)
        //{

        //    Console.WriteLine(notifyData.NotificationCode);
        //    Console.WriteLine(reasonCode.ToString());

        //}

        private void WlanIface_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
        {
            //Console.WriteLine(notifyData.NotificationCode);
            //Console.WriteLine(notifyData.notificationSource);

            //if (notifyData.dataSize >= 0)
            //{
            //    Wlan.WlanReasonCode reasonCode = (Wlan.WlanReasonCode)Marshal.ReadInt32(notifyData.dataPtr);
            //    if (wlanIface != null)
            //        wlanIface.OnWlanReason(notifyData, reasonCode);
            //}
            try
            {
                if (notifyData.dataSize >= 0)
                {
                    //Wlan.WlanReasonCode reasonCode = (Wlan.WlanReasonCode)Marshal.ReadInt32(notifyData.dataPtr);
                    //if (wlanInterface != null)
                    //    wlanInterface.OnWlanReason(notifyData, reasonCode);

                    if (notifyData.notificationSource == Wlan.WlanNotificationSource.ACM)
                    {
                        int notificationCode = (int)notifyData.NotificationCode;
                        switch (notificationCode)
                        {
                        case (int)Wlan.WlanNotificationCodeAcm.ConnectionStart:

                            Console.WriteLine("开始连接无线网络.......");
                            break;

                        case (int)Wlan.WlanNotificationCodeAcm.ConnectionComplete:

                            break;

                        case (int)Wlan.WlanNotificationCodeAcm.Disconnecting:

                            Console.WriteLine("正在断开无线网络连接.......");
                            break;

                        case (int)Wlan.WlanNotificationCodeAcm.Disconnected:
                            Console.WriteLine("已经断开无线网络连接.......");
                            break;
                        }
                    }
                }
                //}));
            }
            catch (Exception e)
            {
                throw new BaseException(string.Format("WlanConnectionNotification事件出错" + e.ToString()));
                //Loger.WriteLog(e.Message);
            }

            //throw new NotImplementedException();
        }
        private void m_Interface_WlanConnectionNotification(Wlan.WlanNotificationData i_NotifyData, Wlan.WlanConnectionNotificationData i_ConnNotifyData)
        {
            Debug.log($"Connection status changed to {i_NotifyData.NotificationCode.ToString()}");

            //string[] goodNotificationCodes = { "ConnectionStart", "Associating", "Associated", "Authenticating", "Connected", "ConnectionComplete", "RoamingStart" };
            m_Interface.WlanConnectionNotification -= m_Interface_WlanConnectionNotification;
            if (!checkInternetConnectivity() /*!goodNotificationCodes.Any((i_NotifyData.NotificationCode.ToString()).Contains)*/) // i.e disconnected
            {
                connect(i_ConnNotifyData.profileName);
            }

            m_Interface.WlanConnectionNotification += m_Interface_WlanConnectionNotification;
        }
Пример #17
0
 void WlanIface_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
 {
     this.notifyData     = notifyData;
     this.connNotifyData = connNotifyData;
     if (notifyData.notificationSource == NativeWifi.Wlan.WlanNotificationSource.ACM)
     {
         //连接失败
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.ConnectionAttemptFail)
         {
             WlanIface.DeleteProfile(connNotifyData.profileName);
         }
     }
 }
 internal void OnWlanAdhocNetwork(Wlan.WlanNotificationData notifyData, Wlan.WlanAdhocNetworkState adhocNetworkState)
 {
     if (WlanAdhocNetworkNotification != null)
     {
         WlanAdhocNetworkNotification(notifyData, adhocNetworkState);
     }
     if (queueEvents)
     {
         WlanAdhocNetworkNotificationData queuedEvent = new WlanAdhocNetworkNotificationData();
         queuedEvent.notifyData        = notifyData;
         queuedEvent.adhocNetworkState = adhocNetworkState;
         EnqueueEvent(queuedEvent);
     }
 }
Пример #19
0
 void WlanIface_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
 {
     if (notifyData.notificationSource == NativeWifi.Wlan.WlanNotificationSource.MSM)
     {
         //这里是完成连接
         if ((NativeWifi.Wlan.WlanNotificationCodeMsm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeMsm.Connected)
         {
             Invoke(new Action(() =>
             {
                 labelControl2.Text      = connNotifyData.profileName;
                 labelControl2.ForeColor = Color.Red;
                 ShowToast_InSetup("提示", "网络连接成功", 2);
             }));
         }
     }
     else if (notifyData.notificationSource == NativeWifi.Wlan.WlanNotificationSource.ACM)
     {
         //连接失败
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.ConnectionAttemptFail)
         {
             Invoke(new Action(() =>
             {
                 labelControl2.Text = "未连接";
             }));
             new Toast().ShowInfo(2500, "WIFI连接失败,请检查密码是否正确");
             WlanIface.DeleteProfile(connNotifyData.profileName);
         }
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.Disconnected)
         {
             Invoke(new Action(() =>
             {
                 labelControl2.Text = "未连接";
             }));
         }
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.Disconnecting)
         {
             Invoke(new Action(() =>
             {
                 labelControl2.Text = "未连接";
             }));
         }
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.ConnectionStart)
         {
             Invoke(new Action(() =>
             {
                 labelControl2.Text = "连接中…";
             }));
         }
     }
 }
Пример #20
0
 internal void OnWlanReason(Wlan.WlanNotificationData notifyData, Wlan.WlanReasonCode reasonCode)
 {
     if (WlanReasonNotification != null)
     {
         WlanReasonNotification(notifyData, reasonCode);
     }
     if (queueEvents)
     {
         WlanReasonNotificationData queuedEvent = new WlanReasonNotificationData();
         queuedEvent.notifyData = notifyData;
         queuedEvent.reasonCode = reasonCode;
         EnqueueEvent(queuedEvent);
     }
 }
Пример #21
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);
                }
            }
Пример #22
0
 void WlanIface_WlanConnectionNotification(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData)
 {
     if (notifyData.notificationSource == NativeWifi.Wlan.WlanNotificationSource.MSM)
     {
         //这里是完成连接
         if ((NativeWifi.Wlan.WlanNotificationCodeMsm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeMsm.Connected)
         {
             Invoke(new Action(() =>
             {
                 label2.Text = connNotifyData.profileName;
             }));
         }
     }
     else if (notifyData.notificationSource == NativeWifi.Wlan.WlanNotificationSource.ACM)
     {
         //连接失败
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.ConnectionAttemptFail)
         {
             Invoke(new Action(() =>
             {
                 label2.Text = "未连接";
             }));
             MessageBox.Show("连接失败,请检查密码是否正确");
             WlanIface.DeleteProfile(connNotifyData.profileName);
         }
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.Disconnected)
         {
             Invoke(new Action(() =>
             {
                 label2.Text = "未连接";
             }));
         }
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.Disconnecting)
         {
             Invoke(new Action(() =>
             {
                 label2.Text = "未连接";
             }));
         }
         if ((NativeWifi.Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode == NativeWifi.Wlan.WlanNotificationCodeAcm.ConnectionStart)
         {
             Invoke(new Action(() =>
             {
                 label2.Text = "连接中…";
             }));
         }
     }
 }
Пример #23
0
        private void HNEventSecure(Wlan.WlanNotificationData notif_data)
        {
            log.Text += "HNWK: " + ((Wlan.HostedNetworkNotificationCode)notif_data.notificationCode).ToString() + eol;

            switch ((Wlan.HostedNetworkNotificationCode)notif_data.notificationCode)
            {
            case Wlan.HostedNetworkNotificationCode.RadioStateChange:
            case Wlan.HostedNetworkNotificationCode.StateChange:
                LoadApValues();
                break;

            case Wlan.HostedNetworkNotificationCode.PeerStateChange:
                LoadApPeers();
                break;
            }
        }
Пример #24
0
 private void WlanApi_WlanNotification(Wlan.WlanNotificationData notifyData)
 {
     lock (this)
     {
         if (notifyData.notificationSource == Wlan.WlanNotificationSource.Acm)
         {
             switch (((Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode))
             {
             case Wlan.WlanNotificationCodeAcm.ScanComplete:
             case Wlan.WlanNotificationCodeAcm.ScanFail:
                 OnScanComplete();
                 break;
             }
         }
     }
 }
Пример #25
0
        private void OnNotification(Wlan.WlanNotificationData data)
        {
            if (data.notificationSource == Wlan.WlanNotificationSource.ACM)
            {
                switch (data.notificationCode)
                {
                case (int)Wlan.WlanNotificationCodeAcm.ScanComplete:
                    _scanTaskCompletionSource?.TrySetResult(true);
                    break;

                case (int)Wlan.WlanNotificationCodeAcm.ScanFail:
                    _scanTaskCompletionSource?.TrySetResult(false);
                    break;
                }
            }
        }
Пример #26
0
 public static void WlanNotification(Wlan.WlanNotificationData notifyData)
 {
     switch ((Wlan.WlanNotificationCodeAcm)notifyData.NotificationCode)
     {
     case Wlan.WlanNotificationCodeAcm.ScanComplete:
         foreach (Wlan.WlanAvailableNetwork net in wlan_intr.GetAvailableNetworkList(Wlan.WlanGetAvailableNetworkFlags.IncludeAllAdhocProfiles))
         {
             if (GetSsidString(net.dot11Ssid) == settings["card_ssid"])
             {
                 wlan_client.Interfaces[0].Connect(Wlan.WlanConnectionMode.Auto, Wlan.Dot11BssType.Any, net.dot11Ssid, Wlan.WlanConnectionFlags.HiddenNetwork);
                 break;
             }
         }
         break;
     }
 }
Пример #27
0
        private void UsableInterface_WlanNotification(Wlan.WlanNotificationData notifyData)
        {
            if (notifyData.notificationSource == Wlan.WlanNotificationSource.ACM)
            {
                if (notifyData.notificationCode == 7)
                {
                    scanComplete = true;
                    return;
                }
            }

            lock (lockVictim)
            {
                tourStreamWriter.WriteLine("NOTIFY;{0};{1};{2};{3}",
                                           notifyData.notificationSource, notifyData.notificationCode, notifyData.interfaceGuid, notifyData.dataSize);
            }
        }
Пример #28
0
        private void OnWlanNotification(ref Wlan.WlanNotificationData notifyData, IntPtr context)
        {
            switch (notifyData.notificationSource)
            {
            case Wlan.WlanNotificationSource.ACM:
                switch ((Wlan.WlanNotificationCodeAcm)notifyData.notificationCode)
                {
                case Wlan.WlanNotificationCodeAcm.ConnectionComplete:
                    lock (sync)
                    {
                        if (isBinding)
                        {
                            Status("Connected successfully to Drone");
                            this.Invoke(telnetDelegate);
                        }
                        if (isRegistering)
                        {
                            Status("Connected successfully to Router");
                            Thread t1 = new Thread(RegisterDrone);
                            t1.Start();
                            //this.Invoke(registerDelegate);
                        }
                    }

                    break;

                case Wlan.WlanNotificationCodeAcm.ConnectionStart:
                    break;

                case Wlan.WlanNotificationCodeAcm.ConnectionAttemptFail:
                    Status("Connection failed");
                    break;

                case Wlan.WlanNotificationCodeAcm.Disconnected:
                    //Status("Disconnected");
                    break;

                case Wlan.WlanNotificationCodeAcm.ScanComplete:
                    networkList = networkInterface.GetAvailableNetworkList(0);
                    this.Invoke(outputScanDelegate);
                    break;
                }
                break;
            }
        }
Пример #29
0
 /// <summary>
 /// WLAN notification handler
 /// </summary>
 /// <param name="notifyData"></param>
 void wlanIface_WlanNotification(Wlan.WlanNotificationData notifyData)
 {
     if (notifyData.notificationSource == Wlan.WlanNotificationSource.MSM)
     {
         Wlan.WlanNotificationCodeMsm notificationCode = (Wlan.WlanNotificationCodeMsm)notifyData.notificationCode;
     }
     else if (notifyData.notificationSource == Wlan.WlanNotificationSource.ACM)
     {
         Wlan.WlanNotificationCodeAcm notificationCode = (Wlan.WlanNotificationCodeAcm)notifyData.notificationCode;
         switch (notificationCode)
         {
         case Wlan.WlanNotificationCodeAcm.ScanComplete:
             // signal scan completion by the interface
             _wlanEventScanComplete[notifyData.interfaceGuid].Set();
             break;
         }
     }
 }
Пример #30
0
        public void Notification2(Wlan.WlanNotificationData notifyData)
        {
            if (notifyData.NotificationCode.ToString().Equals("ScanComplete"))
            {
                LOCK = false;
                Wlan.WlanBssEntry[] Logs = client.Interfaces[0].GetNetworkBssList();

                Position Target = Positioning(Logs);
                invoke   temp   = (Position position2) => {
                    SetPoint(position2);
                };
                this.Invoke(temp, Target);

                Debug.WriteLine(Target.X + " " + Target.Y);
                Debug.WriteLine(client.Interfaces[0].GetNetworkBssList().ToJsonArray());
                client.Interfaces[0].WlanNotification -= Notification2;
            }
        }