private static void Main(string[] args) { var interval = GetInterval(args); var triggerPin = ConnectorPin.P1Pin03.ToProcessor(); var echoPin = ConnectorPin.P1Pin07.ToProcessor(); using (var connection = new HcSr04Connection(triggerPin, echoPin)) { while (!Console.KeyAvailable) { try { var distance = connection.GetDistance(); Console.WriteLine("{0:0.0}cm", distance * 100); } catch (TimeoutException) { Console.WriteLine("(Timeout)"); } Timer.Sleep(interval); } } }
public virtual IActionResult GetHeaterState([FromRoute] string zoneId) { //string exampleJson = null; const ConnectorPin triggerPin = ConnectorPin.P1Pin38; const ConnectorPin echoPin = ConnectorPin.P1Pin40; double distance = 0; string state = null; Console.WriteLine("info: HC-SR04 distance measure"); Console.WriteLine(" Trigger: {0}", triggerPin); Console.WriteLine(" Echo: {0}", echoPin); var driver = GpioConnectionSettings.DefaultDriver; using (var connection = new HcSr04Connection( driver.Out(triggerPin.ToProcessor()), driver.In(echoPin.ToProcessor()))) try { distance = connection.GetDistance().Centimeters; Console.WriteLine(string.Format("{0:0.0} cm", distance).PadRight(16)); //Console.CursorTop--; } catch (TimeoutException e) { state = "Timeout: " + e.Message; } if (state == null) { state = string.Format("{0:0.0} cm", distance); } HeaterState hs = new HeaterState { Id = zoneId, State = state }; var hs_state = hs ?? default(HeaterState); return(new ObjectResult(hs_state)); }
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; }
private static void Main(string[] args) { Console.CursorVisible = false; var driver = GpioConnectionSettings.DefaultDriver; led1 = ConnectorPin.P1Pin11.Output(); led2 = ConnectorPin.P1Pin13.Output(); buttonPin = ProcessorPin.Pin18; var filename = @"/usr/share/scratch/Media/Sounds/Electronic/ComputerBeeps1.wav"; var stream = new MemoryStream(); using (var file = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) { file.CopyTo(stream); } stream.Position = 0; //player = new SoundPlayer (filename); var isPlaying = false; driver.Allocate(buttonPin, PinDirection.Input); driver.Allocate(led1.Pin, PinDirection.Output); driver.Allocate(led2.Pin, PinDirection.Output); const ConnectorPin triggerPin = ConnectorPin.P1Pin10; const ConnectorPin echoPin = ConnectorPin.P1Pin08; 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; bool toggle = true; using (var connection = new HcSr04Connection( driver.Out(triggerPin.ToProcessor()), driver.In(echoPin.ToProcessor()))) { while (true) { try { var distance = connection.GetDistance().Centimeters; if (distance < 100) { if (!isPlaying) { isPlaying = true; Task.Run(() => { stream.Position = 0; //player = new SoundPlayer( lock (stream) { using (player = new SoundPlayer(stream)) { try { player.PlaySync(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Timer.Sleep(TimeSpan.FromSeconds(3)); } } isPlaying = false; }); } driver.Write(led1.Pin, toggle); toggle = !toggle; driver.Write(led2.Pin, toggle); } else { if (isPlaying) { //lock (player) { // player.Stop (); //} //player.Dispose(); // isPlaying = false; } driver.Write(led1.Pin, false); driver.Write(led2.Pin, false); } //Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0:0.0}cm", distance).PadRight(16)); //Console.CursorTop--; } catch (TimeoutException e) { Console.WriteLine("(Timeout): " + e.Message); } Timer.Sleep(interval); } } Console.CursorVisible = true; }