public static Zone CreateNeoMatrixZone(ZLM zlm) { var neomatrix = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "NeoMatrix", PixelType.FadeCandyWS2812Pixel, 64, 1); return(neomatrix); }
public static void AddFourZonesAndStepperProgramSetWithSyncToZLM(ZLM zlm) { var notificationSyncContext = new SyncContext("NotificationContext"); //add zones var zoneA = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "ZoneA", PixelType.FadeCandyWS2812Pixel, 16, 1); var zoneB = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "ZoneB", PixelType.FadeCandyWS2812Pixel, 16, 2); var zoneC = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "ZoneC", PixelType.FadeCandyWS2812Pixel, 16, 3); var zoneD = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "ZoneD", PixelType.FadeCandyWS2812Pixel, 16, 4); zlm.CreateProgramSet("StepperSet", "Stepper", true, null, zlm.Zones); //setup interrupting inputs - in the real code this method should not be used. The ZoneScaffolder.AddInterruptingProgram should be used. zoneA.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); zoneB.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); zoneC.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); zoneD.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); //synchronize and start interrupting programs notificationSyncContext.Sync(zoneA.InterruptingPrograms[0], zoneB.InterruptingPrograms[0], zoneC.InterruptingPrograms[0], zoneD.InterruptingPrograms[0]); zoneA.InterruptingPrograms[0].Start(); zoneB.InterruptingPrograms[0].Start(); zoneC.InterruptingPrograms[0].Start(); zoneD.InterruptingPrograms[0].Start(); }
public void CreateTwoProgramSets_WorksWithSync() { var zlm = new ZLM(loadZoneModules: false, loadZonesFromConfig: false, loadProgramSetsFromConfig: false); var leftWing = zlm.Zones.Add(new Zone("LeftWing")); var center = zlm.Zones.Add(new Zone("Center")); var rightWing = zlm.Zones.Add(new Zone("RightWing")); //create program set zlm.CreateProgramSet("", "Stepper", true, null, new List <Zone>() { leftWing, center, }); //create program set zlm.CreateProgramSet("", "Stepper", true, null, new List <Zone>() { rightWing }); TestHelpers.ValidateSteppersInSync( new BetterList <Zone> { leftWing, center }.Select(z => z.ZoneProgram).Cast <IStepper>(), 100); TestHelpers.ValidateSteppersRunning( new BetterList <Zone> { rightWing }.Select(z => z.ZoneProgram).Cast <IStepper>(), 10); //cleanup zlm.Dispose(); }
public static Action AddBasementZonesAndProgramsWithSyncAction(ZLM zlm) { return(() => { AddBasementZonesAndProgramsWithSync(zlm); }); }
public void MidiTwoDimensionalFade_Works(int sleepSeconds, bool random) { ZLM zlm = null; var deviceID = 0; try { //act zlm = new ZLM(false, false, false, zlmInner => { var neomatrix = ZoneScaffolder.Instance.AddFadeCandyZone(zlmInner.Zones, "NeoMatrix", PixelType.FadeCandyWS2812Pixel, 64, 1); var midiTwoDimensionalFade = new MidiTwoDimensionalFade(); dynamic startingParameters = new ExpandoObject(); startingParameters.DeviceID = deviceID; neomatrix.Run(midiTwoDimensionalFade, startingParameters: startingParameters); }, Config.Get("NeoMatrixOneZone")); Thread.Sleep(sleepSeconds * 1000); } catch (Exception ex) { zlm?.Dispose(); Thread.Sleep(10000); } }
public static Action RunShimmerOnNeoMatrixAction(ZLM zlm) { return(() => { RunShimmerOnNeoMatrix(zlm); }); }
public void SetZoneInputs_Works() { string programSetName = "RainbowSet"; string programName = "Rainbow"; dynamic isv = new ISV(); isv.Speed = 50; var zlm = new ZLM(false, false, false); var zlmrpc = new ZLMRPC(zlm); var zone1 = zlm.AddFadeCandyZone("Zone1", PixelType.FadeCandyWS2812Pixel, 8, 1); var zone2 = zlm.AddFadeCandyZone("Zone2", PixelType.FadeCandyWS2812Pixel, 8, 1); zlm.CreateProgramSet(programSetName, programName, zlm.Zones.Select(z => z.Name), true, isv); isv.Speed = 90; //act zlmrpc.SetZoneInputs("Zone1", isv); //assert Assert.That(zone1.ZoneProgram.GetInput("Speed").Value, Is.EqualTo(90)); Assert.That(zone2.ZoneProgram.GetInput("Speed").Value, Is.EqualTo(50)); zlmrpc.Dispose(); }
public void GetZones_OneRunningOneStopped_Works() { string programSetName = "RainbowSet"; string programName = "Rainbow"; dynamic isv = new ISV(); isv.Speed = 50; var zlm = new ZLM(false, false, false); var zlmrpc = new ZLMRPC(zlm); var zone1 = zlm.AddFadeCandyZone("Zone1", PixelType.FadeCandyWS2812Pixel, 8, 1); var zone2 = zlm.AddFadeCandyZone("Zone2", PixelType.FadeCandyWS2812Pixel, 8, 1); zlm.CreateProgramSet(programSetName, programName, "Zone2".Listify(), true, isv); //act var zones = zlmrpc.GetZones(); //assert Assert.That(zones.First(x => x.Name == "Zone1").Brightness, Is.EqualTo(zlm.Zones["Zone1"].Brightness)); Assert.That(zones.First(x => x.Name == "Zone1").LightCount, Is.EqualTo(zlm.Zones["Zone1"].LightCount)); Assert.That(zones.First(x => x.Name == "Zone1").Running, Is.EqualTo(zlm.Zones["Zone1"].Running)); Assert.That(zones.First(x => x.Name == "Zone1").ZoneProgramName, Is.EqualTo(string.Empty).Or.EqualTo(null)); Assert.That(zones.First(x => x.Name == "Zone2").Brightness, Is.EqualTo(zlm.Zones["Zone2"].Brightness)); Assert.That(zones.First(x => x.Name == "Zone2").LightCount, Is.EqualTo(zlm.Zones["Zone2"].LightCount)); Assert.That(zones.First(x => x.Name == "Zone2").Running, Is.EqualTo(zlm.Zones["Zone2"].Running)); Assert.That(zones.First(x => x.Name == "Zone2").ZoneProgramName, Is.EqualTo(zlm.Zones["Zone2"].ZoneProgram.Name)); zlmrpc.Dispose(); }
public void SetProgramSetInputs_Works() { string programSetName = "RainbowSet"; string programName = "Rainbow"; var zoneName = "FadeCandyZone"; dynamic isv = new ISV(); isv.Speed = 50; var zlm = new ZLM(false, false, false); var zlmrpc = new ZLMRPC(zlm); zlm.AddFadeCandyZone(zoneName, PixelType.FadeCandyWS2812Pixel, 8, 1); zlm.CreateProgramSet(programSetName, programName, zlm.Zones.Select(z => z.Name), true, isv); zlm.Zones.ForEach(zone => { Assert.That(zone.ZoneProgram, Is.Not.Null); Assert.That(zone.ZoneProgram.State, Is.EqualTo(ProgramState.Started)); Assert.That(zone.ZoneProgram.GetInput("Speed").Value, Is.EqualTo(50)); }); isv.Speed = 90; //act zlmrpc.SetProgramSetInputs(programSetName, isv); //assert zlm.Zones.ForEach(zone => { Assert.That(zone.ZoneProgram.GetInput("Speed").Value, Is.EqualTo(90)); }); zlmrpc.Dispose(); }
public void RecreateProgramSetWithoutZone_Works() { string programSetName = "RainbowSet"; string programName = "Rainbow"; var zoneName = "FadeCandyZone"; dynamic isv = new ISV(); isv.Speed = 50; var zlm = new ZLM(false, false, false); var zlmrpc = new ZLMRPC(zlm); var fadeCandyZone1 = zlm.AddFadeCandyZone("FadeCandyZone1", PixelType.FadeCandyWS2812Pixel, 8, 1); var fadeCandyZone2 = zlm.AddFadeCandyZone("FadeCandyZone2", PixelType.FadeCandyWS2812Pixel, 8, 2); zlm.CreateProgramSet(programSetName, programName, zlm.Zones.Select(z => z.Name), true, isv); Assert.That(zlm.ProgramSets[programSetName].Zones, Contains.Item(fadeCandyZone1)); Assert.That(zlm.ProgramSets[programSetName].Zones, Contains.Item(fadeCandyZone2)); //act zlmrpc.RecreateProgramSetWithoutZone(programSetName, fadeCandyZone2.Name); //assert Assert.That(zlm.ProgramSets[programSetName].Zones, Contains.Item(fadeCandyZone1)); Assert.That(zlm.ProgramSets[programSetName].Zones, Is.Not.Contains(fadeCandyZone2)); Assert.That(zlm.AvailableZones, Contains.Item(fadeCandyZone2)); zlmrpc.Dispose(); }
public static Action AddFourZonesAndStepperProgramSetWithSyncToZLMAction(ZLM zlm) { return(() => { AddFourZonesAndStepperProgramSetWithSyncToZLM(zlm); }); }
public void StartProgramSet_Works() { var programSetName = "StepperSet"; var zlm = new ZLM(false, false, false); var zlmrpc = new ZLMRPC(zlm); zlm.AddFadeCandyZone("FadeCandyZone", PixelType.FadeCandyWS2812Pixel, 8, 1); zlm.CreateProgramSet(programSetName, "Stepper", zlm.Zones.Select(z => z.Name)); zlm.Zones.ForEach(zone => { Assert.That(zone.ZoneProgram.State, Is.EqualTo(ProgramState.Started)); }); zlm.ProgramSets[programSetName].Stop(); zlm.Zones.ForEach(zone => { Assert.That(zone.ZoneProgram.State, Is.EqualTo(ProgramState.Stopped)); }); //act zlmrpc.StartProgramSet(programSetName); //assert zlm.Zones.ForEach(zone => { Assert.That(zone.ZoneProgram.State, Is.EqualTo(ProgramState.Started)); }); zlmrpc.Dispose(); }
public void RaindropsOnScrollTrail_Works(int?sleepSeconds) { //act var zlm = new ZLM(false, false, false, zlmInner => { var isv = new ISV(); isv.Add("DarkenFactor", (float)0.7); isv.Add("DelayTime", 70); isv.Add("ShareShape", false); isv.Add("TrailShapes", new List <TrailShape>() { new TrailShape(new Trail(4, Color.Blue.Darken(0.5)), new Shape(0, 1, 2, 3, 4, 5, 6, 7)), new TrailShape(new Trail(4, Color.Red.Darken(0.5)), new Shape(8, 9, 10, 11, 12, 13, 14, 15)), new TrailShape(new Trail(4, Color.Blue.Darken(0.5)), new Shape(16, 17, 18, 19, 20, 21, 22, 23)), new TrailShape(new Trail(4, Color.Red.Darken(0.5)), new Shape(24, 25, 26, 27, 28, 29, 30, 31)), new TrailShape(new Trail(4, Color.Blue.Darken(0.5)), new Shape(32, 33, 34, 35, 36, 37, 38, 39)), new TrailShape(new Trail(4, Color.Red.Darken(0.5)), new Shape(40, 41, 42, 43, 44, 45, 46, 47)), new TrailShape(new Trail(4, Color.Blue.Darken(0.5)), new Shape(48, 49, 50, 51, 52, 53, 54, 55)), new TrailShape(new Trail(4, Color.Red.Darken(0.5)), new Shape(56, 57, 58, 59, 60, 61, 62, 63)), }); var neomatrix = ZoneScaffolder.Instance.AddFadeCandyZone(zlmInner.Zones, "NeoMatrix", PixelType.FadeCandyWS2812Pixel, 64, 1); zlmInner.CreateSingularProgramSet("", new ScrollTrail(), isv, neomatrix); }, Config.Get("NeoMatrixOneZone")); //Thread.Sleep(Timeout.Infinite); Thread.Sleep((int)(sleepSeconds != null ? sleepSeconds * 1000 : Timeout.Infinite)); //cleanup zlm.Dispose(); }
public static Action AddNeopixelZonesAndProgramsWithSync(ZLM zlm) { return(() => { AddNeopixelZonesAndProgramsWithSyncMethod(zlm); }); }
public void ScrollTrail_FourRandomColorsSquareTrails_Works(int?sleepSeconds, float darkenFactor, int delayTime) { //act var zlm = new ZLM(false, false, false, zlmInner => { var isv = new ISV(); isv.Add("DarkenFactor", (float)darkenFactor); isv.Add("DelayTime", delayTime); isv.Add("ShareShape", true); isv.Add("TrailShapes", new List <TrailShape>() { new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(0, 1, 2, 3, 11, 19, 27, 26, 25, 24, 16, 8)), new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(27, 26, 25, 24, 16, 8, 0, 1, 2, 3, 11, 19)), new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(4, 5, 6, 7, 15, 23, 31, 30, 29, 28, 20, 12)), new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(31, 30, 29, 28, 20, 12, 4, 5, 6, 7, 15, 23)), new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(32, 33, 34, 35, 43, 51, 59, 58, 57, 56, 48, 40)), new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(59, 58, 57, 56, 48, 40, 32, 33, 34, 35, 43, 51)), new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(36, 37, 38, 39, 47, 55, 63, 62, 61, 60, 52, 44)), new TrailShape(new Trail(4, ProgramCommon.GetRandomColor().Darken(0.5)), new Shape(63, 62, 61, 60, 52, 44, 36, 37, 38, 39, 47, 55)), }); var neomatrix = ZoneScaffolder.Instance.AddFadeCandyZone(zlmInner.Zones, "NeoMatrix", PixelType.FadeCandyWS2812Pixel, 64, 1); zlmInner.CreateSingularProgramSet("", new ScrollTrail(), isv, neomatrix); }, Config.Get("NeoMatrixOneZone")); //Thread.Sleep(Timeout.Infinite); Thread.Sleep((int)(sleepSeconds != null ? sleepSeconds * 1000 : Timeout.Infinite)); //cleanup zlm.Dispose(); }
public static void AddNeopixelZonesAndProgramsWithSyncMethod(ZLM zlm) { var notificationSyncContext = new SyncContext("NotificationContext"); //add zones //var row12 = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "Row12", PixelType.FadeCandyWS2812Pixel, 16, 1, 0.5); //var row34 = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "Row34", PixelType.FadeCandyWS2812Pixel, 16, 2, 0.5); //var row56 = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "Row56", PixelType.FadeCandyWS2812Pixel, 16, 3, 0.5); //var row78 = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "Row78", PixelType.FadeCandyWS2812Pixel, 16, 4, 0.5); var neoMatrix = CreateNeoMatrixZone(zlm); var isv = new ISV(); isv.Add("MaxFadeSpeed", 1); isv.Add("MaxFadeDelay", 20); isv.Add("Density", 1.0); isv.Add("Brightness", 0.3); isv.Add("Random", true); zlm.CreateProgramSet("ShimmerSet", "Shimmer", false, isv, zlm.Zones); //setup interrupting inputs - in the real code this method should not be used. The ZoneScaffolder.AddInterruptingProgram should be used. neoMatrix.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); //synchronize and start interrupting programs notificationSyncContext.Sync(neoMatrix.InterruptingPrograms[0]); neoMatrix.InterruptingPrograms[0].Start(); }
public static void AddBasementZonesAndProgramsWithSync(ZLM zlm) { var notificationSyncContext = new SyncContext("NotificationContext"); //add zones var leftWing = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "LeftWing", PixelType.FadeCandyWS2812Pixel, 6, 1); var center = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "Center", PixelType.FadeCandyWS2811Pixel, 21, 2); var rightWing = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "RightWing", PixelType.FadeCandyWS2812Pixel, 12, 3); var baiClock = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "BaiClock", PixelType.FadeCandyWS2812Pixel, 24, 4); zlm.CreateProgramSet("RainbowSet", "Rainbow", true, null, zlm.Zones); //setup interrupting inputs - in the real code this method should not be used. The ZoneScaffolder.AddInterruptingProgram should be used. leftWing.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); rightWing.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); center.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); baiClock.AddInterruptingProgram(new BlinkColorReactive(), null, notificationSyncContext); //synchronize and start interrupting programs notificationSyncContext.Sync(leftWing.InterruptingPrograms[0], rightWing.InterruptingPrograms[0], center.InterruptingPrograms[0], baiClock.InterruptingPrograms[0]); leftWing.InterruptingPrograms[0].Start(); rightWing.InterruptingPrograms[0].Start(); center.InterruptingPrograms[0].Start(); baiClock.InterruptingPrograms[0].Start(); }
public void AvailableZones_ReturnsZonesOnWhichNoProgramSetWasCreated() { var zlm = new ZLM(loadZoneModules: false, loadZonesFromConfig: false, loadProgramSetsFromConfig: false); var leftWing = zlm.Zones.Add(new Zone("LeftWing")); var center = zlm.Zones.Add(new Zone("Center")); var rightWing = zlm.Zones.Add(new Zone("RightWing")); //check if zones and availablezones are the same, since no program sets have been created yet Assert.AreEqual(zlm.Zones, zlm.AvailableZones); //create program set with all but one zone zlm.CreateProgramSet("", "Stepper", true, null, new List <Zone>() { leftWing, center }); //the zone on which no program set was created should be the only one available Assert.True(zlm.AvailableZones.Count == 1); Assert.True(zlm.AvailableZones[0] == rightWing); //cleanup zlm.Dispose(); }
public static void CreateZLM() { bool firstRun; if (!bool.TryParse(Config.Get("FirstRun"), out firstRun)) { firstRun = true; } bool loadZoneModules; if (!bool.TryParse(Config.Get("LoadZoneModules"), out loadZoneModules)) { loadZoneModules = false; } //get initAction from config Action <ZLM> initAction = null; if (typeof(RunnerHelpers).GetMethods().Select(method => method.Name).Contains(Config.Get("InitAction"))) { var initActionInfo = typeof(RunnerHelpers).GetMethods().First(method => method.Name == Config.Get("InitAction")); initAction = (Action <ZLM>)Delegate.CreateDelegate(typeof(Action <ZLM>), initActionInfo); } ZLM = new ZLM(loadZonesFromConfig: !firstRun, loadProgramSetsFromConfig: !firstRun, loadZoneModules: loadZoneModules, initAction: initAction); }
public static void RunRainbowInBasement(ZLM zlm) { var leftWing = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "LeftWing", PixelType.FadeCandyWS2812Pixel, 6, 1); var rightwing = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "RightWing", PixelType.FadeCandyWS2812Pixel, 12, 3); zlm.CreateProgramSet("RainbowSet", "Rainbow", true, null, zlm.Zones); }
public static void RunMidiTwoDimensionalFadeOnNeoMatrix(ZLM zlm) { var neomatrix = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "NeoMatrix", PixelType.FadeCandyWS2812Pixel, 64, 1); dynamic startingParameters = new ExpandoObject(); startingParameters.DeviceID = int.Parse(Config.Get("MIDIDeviceID")); zlm.CreateProgramSet("MidiTwoDimensionalFadeSet", "MidiTwoDimensionalFade", false, null, zlm.Zones, startingParameters); }
public static Zone CreateLivingRoomZone(ZLM zlm) { const byte fadeCandyChannel = 1; const PixelType pixelType = PixelType.FadeCandyWS2812Pixel; var livingRoom = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "LivingRoom", pixelType, LivingRoomLogicalPhysicalMapping, fadeCandyChannel); return(livingRoom); }
public static void RunMidiPlayInLivingRoom(ZLM zlm) { dynamic startingParameters = new ExpandoObject(); startingParameters.DeviceID = int.Parse(Config.Get("MIDIDeviceID")); var zone = CreateLivingRoomZone(zlm); zlm.CreateProgramSet("MidiPlaySet", "LivingRoomMidiPlay", false, null, zlm.Zones, startingParameters); }
public void Raindrops_Works(int sleepSeconds, int trailLengthAvg, int trailLengthVariability, int intervalAvg, int intervalVariability) { IntervalAvg = intervalAvg; IntervalVariability = intervalVariability; var zlm = new ZLM(false, false, false, zlmInner => { dynamic startingParams = new ExpandoObject(); startingParams.ClockedTrailShapes = new List <dynamic>(); for (int i = 0; i < 64; i += 8) { dynamic clockedTrailShape = new ExpandoObject(); var trailLength = ProgramCommon.RandomIntBetween(trailLengthAvg - trailLengthVariability, trailLengthAvg + trailLengthVariability); var interval = ProgramCommon.RandomIntBetween(intervalAvg - intervalVariability, intervalAvg + intervalVariability); var darkenFactor = (float)0.7; clockedTrailShape.TrailShape = new TrailShape(new Trail(trailLength, Color.Green.Darken(0.5)), new Shape(i, i + 1, i + 2, i + 3, i + 4, i + 5, i + 6, i + 7)); clockedTrailShape.TrailShape.DarkenFactor = darkenFactor; clockedTrailShape.Interval = interval; clockedTrailShape.GetNewInterval = (Func <int>)GetNewInterval; clockedTrailShape.AutoTrail = true; //todo: implement autotrail clockedTrailShape.AutoSpeed = true; //todo: implement autospeed startingParams.ClockedTrailShapes.Add(clockedTrailShape); } //startingParams.ClockedTrailShapes.Add(new ExpandoObject() )}; //startingParams.TrailShapes.Add(new TrailShape(new Trail(4, ProgramCommon.GetRandomColor()), // new Shape(8, 9, 10, 11, 12, 13, 14, 15))); //startingParams.TrailShapes.Add(new TrailShape(new Trail(4, ProgramCommon.GetRandomColor()), // new Shape(16, 17, 18, 19, 20, 21, 22, 23))); //startingParams.TrailShapes.Add(new TrailShape(new Trail(4, ProgramCommon.GetRandomColor()), // new Shape(24, 25, 26, 27, 28, 29, 30, 31))); //startingParams.TrailShapes.Add(new TrailShape(new Trail(4, ProgramCommon.GetRandomColor()), // new Shape(32, 33, 34, 35, 36, 37, 38, 39))); //startingParams.TrailShapes.Add(new TrailShape(new Trail(4, ProgramCommon.GetRandomColor()), // new Shape(40, 41, 42, 43, 44, 45, 46, 47))); //startingParams.TrailShapes.Add(new TrailShape(new Trail(4, ProgramCommon.GetRandomColor()), // new Shape(48, 49, 50, 51, 52, 53, 54, 55))); //startingParams.TrailShapes.Add(new TrailShape(new Trail(4, ProgramCommon.GetRandomColor()), // new Shape(56, 57, 58, 59, 60, 61, 62, 63))); var neomatrix = ZoneScaffolder.Instance.AddFadeCandyZone(zlmInner.Zones, "NeoMatrix", PixelType.FadeCandyWS2812Pixel, 64, 1); zlmInner.CreateSingularProgramSet("", new Raindrops(), null, neomatrix, startingParams); }, Config.Get("NeoMatrixOneZone")); //Thread.Sleep(Timeout.Infinite); Thread.Sleep((int)(sleepSeconds != null ? sleepSeconds * 1000 : Timeout.Infinite)); //cleanup zlm.Dispose(); }
public static void RunRainbowOnNeoMatrix(ZLM zlm) { var isv = new ISV(); isv.Add("Speed", 10); isv.Add("DelayTime", 10); var neomatrix = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "NeoMatrix", PixelType.FadeCandyWS2812Pixel, 64, 1, 0.5); zlm.CreateProgramSet("RainbowSet", "Rainbow", false, isv, zlm.Zones); }
public void DisposeZLM_Works() { var zlm = new ZLM(false, false, false); var zlmrpc = new ZLMRPC(zlm); //act zlmrpc.DisposeZLM(); //assert Assert.That(zlm.Zones, Is.Null); Assert.That(zlm.ProgramSets, Is.Null); zlmrpc.Dispose(); }
public void Dispose_Works() { //arrange var zlm = new ZLM(false, false, false, TestHelpers.AddFourZonesAndStepperProgramSetWithSyncToZLM); //act zlm.Dispose(); //assert Assert.That(zlm.ProgramSets, Is.Null); Assert.That(zlm.Zones, Is.Null); //TODO: Assert that all lighting controllers are unintialized Assert.That(ZoneScaffolder.Instance.Initialized, Is.False); }
public static void RunMidiTwoDimensionalFadeInBasement(ZLM zlm) { var isv = new ISV(); var leftWing = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "LeftWing", PixelType.FadeCandyWS2812Pixel, 6, 1); var rightwing = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "RightWing", PixelType.FadeCandyWS2812Pixel, 12, 3); var center = ZoneScaffolder.Instance.AddFadeCandyZone(zlm.Zones, "Center", PixelType.FadeCandyWS2811Pixel, 21, 2); dynamic startingParameters = new ExpandoObject(); startingParameters.DeviceID = int.Parse(Config.Get("MIDIDeviceID")); zlm.CreateProgramSet("MidiTwoDimensionalFadeSet", "MidiTwoDimensionalFade", false, isv, zlm.Zones, startingParameters); }
public void MicroClockBlink_Works(int sleepSeconds, int interval) { //act var zlm = new ZLM(false, false, false, zlmInner => { var neomatrix = RunnerHelpers.CreateNeoMatrixZone(zlmInner); var isv = new ISV(); isv.Add("Interval", interval); zlmInner.CreateSingularProgramSet("MicroClockBlinkSet", new MicroClockBlink(), isv, neomatrix); }, Config.Get("NeoMatrixOneZone")); Thread.Sleep(sleepSeconds * 1000); //cleanup zlm.Dispose(); }
public void MidiPlay_Works(int sleepSeconds) { //act var zlm = new ZLM(false, false, false, zlmInner => { var livingRoom = RunnerHelpers.CreateLivingRoomZone(zlmInner); dynamic startingParameters = new ExpandoObject(); startingParameters.DeviceID = int.Parse(Config.Get("MIDIDeviceID", "Please set the value of MIDIDeviceID in configuration.")); zlmInner.CreateSingularProgramSet("MidiPlaySet", new LivingRoomMidiPlay(), null, livingRoom, startingParameters); }, Config.Get("LivingRoomZone")); Thread.Sleep(sleepSeconds * 1000); //cleanup zlm.Dispose(); }