Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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;
        }