internal void SetActual(DateTime time, Ssid ssid) { Ssid = ssid; LastSeen = time; Events.Add(new SignalEvent(time, Ssid.SignalQuality)); LimitEvents(); IsActual = true; }
internal Bss(Ssid owner, WlanInternBssEntry bss) { _owner = owner; Reload(bss); }
internal SsidTracker(Ssid ssid) { Ssid = ssid; }
private void ReloadSsidList() { var ssidEntries = WlanProtocol.TryGetSsidList(Owner); Application.Current.Dispatcher.BeginInvoke(new Action(() => { var actualItems = Ssids.ToList(); var currentConnected = ssidEntries.FirstOrDefault(x => x.flags.HasFlag(WlanInternSsidEntryFlags.Connected)); var currentConnectedSsid = currentConnected.Dot11Ssid.GetSsid(); var currentConnectedSsidSet = false; ssidEntries = ssidEntries.Where(x => x.flags == 0).ToArray(); for (var i = 0; i < ssidEntries.Length; i++) { var ssidEntry = ssidEntries[i]; var name = ssidEntry.Dot11Ssid.GetSsid(); var item = _ssids.FirstOrDefault(x => x.Name == name); if (item == null) { item = new Ssid(Owner, ssidEntry, name == currentConnectedSsid); _ssids.Add(item); } else { item.Reload(ssidEntry, name == currentConnectedSsid); actualItems.Remove(item); } if (item.IsConnected) { ConnectedWlan = item; currentConnectedSsidSet = true; } var oldIndex = _ssids.IndexOf(item); _ssids.Move(oldIndex, i); } if (currentConnectedSsidSet == false) ConnectedWlan = null; foreach (var itemToRemove in actualItems) { _ssids.Remove(itemToRemove); } })); }