public double GetValue() { try { var distance = 0.0; using (var connection = new HcSr04Connection( driver.Out(TRIGGERPIN.ToProcessor()), driver.In(ECHOPIN.ToProcessor()))) { distance = connection.GetDistance().Centimeters; return distance; } } catch (TimeoutException tex) { throw new TimeoutException("Timeout", tex); } }
private static void Main(string[] args) { Console.CursorVisible = false; const ConnectorPin triggerPin = ConnectorPin.P1Pin21; const ConnectorPin echoPin = ConnectorPin.P1Pin23; Console.WriteLine("HC-SR04 Sample: measure distance"); Console.WriteLine(); Console.WriteLine("\tTrigger: {0}", triggerPin); Console.WriteLine("\tEcho: {0}", echoPin); Console.WriteLine(); var interval = GetInterval(args); var driver = GpioConnectionSettings.DefaultDriver; using (var connection = new HcSr04Connection( driver.Out(triggerPin.ToProcessor()), driver.In(echoPin.ToProcessor()))) { while (!Console.KeyAvailable) { try { var distance = connection.GetDistance(); Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0:0.0}cm", distance * 100).PadRight(16)); Console.CursorTop--; } catch (TimeoutException e) { Console.WriteLine("(Timeout): " + e.Message); } Timer.Sleep(interval); } } Console.CursorVisible = true; }