public void WhenCallingWifiAndWirelessNetworkInterfaceExistsShouldReturnTrue() { var wirelessInterface = new WirelessNetworkInterface(); NetworkInterface.NetworkInterfaces = new INetworkInterface[] { wirelessInterface }; Assert.True(this.ConnectionInfo.Wifi); }
public void WhenCallingWifiAndMoreThanOneNetworkInterfaceExistsAndFirstOneIsUSBSkipItAndUseFirstWireless() { var networkInterface = new NetworkInterface(); networkInterface.Name = "USB Cable"; var wirelessInterface = new WirelessNetworkInterface(); NetworkInterface.NetworkInterfaces = new INetworkInterface[] { networkInterface, wirelessInterface }; Assert.True(this.ConnectionInfo.Wifi); }
/// <summary> /// 读取wifi信息 /// </summary> /// <returns></returns> public WirelessNetworkInterface GetWifiStatus() { try { non_wzc = null; foreach (INetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) { if (ni is WirelessNetworkInterface) { non_wzc = ni as WirelessNetworkInterface; } } } catch { } return(non_wzc); }
/// <summary> /// 检查wifi状态 /// </summary> /// <param name="msg">返回检查结果</param> /// <returns></returns> public bool isConnectWifi(string _IpAddress, out string msg) { bool result = false; msg = ""; WirelessNetworkInterface wni = GetWifiStatus(); try { if (wni == null) { msg = "未开启Wifi"; } else if (wni.CurrentIpAddress.ToString() != _IpAddress) { msg = "正在获取IP地址 " + wni.CurrentIpAddress.ToString(); } else if (wni.InterfaceOperationalStatus == InterfaceOperationalStatus.Operational) { switch (wni.SignalStrength.Strength) { case StrengthType.NoSignal: msg = "Wifi没信号"; result = false; break; case StrengthType.VeryLow: msg = "Wifi信号极低(" + wni.SignalStrength.Decibels + ")"; result = false; break; case StrengthType.Low: msg = "Wifi信号低(" + wni.SignalStrength.Decibels + ")"; result = true; break; case StrengthType.Good: msg = "Wifi信号好(" + wni.SignalStrength.Decibels + ")"; result = true; break; case StrengthType.VeryGood: msg = "Wifi信号很好(" + wni.SignalStrength.Decibels + ")"; result = true; break; case StrengthType.Excellent: msg = "Wifi信号极好(" + wni.SignalStrength.Decibels + ")"; result = true; break; } if (wifiMAC != wni.AssociatedAccessPointMAC.ToString()) { wifiMAC = wni.AssociatedAccessPointMAC.ToString(); msg += " 切换WIFI"; } msg += " MAC->" + wifiMAC; } else { msg = "Wifi未开启"; } } catch { CloseNI(); //NetWorkScript.Instance.release(); //MessageBox.Show("Wifi模块异常!"); msg = "Wifi模块异常"; } return(result); }
/// <summary> /// 重置Wifi模块 /// </summary> public void CloseNI() { non_wzc = null; }
private void Test() { WirelessNetworkInterface wni = WifiCtrl.GetInstance().GetWifiStatus(); int count = 0; int rtt = 0; int rttTotal = 0; string tmp = ""; string errMsg = ""; tb_testMsg.BackColor = Color.Gray; tb_testMsg.Text = "\r\n [1]开始检测Wifi..."; if (wni.InterfaceOperationalStatus == InterfaceOperationalStatus.NonOperational) { tb_testMsg.Text = "\r\n\r\n 检测结果\r\n 连接不到Wifi!\r\n\r\n"; tb_testMsg.BackColor = Color.Red; return; } else { tb_testMsg.Text += "连接正常\r\n SSID:" + wni.AssociatedAccessPoint + " 信号:"; switch (wni.SignalStrength.Strength) { case StrengthType.NoSignal: tb_testMsg.Text += "没信号"; errMsg = "Wifi信号弱;"; break; case StrengthType.VeryLow: tb_testMsg.Text += "极低"; errMsg = "Wifi信号弱;"; break; case StrengthType.Low: tb_testMsg.Text += "低"; break; case StrengthType.Good: tb_testMsg.Text += "好"; break; case StrengthType.VeryGood: tb_testMsg.Text += "很好"; break; case StrengthType.Excellent: tb_testMsg.Text += "极好"; break; } } tmp = "\r\n\r\n [2]测试连接服务器..."; tb_testMsg.Text += tmp; for (int i = 0; i < 10; i++) { if (WifiCtrl.GetInstance().Ping(_serverIP, out rtt)) { count++; rttTotal += rtt; } else { rttTotal += 500; } } tb_testMsg.Text += "连接正常\r\n 状态:"; if (count > 7) { tb_testMsg.Text += "很好"; } else if (count > 5 && count < 8) { tb_testMsg.Text += "一般"; } else if (count > 2 && count < 6) { tb_testMsg.Text += "较慢"; errMsg += "连接不稳定;"; } else if (count < 3) { tb_testMsg.Text = "\r\n\r\n 检测结果\r\n\r\n\r\n 网络异常!\r\n\r\n"; tb_testMsg.ForeColor = Color.Red; return; } tb_testMsg.Text += "\r\n 丢包[" + count + "/10] 延迟:" + rttTotal / 10 + "ms\r\n"; if (count > 2) { tb_testMsg.Text += "\r\n [3]测试通讯功能..."; //if (m_socketClient != null) //{ //this.Disconnect(); // } //this.Connect(); _pFlag = 97; _codeStr = tb_testMsg.Text; //SendOneDatagram(); NewTransmit(); if (_outStr == "test") { tb_testMsg.Text += "通讯正常\r\n"; } else { tb_testMsg.Text = " \r\n\r\n 检测结果\r\n\r\n\r\n 与服务器通讯异常!\r\n\r\n"; tb_testMsg.BackColor = Color.Red; return; } //if (m_socketClient != null) //{ //this.Disconnect(); // } } int now_power = GetPower(); if (now_power > 0 && now_power < 25) { errMsg += "电量低;"; } if (errMsg == "") { tb_testMsg.Text += "\r\n [4]测试结果:正常\r\n\r\n"; tb_testMsg.BackColor = Color.Green; } else { tb_testMsg.BackColor = Color.Yellow; tb_testMsg.Text += "\r\n [4]不理想,有以下问题:\r\n " + errMsg + "\r\n\r\n"; } tb_testMsg.Text += " 按1重新检测\r\n 按ESC返回主界面"; }