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); }
/// <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); }
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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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); }
//连接 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); }
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); }
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); }
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); }
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); }
public void SendLights(ILightingController lightingController) { Lights.Send(lightingController); }
public override void Begin(ILightingController controller, Random random) { _commands = new CommandReader(_commandText, random); NextScene(controller, random); }
public void SetLightingController(ILightingController lightingController) { LightingController = lightingController; }
public override int Begin(ILightingController controller, IPatternInformation pattern, Random random) { _index = controller.LightCount - 1; return(controller.LightCount); }
bool NextScene(ILightingController controller, Random random) { return(_commands.NextScene(out _currentAnimation, out _currentPattern, out _currentTiming)); }
// 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); }
public static void Send(this IList <ILogicalRGBLight> lights, ILightingController lc) { lc.SendLights(lights.Cast <ILightingControllerPixel>().ToList()); }