Example #1
0
        public static void StartLifxNetwork()
        {
            Task.Run(() => Receive());

            _network.RegisterSender(SendCommand);

            var hostName    = Dns.GetHostName();
            var hostEntry   = Dns.GetHostEntry(hostName);
            var ipAddresses = hostEntry.AddressList.Where(a => a.AddressFamily == AddressFamily.InterNetwork).ToList();

            foreach (var ipAddress in ipAddresses)
            {
                var parts   = ipAddress.ToString().Split(new[] { '.' }).Take(3);
                var address = string.Join(".", parts) + ".255";

                Task.Run(async() =>
                {
                    while (true)
                    {
                        _network.ScanNetwork(address);
                        _network.ScanAccessPoints(address);
                        var seconds = _network.GetBulbs().Any() ? 600 : 3;
                        await Task.Delay(TimeSpan.FromSeconds(seconds));
                    }
                });
            }
        }