Example #1
0
        public override void Begin(ILightingController controller, Random random)
        {
            var nextPattern = _patternFactory.GenerateRandom(random);

            if (_currentPattern != null)
            {
                int i = 0;
                while (i < 10 && _currentPattern.GetType() == typeof(PatternClear) && nextPattern.GetType() == typeof(PatternClear))
                {
                    nextPattern = _patternFactory.GenerateRandom(random);
                    i++;
                }

                // TODO : Remove this?
                // NOTE : Temporary implementation to prevent unlit/black colour being used in succession
                if (i >= 9)
                {
                    nextPattern = new PatternRandomSolidColor();
                }
            }

            _currentPattern   = nextPattern;
            _currentTiming    = _timingFactory.GenerateRandom(random);
            _currentAnimation = _animationFactory.GenerateRandom(random);

            _currentPattern.Reset(controller, random);
            var totalSteps = _currentAnimation.Begin(controller, _currentPattern, random);

            _currentTiming.Reset(totalSteps);
        }
Example #2
0
 /// <summary>
 /// If inputStartingValues is provided, the zone is initialized automatically.
 /// </summary>
 /// <param name="lightingController"></param>
 /// <param name="name"></param>
 /// <param name="brightness">Brightness for this zone.</param>
 public Zone(ILightingController lightingController, string name = "", double?brightness = 1.0)
 {
     Construct();
     LightingController = lightingController;
     Name       = name;
     Brightness = brightness ?? 1.0;
 }
                public override void Begin(ILightingController controller, Random random)
                {
                    _currentStep = 0;

                    _on = new PatternConfigured
                    {
                        Configured = new[] { Color.Green }
                    };
                    _on.Reset(controller, random);

                    _off = new PatternConfigured
                    {
                        Configured = new[] { Color.Red }
                    };
                    _off.Reset(controller, random);

                    _animation = new AnimationInstant();
                    var totalSteps = _animation.Begin(controller, _on, random);

                    _timing = new TimingConstant
                    {
                        Milliseconds = 500
                    };
                    _timing.Reset(totalSteps);
                }
 public override int Begin(ILightingController controller, IPatternInformation pattern, Random random)
 {
     _middle = (int)Math.Floor(controller.LightCount / 2d);
     _left   = 0;
     _right  = controller.LightCount - 1;
     return(controller.LightCount);
 }
Example #5
0
        public override sealed void Begin(ILightingController controller, Random random)
        {
            if (_currentScene == null)
            {
                _currentScene = FirstScene();
            }

            _currentScene.Begin(controller, random);
        }
        public override sealed void Begin(ILightingController controller, Random random)
        {
            _pattern = CreatePattern();
            _pattern.Reset(controller, random);
            _animation = CreateAnimation();
            var totalSteps = _animation.Begin(controller, _pattern, random);

            _timing = CreateTiming();
            _timing.Reset(totalSteps);
        }
Example #7
0
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            for (int index = 0; index < controller.LightCount; index++)
            {
                controller[index].Color = pattern[index];
            }

            controller.Update();
            return(AnimationState.Complete);
        }
        public override sealed SceneState Step(ILightingController controller, Random random)
        {
            if (_animation.Step(controller, _pattern, random) == AnimationState.Complete)
            {
                return(SceneState.Complete);
            }
            _timing.Delay();
            _pattern.NextState(random);

            return(SceneState.InProgress);
        }
Example #9
0
        public override SceneState Step(ILightingController controller, Random random)
        {
            if (_currentAnimation.Step(controller, _currentPattern, random) == AnimationState.Complete)
            {
                return(SceneState.Complete);
            }
            _currentTiming.Delay();
            _currentPattern.NextState(random);

            return(SceneState.InProgress);
        }
        public override int Begin(ILightingController controller, IPatternInformation pattern, Random random)
        {
            _brightness = BrightnessStart;

            controller.Brightness = _brightness;
            controller.Update();

            var range = BrightnessStart - BrightnessEnd;

            return((int)Math.Ceiling((double)range / BrightnessAdjust));
        }
