예제 #1
0
        static void Main(string[] args)
        {
            if (args.Any(arg => arg.IndexOf("help") > -1 || arg.IndexOf("-h") > -1))
            {
                usage();
            }
            else
            {
                var info = WifiInterface.GetInfo();
                scanargs(args, info);

                Console.WriteLine("EsptouchInfo:");
                Console.WriteLine($"    {info}");
                Console.WriteLine();

                if (info == null || info.IP == null || string.IsNullOrEmpty(info.SSID) || string.IsNullOrEmpty(info.BSSID) || info.Devices == 0)
                {
                    Console.WriteLine("Exception: Argument Incomplete!");
                    Console.WriteLine();
                    usage();
                }
                else
                {
                    try
                    {
                        Console.WriteLine($"ESPTOUCH VERSION: {EsptouchTask.ESPTOUCH_VERSION} \n");
                        /// broadcast = false  组播模式下, 必须跟esp8266 在一个 wifi 路由下 esp8266 才能收到
                        EsptouchTask eh = new EsptouchTask(info.SSID, info.BSSID, info.Password, info.Broadcast);

                        eh.Find += Eh_Find;

                        Console.Write("Search ");

                        var lst = eh.ExecuteForResults(info.Devices, info.IP);

                        Console.WriteLine("\n");

                        if (lst.Count == 0)
                        {
                            Console.WriteLine("No device response");
                        }
                        else
                        {
                            Console.WriteLine($"{lst.Count} devices were configured successfully");
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"Exception: {e.Message}");
                    }
                }
            }
        }
        public List <ISmartConfigResult> executeForResults(int expectTaskResultCount)
        {
            if (_task == null)
            {
                return(null);
            }
            var results = new List <ISmartConfigResult>();

            foreach (var result in _task.ExecuteForResults(expectTaskResultCount))
            {
                results.Add(new SmartConfigResult_Droid(result as IEsptouchResult));
            }
            ;
            return(results);
        }
예제 #3
0
        public async Task <List <SmartConfigResult> > SetSmartConfigTask(string ssid, string bssid, string passphrase, bool isBroadcast, int mcucount)
        {
            mEsptouchTask = new EsptouchTask(ssid, bssid, passphrase, Application.Context);
            mEsptouchTask.SetPackageBroadcast(isBroadcast);
            var res = new List <SmartConfigResult>();
            await Task.Run(() => {
                var results = mEsptouchTask.ExecuteForResults(mcucount);
                for (int i = 0; i < results.Count; i++)
                {
                    var scr      = new SmartConfigResult();
                    scr.IsSus    = results[i].IsSuc;
                    scr.IsCancel = results[i].IsCancelled;
                    if (results[i].InetAddress != null)
                    {
                        scr.InetAddress = results[i].InetAddress.HostAddress;
                    }
                    res.Add(scr);
                }
                return(res);
            });

            return(res);
        }