예제 #1
0
 /// <summary>
 /// Raises the event to all subscribers
 /// </summary>
 /// <param name="newStatus">Wireless connection status</param>
 private void OnConnectionStatusChanged(WifiStatus newStatus)
 {
     if (ConnectionStatusChanged != null)
     {
         ConnectionStatusChanged(this, new WifiStatusEventArgs(newStatus));
     }
 }
예제 #2
0
 public WifiInfo(int networkId, string name, string macAddress, string capabilities, WifiStrength wifiStrength, WifiStatus wifiStatus, bool needPassword, bool is5G)
 {
     NetworkId    = networkId;
     Name         = name;
     MacAddress   = macAddress;
     Capabilities = capabilities;
     WifiStrength = wifiStrength;
     WifiStatus   = wifiStatus;
     NeedPassword = needPassword;
     Is5G         = is5G;
 }
예제 #3
0
    public bool Is5G; //是否是5G信号

    public WifiInfo(JWifiInfo jWifiInfo)
    {
        NetworkId    = jWifiInfo.networkID;
        Name         = jWifiInfo.SSID;
        MacAddress   = jWifiInfo.BSSID;
        Capabilities = jWifiInfo.capabilities;
        WifiStrength = (WifiStrength)jWifiInfo.level;
        WifiStatus   = (WifiStatus)jWifiInfo.wifiStatus;
        NeedPassword = jWifiInfo.needPassword;
        Is5G         = jWifiInfo.is5G;
    }
예제 #4
0
        private void PollCurrentState(WifiStatus wifiState)
        {
            string wifiSsid = "";

            try
            {
                // WiFi
                wifiState = wifi.ConnectionStatus;

                // if connected find ssid
                if (wifiState == WifiStatus.Connected)
                {
                    foreach (AccessPoint ap in wifi.GetAccessPoints())
                    {
                        if (ap.IsConnected)
                        {
                            Console.WriteLine("i'm connected to " + ap.Name);
                            wifiSsid = ap.Name;
                        }
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine("cant check wifi state");
            }


            // Network address



            // Evaluate
            Trigger candidate = null;

            foreach (Trigger trigger in triggers.Triggers)
            {
                bool wifiMatch = false, addressMatch = false;
                if (trigger.IsWiFiTrigger && trigger.WiFiSsid == wifiSsid && wifiState == WifiStatus.Connected)
                {
                    Console.WriteLine("found a trigger for this ssid, ");
                    wifiMatch = true;
                }
                //if(trigger.IsAddressTrigger && trigger.AddressMask ==?)
                //{

                //addressMatch = true;
                //}


                // check if it doesn't match, and continue search if so
                if ((trigger.IsWiFiTrigger && trigger.IsAddressTrigger && !(wifiMatch && addressMatch)) ||
                    (trigger.IsWiFiTrigger && !wifiMatch) ||
                    (trigger.IsAddressTrigger && !addressMatch) ||
                    !(trigger.IsWiFiTrigger || trigger.IsAddressTrigger))
                {
                    Console.WriteLine(trigger.Title + " is no good, continue");
                    continue;
                }

                candidate = trigger;
                break;
            }

            // Enable if candidate found
            if (candidate != null)
            {
                Console.WriteLine("it seems we have a winner: " + candidate.Title);

                var proxy = profiles.FindProxyByTitle(candidate.ProfileToActivate);
                if (proxy != null)
                {
                    bool activated = ProxyController.Instance.ActivateProxy(proxy);
                    OnProxyTriggered?.Invoke(proxy, "trigger: " + candidate.Title + " activated: " + activated);
                }
                else
                {
                    Console.WriteLine("proxy not found: " + candidate.ProfileToActivate);
                }
            }
            else
            {
                Console.WriteLine("no trigger found, maybe wanna disable?");
            }
        }
예제 #5
0
 internal WifiStatusEventArgs(WifiStatus status) : base()
 {
     this.NewStatus = status;
 }
예제 #6
0
        private void OnConnectionStatusChanged(WifiStatus newStatus)
        {
            ConnectionStatus = newStatus;

            ConnectionStatusChanged?.Invoke(this, new WifiStatusEventArgs(newStatus));
        }
예제 #7
0
파일: Wifi.cs 프로젝트: AlexKrainov/WiFi
		internal WifiStatusEventArgs(WifiStatus status) : base()
		{
			this.NewStatus = status;
		}
예제 #8
0
파일: Wifi.cs 프로젝트: AlexKrainov/WiFi
		private void OnConnectionStatusChanged(WifiStatus newStatus)
		{
			ConnectionStatus = newStatus;

			if (ConnectionStatusChanged != null)
				ConnectionStatusChanged(this, new WifiStatusEventArgs(newStatus));
		}
예제 #9
0
 public WifiStatusEventArgsMod(WifiStatus status) : base()
 {
     this.NewStatus = status;
 }
 private WirelessNetworkStatus ToStatus(WifiStatus status)
 {
     return(status == WifiStatus.Connected ? WirelessNetworkStatus.Connected : WirelessNetworkStatus.Disconnected);
 }
 public async Task <WifiStatusResponse> GetWifiStatusAsync() => await WifiStatus.CastTask <WifiStatusResponse>();
예제 #12
0
파일: Wifi.cs 프로젝트: GarageInc/all
		public WifiStatusEventArgs(WifiStatus status) : base()
		{
			this.NewStatus = status;
		}