static void Main(string[] args) { var abort = new AbortRequest(); var animations = GetAnimations(); Console.CancelKeyPress += (s, e) => { e.Cancel = true; abort.IsAbortRequested = true; }; var input = 0; do { Console.Clear(); Console.WriteLine("What do you want to test:" + Environment.NewLine); Console.WriteLine("0 - Exit"); Console.WriteLine("1 - Color wipe animation"); Console.WriteLine("2 - Rainbow color animation" + Environment.NewLine); Console.WriteLine("Press CTRL+C to abort current test." + Environment.NewLine); Console.Write("What is your choice: "); input = Int32.Parse(Console.ReadLine()); if (animations.ContainsKey(input)) { abort.IsAbortRequested = false; animations[input].Execute(abort); } } while (input != 0); }
public void Execute(AbortRequest request) { Console.Clear(); Console.Write("How many LEDs do you want to use: "); var ledCount = Int32.Parse(Console.ReadLine()); var settings = Settings.CreateDefaultSettings(); var controller = settings.AddController(ledCount, Pin.Gpio18, StripType.WS2811_STRIP_RGB); using (var device = new WS281x(settings)) { var colors = GetAnimationColors(); while (!request.IsAbortRequested) { for (int i = 0; i < controller.LEDCount; i++) { var colorIndex = (i + colorOffset) % colors.Count; controller.SetLED(i, colors[colorIndex]); } device.Render(); colorOffset = (colorOffset + 1) % colors.Count; Thread.Sleep(500); } device.Reset(); } }
public void Execute(AbortRequest request) { Console.Clear(); Console.Write("How many LEDs do you want to use: "); var ledCount = Int32.Parse(Console.ReadLine()); var settings = Settings.CreateDefaultSettings(); var channel = settings.AddController(ledCount, Pin.Gpio18, StripType.WS2811_STRIP_RGB); using (var device = new WS281x(settings)) { while (!request.IsAbortRequested) { Wipe(device, Color.Red); Wipe(device, Color.Green); Wipe(device, Color.Blue); } device.Reset(); } }
public void Execute(AbortRequest request, int gpioPin) { var pin = Pin.Gpio18; if (gpioPin == 19) { pin = Pin.Gpio19; } if (gpioPin == 10) { pin = Pin.Gpio10; } if (gpioPin == 21) { pin = Pin.Gpio21; } Console.Clear(); Console.Write("How many LEDs do you want to use: "); var ledCount = Int32.Parse(Console.ReadLine()); var settings = Settings.CreateDefaultSettings(); settings.AddController(ledCount, pin, StripType.WS2811_STRIP_RGB); using (var device = new WS281x(settings)) { while (!request.IsAbortRequested) { Wipe(device, Color.Red); Wipe(device, Color.Green); Wipe(device, Color.Blue); } device.Reset(); } }