Пример #1
0
        private void InitBridge()
        {
            while (!lightManager.CanReachBridge())
            {
                //sleep, look for the new IP, repeat
                System.Threading.Thread.Sleep(10 * 1000);
                bridgeIp = GetBridgeIp(bridgeId);

                if (bridgeIp == null)
                {
                    logger.Log("Got null IP for hue bridge. Quitting");
                    return;
                }

                lightManager.SetBridgeIp(bridgeIp);
            }

            lightManager.Init();

            var allLights = lightManager.GetAllLights();

            foreach (var lstate in allLights)
            {
                //.................instantiate the port
                var port = InitPort(GetPortInfoFromPlatform("hb:" + lstate.Name));

                //remember the port to lightstate mapping
                portToLightState.Add(port, lstate);

                OperationDelegate handler = delegate(string roleName, string opName, IList <VParamType> list)
                {
                    return(OnOperationInvoke(port, roleName, opName, list));
                };

                //..... bind the port to roles and delegates
                List <VRole> listRole = new List <VRole>()
                {
                    RoleSwitchMultiLevel.Instance, RoleLightColor.Instance
                };
                BindRoles(port, listRole, handler);

                RegisterPortWithPlatform(port);
            }
        }