public Task StartAsync(CancellationToken cancellationToken)
        {
            Console.WriteLine("Starting Vending Service...");

            if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            {
                // Setup the pins for the buttons
                Hardware.Gpio.OpenPin(HardwareAccess.INPUT_1, PinMode.InputPullUp);
                Hardware.Gpio.OpenPin(HardwareAccess.INPUT_2, PinMode.InputPullUp);
                Hardware.Gpio.OpenPin(HardwareAccess.INPUT_3, PinMode.InputPullUp);

                // Register Event Listeners
                Hardware.Gpio.RegisterCallbackForPinValueChangedEvent(HardwareAccess.INPUT_1, PinEventTypes.Rising, Button_Pressed);
                Hardware.Gpio.RegisterCallbackForPinValueChangedEvent(HardwareAccess.INPUT_2, PinEventTypes.Rising, Button_Pressed);
                Hardware.Gpio.RegisterCallbackForPinValueChangedEvent(HardwareAccess.INPUT_3, PinEventTypes.Rising, Button_Pressed);
                Hardware.Gpio.RegisterCallbackForPinValueChangedEvent(HardwareAccess.INPUT_1, PinEventTypes.Falling, Button_Released);
                Hardware.Gpio.RegisterCallbackForPinValueChangedEvent(HardwareAccess.INPUT_2, PinEventTypes.Falling, Button_Released);
                Hardware.Gpio.RegisterCallbackForPinValueChangedEvent(HardwareAccess.INPUT_3, PinEventTypes.Falling, Button_Released);

                // Turn on the lights
                Hardware.LightsOn();
            }

            return(Task.CompletedTask);
        }
Example #2
0
        public IActionResult Lights([FromBody] bool value)
        {
            if (value)
            {
                _hardware.LightsOn();
            }
            else
            {
                _hardware.LightsOff();
            }

            return(Ok(value));
        }