void InitWiFi() { wlan = new WlanClient(); //foreach (WlanClient.WlanInterface wlanIface in wlan.Interfaces) { try { drone_network = wlan.Interfaces[0].CurrentConnection.wlanAssociationAttributes; Wlan.Dot11Ssid _ssid = drone_network.dot11Ssid; string SSID = GetStringForSSID(_ssid); this.Details.DroneWiFiName = SSID; } catch { } } }
public void checkCurrentWirelessCon() { String device1; String device2; foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { //Wlan.WlanAssociationAttributes conAttributes; //Wlan.Dot11Ssid ssid = conAttributes.dot11Ssid; String nameOfSSID = null; try { Wlan.WlanAssociationAttributes conAttributes = wlanIface.CurrentConnection.wlanAssociationAttributes; Wlan.Dot11Ssid ssid = conAttributes.dot11Ssid; nameOfSSID = GetStringForSSID(ssid); device1 = (String)list2.Items[0]; device2 = (String)list2.Items[1]; } catch (Exception e) { tgbtn2.Content = "Unsecured"; // If for some reason the device name is not populated then initialize it to NULL . device1 = null; device2 = null; MessageBox.Show("Your computer is not connected to wireless networks! Retry"); log.dispatchLogMessage("MainServices: " + e.ToString()); } if (device1 != null && device2 != null) { if (nameOfSSID != device1) { if (nameOfSSID != device2) { var msg = "MainServices (checkWirelessConnection): Wireless connection is BROKEN ! Locking the system . "; log.dispatchLogMessage(msg); startWireless = 2; LockWorkStation(); unregisterWlanListener(); } } } } }
public IEnumerable <NetworkData> GetNetworkData() { List <NetworkData> list = new List <NetworkData>(); //If the interface is null, return nothing if (_interface == null) { return(list); } IEnumerable <Wlan.WlanBssEntryN> networkBssList = null; IEnumerable <Wlan.WlanAvailableNetwork> availableNetworkList = null; try { networkBssList = _interface.GetNetworkBssList(); availableNetworkList = _interface.GetAvailableNetworkList(Wlan.WlanGetAvailableNetworkFlags.IncludeAllManualHiddenProfiles); } catch (NullReferenceException) { //Hopefully the call will succeed next time. } if ((networkBssList != null) && (availableNetworkList != null)) { //Get connected to AP Wlan.WlanAssociationAttributes connectedAP = new Wlan.WlanAssociationAttributes(); try { if (_interface.CurrentConnection.isState == Wlan.WlanInterfaceState.Connected) { connectedAP = _interface.CurrentConnection.wlanAssociationAttributes; } } catch (NullReferenceException) { /*Hopefully it will work next time*/ } Wlan.WlanAvailableNetwork foundNetwork = new Wlan.WlanAvailableNetwork(); foreach (Wlan.WlanBssEntryN entry in networkBssList) { string ssid = Encoding.ASCII.GetString(entry.BaseEntry.dot11Ssid.SSID, 0, (int)entry.BaseEntry.dot11Ssid.SSIDLength); if (FindNetwork(ssid, availableNetworkList, ref foundNetwork)) { NetworkData item = new NetworkData(entry.BaseEntry.dot11Bssid); item.IsTypeN = (entry.BaseEntry.dot11BssPhyType == Wlan.Dot11PhyType.Ht); if (item.IsTypeN && entry.IEs != null && entry.IEs.Length > 0) { item.NSettings = IeParser.Parse(entry.IEs); if (item.NSettings == null) { return(null); } //Add the extended 802.11N rates item.Rates.AddRange(item.NSettings.Rates.Where(f => !item.Rates.Contains(f))); item.Rates.Sort(); } Utilities.ConvertToMbs(entry.BaseEntry.wlanRateSet.Rates, item.Rates); item.IsTypeN = entry.BaseEntry.dot11BssPhyType == Wlan.Dot11PhyType.Ht; int num = Utilities.ComputeRssi(entry.BaseEntry.linkQuality); item.Rssi = (entry.BaseEntry.rssi > num) ? entry.BaseEntry.rssi : num; // tyler's fix // Sometimes there is an issue where the RSSI will become overly positive // (e.g. going from -96 to +160), so subtracting 256 will fix it. if (item.Rssi > 0) { item.Rssi -= 256; } item.Ssid = ssid; item.Channel = Utilities.ConvertToChannel(entry.BaseEntry.chCenterFrequency); item.NetworkType = Utilities.ConvertToString(entry.BaseEntry.dot11BssType); item.Security = Utilities.CreateSecurityString(foundNetwork.dot11DefaultAuthAlgorithm, foundNetwork.dot11DefaultCipherAlgorithm); item.SignalQuality = foundNetwork.wlanSignalQuality; //Check to see if this AP is the connected one item.Connected = item.MyMacAddress.CompareToPhysicalAddress(connectedAP.Dot11Bssid); list.Add(item); } } } return(list); }
public void wlanConnectionChangeHandler(Wlan.WlanNotificationData notifyData, Wlan.WlanConnectionNotificationData connNotifyData) { string msg = String.Empty; String device1 = String.Empty; String device2 = String.Empty; switch (notifyData.notificationSource) { case Wlan.WlanNotificationSource.ACM: switch ((Wlan.WlanNotificationCodeAcm)notifyData.notificationCode) { case Wlan.WlanNotificationCodeAcm.ConnectionStart: msg = "ConnectionStart"; break; case Wlan.WlanNotificationCodeAcm.ConnectionComplete: msg = "ConnectionComplete"; //WlanClient client = new WlanClient(); foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) { Wlan.WlanAssociationAttributes conAttributes = wlanIface.CurrentConnection.wlanAssociationAttributes; Wlan.Dot11Ssid ssid = conAttributes.dot11Ssid; try { device1 = (String)list2.Items[0]; device2 = (String)list2.Items[1]; } catch (Exception e) { // If for some reason the device name is not populated then initialize it to NULL . device1 = null; device2 = null; } if (device1 != null && device2 != null) { if (GetStringForSSID(ssid) != device1) { if (GetStringForSSID(ssid) != device2) { msg = "MainServices (connectionChange Handler): Wireless connection is BROKEN ! Locking the system . "; log.dispatchLogMessage(msg); startWireless = 2; LockWorkStation(); unregisterWlanListener(); } } } break; } break; case Wlan.WlanNotificationCodeAcm.Disconnecting: msg = "Disconnecting"; break; case Wlan.WlanNotificationCodeAcm.Disconnected: msg = "Disconnected"; break; default: msg = "unknown notificationCode =" + notifyData.notificationCode; break; } //MessageBox.Show(msg + " for profile:" + connNotifyData.profileName); break; default: //MessageBox.Show("irrelevant notification. Ignore"); break; } }
void tmrStatusUpdate_Tick(object sender, EventArgs e) { List <string> alert_msgs = new List <string>(); #region 1 if (_droneClient.IsConnected) { if (ConnectedMessageSent == false) { Debug("Connected"); ConnectedMessageSent = true; } } #endregion #region // wifi signal strength if (wlan != null) { double signal_strength = 0.0d; try { drone_network = wlan.Interfaces[0].CurrentConnection.wlanAssociationAttributes; Wlan.Dot11Ssid _ssid = drone_network.dot11Ssid; string SSID = GetStringForSSID(_ssid); signal_strength = drone_network.wlanSignalQuality; this.Details.DroneWiFiName = SSID; this.Details.WiFiSignalStrength = signal_strength; string alert = "WARNING! WiFi signal is below 25%. Navigate back now!"; if (this.Details.WiFiSignalStrength < 25) { if (!alert_msgs.Contains(alert)) { alert_msgs.Add(alert); } } else { alert_msgs.Remove(alert); } } catch { } } #endregion #region 2 if (_navigationData != null) { // battery this.Details.BatteryLevel = (int)this._navigationData.Battery.Percentage; string alert = "WARNING! Battery is below 25%"; if (this._navigationData.Battery.Percentage < 25) { if (!alert_msgs.Contains(alert)) { alert_msgs.Add(alert); } } else { alert_msgs.Remove(alert); } //this.attitudeControl.SetAttitudeIndicatorParameters(_navigationData.Pitch, -_navigationData.Roll); this.Details.Pitch = _navigationData.Pitch; this.Details.Roll = -_navigationData.Roll; if (_navigationData.Yaw > 0) { //this.headingControl.SetHeadingIndicatorParameters(Convert.ToInt32(_navigationData.Yaw)); //rotate_y.Angle = -_navigationData.Yaw; this.Details.Yaw = _navigationData.Yaw; //this.Details.RotateY = -_navigationData.Yaw; } else { float y = (360 + _navigationData.Yaw); //this.headingControl.SetHeadingIndicatorParameters(y); this.Details.Yaw = y; //this.Details.RotateY = -y; } this.Details.RotateX = -_navigationData.Pitch; this.Details.RotateZ = _navigationData.Roll; this.Details.Altitude = _navigationData.Altitude; UpdateAttitudeIndicator((int)_navigationData.Pitch, (int)_navigationData.Roll); //this.altimeterControl.SetAlimeterParameters((int)_navigationData.Altitude); Console.WriteLine("Pitch: {0}, Roll: {1}, Yaw: {2}", this.Details.Pitch, this.Details.Roll, this.Details.Yaw); } #endregion if (alert_msgs.Count > 0) { string alerts = string.Empty; alerts = string.Join("\r\n", alert_msgs.ToArray()); ShowAlertStatus(alerts, true); } else { ShowAlertStatus(string.Empty, false); } }