Exemple #1
0
        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();
            }
        }
Exemple #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();
            }
        }