Example #11
0
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            controller[_index].Color = pattern[_index];

            controller.Update();
            _index--;

            if (_index >= 0)
            {
                return(AnimationState.InProgress);
            }
            return(AnimationState.Complete);
        }
Example #12
0
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            int index = random.Next(controller.LightCount);

            controller[index].Color = pattern[index];
            controller.Update();
            _remainingIterations--;
            if (_remainingIterations > 0)
            {
                return(AnimationState.InProgress);
            }

            return(AnimationState.Complete);
        }
Example #13
0
        public override int Begin(ILightingController controller, IPatternInformation pattern, Random random)
        {
            _remainingIterations = random.Next(4, 8);

            for (int index = 0; index < controller.LightCount; index++)
            {
                controller[index].Color = pattern[index];
            }

            controller.Update();

            _on = true;
            return(_remainingIterations);
        }
Example #14
0
        public override sealed DemoState Step(ILightingController controller, Random random)
        {
            if (_currentScene.Step(controller, random) == SceneState.InProgress)
            {
                return(DemoState.InProgress);
            }

            _currentScene = NextScene();
            if (_currentScene == null)
            {
                return(DemoState.Complete);
            }

            _currentScene.Begin(controller, random);
            return(DemoState.InProgress);
        }
Example #15
0
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            for (int index = _offset; index < controller.LightCount; index++)
            {
                controller[index].Color = pattern[index - _offset];
            }

            controller.Update();
            _offset--;
            if (_offset >= 0)
            {
                return(AnimationState.InProgress);
            }

            return(AnimationState.Complete);
        }
Example #16
0
 //连接
 private void buttonConnect_Click(object sender, EventArgs e)
 {
     if (buttonConnect.Text == "Conncect")
     {
         //light = new Light(0, new LightingOPT(1, textBoxIP.Text.Trim()));
         light         = new LightingOPT(1, textBoxIP.Text.Trim());
         this.lightCom = light as LightingCom;
         var ret = this.lightCom.Connect(new TimeSpan(0, 0, 0, 0, 40));
         if (ret)
         {
             this.richTextBoxState.AppendText($"connect:{ret.ToString()}" + Environment.NewLine);
             if (light.GetChannelState(LightChn.Red) == 1 && light.GetChannelState(LightChn.Green) == 1 && light.GetChannelState(LightChn.Blue) == 1)
             {
                 StringBuilder sn      = new StringBuilder();
                 StringBuilder ip      = new StringBuilder();
                 StringBuilder mask    = new StringBuilder();
                 StringBuilder gateWay = new StringBuilder();
                 this.richTextBoxState.AppendText($"all RGB light connected!" + Environment.NewLine);
                 this.light.ReadSN(sn);                      //读取设备序列号
                 this.txtSN.Text = sn.ToString();
                 this.light.ReadIPConfig(ip, mask, gateWay); //读取IP配置
                 this.txtIP.Text         = ip.ToString();
                 this.txtSubnetMask.Text = mask.ToString();
                 this.txtGateway.Text    = gateWay.ToString();
                 labelConnectState.Text  = "connected";
                 buttonConnect.Text      = "Disconnect";
             }
             else
             {
                 this.richTextBoxState.AppendText($"one or more RGB light disconnected!" + Environment.NewLine);
             }
         }
         else
         {
             this.richTextBoxState.AppendText($"connect:{ret.ToString()}" + Environment.NewLine);
         }
     }
     else
     {
         this.lightCom.Disconnect();
         buttonConnect.Text     = "Connect";
         labelConnectState.Text = "disconnected";
     }
 }
                public override SceneState Step(ILightingController controller, Random random)
                {
                    var pattern = _onOrOff ? _on : _off;

                    _onOrOff = !_onOrOff;

                    _animation.Step(controller, pattern, random);
                    _timing.Delay();
                    pattern.NextState(random);

                    _currentStep++;

                    if (_currentStep < 30)
                    {
                        return(SceneState.InProgress);
                    }

                    return(SceneState.Complete);
                }
