private double GetLengthOfHighPulse()
        {
            TriggerPin.Write(GpioPinValue.Low);
            Sleep(5);
            TriggerPin.Write(GpioPinValue.High);
            Sleep(10);
            TriggerPin.Write(GpioPinValue.Low);

            return(GetTimeUntilNextEdge(EchoPin, GpioPinValue.High, 100));
        }
        public void InitGPIO()
        {
            var gpio = GpioController.GetDefault();

            if (gpio == null)
            {
                TriggerPin = null;
                EchoPin    = null;
                return;
            }

            TriggerPin = gpio.OpenPin(27);
            EchoPin    = gpio.OpenPin(22);
            if (!IsInitialized)
            {
                return;
            }

            TriggerPin.SetDriveMode(GpioPinDriveMode.Output);
            EchoPin.SetDriveMode(GpioPinDriveMode.Input);
        }