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 Task <bool> TurnOff()
 {
     using (var rpi = new WS281x(settings))
     {
         rpi.Reset();
         rpi.Dispose();
         return(Task.FromResult <bool>(true));
     }
 }
예제 #3
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 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();
            }
        }
예제 #4
0
        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();
            }
        }
예제 #5
0
 public void Dispose()
 {
     _device?.Reset();
     _device?.Dispose();
 }