Example #18
0
        public override DemoState Step(ILightingController controller, Random random)
        {
            if (_currentAnimation == null || _currentTiming == null || _currentPattern == null)
            {
                return(DemoState.Complete);
            }

            if (_currentAnimation.Step(controller, _currentPattern, random) == AnimationState.Complete)
            {
                if (!NextScene(controller, random))
                {
                    return(DemoState.Complete);
                }
                return(DemoState.InProgress);
            }
            _currentTiming.Delay();
            _currentPattern.NextState(random);

            return(DemoState.InProgress);
        }
Example #19
0
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            for (int index = 0; index < controller.LightCount; index++)
            {
                int offsetIndex = index - _offset;
                if (offsetIndex < 0)
                {
                    offsetIndex = controller.LightCount + offsetIndex;
                }
                controller[offsetIndex].Color = pattern[index];
            }

            controller.Update();
            _offset++;
            if (_offset < controller.LightCount)
            {
                return(AnimationState.InProgress);
            }

            return(AnimationState.Complete);
        }
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            if (_index >= 0)
            {
                controller[_index].Color = pattern[_index];
            }

            if (_index + SectionLength < controller.LightCount)
            {
                controller[_index + SectionLength].Color = Color.Black;
            }

            controller.Update();
            _index--;
            if (_index + SectionLength >= 0)
            {
                return(AnimationState.InProgress);
            }

            return(AnimationState.Complete);
        }
Example #21
0
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            if (_left >= 0)
            {
                controller[_left].Color = pattern[_left];
                _left--;
            }
            if (_right < controller.LightCount)
            {
                controller[_right].Color = pattern[_right];
                _right++;
            }

            controller.Update();

            if (_left < 0 && _right >= controller.LightCount)
            {
                return(AnimationState.Complete);
            }
            return(AnimationState.InProgress);
        }
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            for (int index = 0; index < controller.LightCount; index++)
            {
                controller[index].Color = pattern[index];
            }

            _brightness -= BrightnessAdjust;
            if (_brightness < BrightnessEnd)
            {
                _brightness = BrightnessEnd;
            }

            controller.Brightness = _brightness;
            controller.Update();

            if (_brightness > BrightnessEnd)
            {
                return(AnimationState.InProgress);
            }

            return(AnimationState.Complete);
        }
Example #23
0
        public override AnimationState Step(ILightingController controller, IPatternInformation pattern, Random random)
        {
            if (_on)
            {
                controller.Brightness = 0;
                _on = false;
            }
            else
            {
                controller.Brightness = (controller.DefaultBrightness);
                _on = true;
                _remainingIterations--;
            }

            controller.Update();

            if (_remainingIterations > 0)
            {
                return(AnimationState.InProgress);
            }

            controller.Brightness = (controller.DefaultBrightness);
            return(AnimationState.Complete);
        }
Example #24
0
 public void SendLights(ILightingController lightingController)
 {
     Lights.Send(lightingController);
 }
Example #25
0
 public override void Begin(ILightingController controller, Random random)
 {
     _commands = new CommandReader(_commandText, random);
     NextScene(controller, random);
 }
Example #26
0
 public void SetLightingController(ILightingController lightingController)
 {
     LightingController = lightingController;
 }
Example #27
0
 public override int Begin(ILightingController controller, IPatternInformation pattern, Random random)
 {
     _index = controller.LightCount - 1;
     return(controller.LightCount);
 }
Example #28
0
 bool NextScene(ILightingController controller, Random random)
 {
     return(_commands.NextScene(out _currentAnimation, out _currentPattern, out _currentTiming));
 }
Example #29
0
 // TODO : Should be improved to apply colour to all lights, especially if its a solid colour
 public override int Begin(ILightingController controller, IPatternInformation pattern, Random random)
 {
     _remainingIterations = random.Next(200, 400);
     return(_remainingIterations);
 }
Example #30
0
 public static void Send(this IList <ILogicalRGBLight> lights, ILightingController lc)
 {
     lc.SendLights(lights.Cast <ILightingControllerPixel>().ToList());
 }