public void Cleanup()
 {
     RedPin?.Dispose();
     GreenPin?.Dispose();
     BluePin?.Dispose();
     SoundPin?.Dispose();
 }
Esempio n. 2
0
        private void OnLoaded(object sender, RoutedEventArgs routedEventArgs)
        {
            var controller = GpioController.GetDefault();

            if (null != controller)
            {
                LedPin = controller.OpenPin(5);
                LedPin.SetDriveMode(GpioPinDriveMode.Output);
                LedPin.Write(GpioPinValue.Low); // set light to off at start up

                SoundPin = controller.OpenPin(6);
                SoundPin.SetDriveMode(GpioPinDriveMode.Input);

                SoundPin.ValueChanged += (pin, args) =>
                {
                    var pinValue = SoundPin.Read();
                    if (pinValue == GpioPinValue.Low)
                    {
                        Debug.WriteLine("Sound Detected!");
                        LedPin.Write(IsLightOn ? GpioPinValue.Low : GpioPinValue.High);
                        IsLightOn = !IsLightOn;
                    }
                };
            }
        }
        public async Task Blink(BlinkRate rate)
        {
            if (gpioCtrl != null)
            {
                var pin = GetPin(rate);
                pin.Write(GpioPinValue.High);
                SoundPin.Write(GpioPinValue.High);
                await Task.Delay(200);

                pin.Write(GpioPinValue.Low);
                SoundPin.Write(GpioPinValue.Low);
            }
        }