public void When_GetDistanceIsCalled_Then_DistanceIsReturned(IWrapGPIO gpioStub,
                                                                     SonicSensorDriver sut)
        {
            //a
            var    echoPin        = sut.EchoPin;
            double readedDistance = 0;
            double milisToSleep   = 3;

            var measuringThread = new Thread(() =>
            {
                //Thread.Sleep(1000);
                //gpioStub.DigitalRead(echoPin).Returns(GPIO.GPIOpinvalue.Low);
                //Thread.Sleep(1000);
                gpioStub.DigitalRead(echoPin).Returns(GPIO.GPIOpinvalue.High);
                Thread.Sleep((int)milisToSleep);
                gpioStub.DigitalRead(echoPin).Returns(GPIO.GPIOpinvalue.Low);
            });

            //aa
            measuringThread.Start();
            readedDistance = sut.GetDistance();

            //aaa
            //var measuredTime = sut.elapsedTime.TotalMilliseconds;

            Assert.Equal(milisToSleep, measuredTime);
        }
        public void When_Configure_Then_TriggerPin_IsSetToLow(IWrapGPIO gpioSpy,
                                                              SonicSensorDriver sut)
        {
            //a
            var triggerPin = sut.TriggerPin;

            //aa
            sut.Configure();

            //aaa
            gpioSpy.Received(1).DigitalWrite(triggerPin, GPIO.GPIOpinvalue.Low);
        }
        public void When_Configure_Then_PinModesAreReSetted(IWrapGPIO gpioSpy,
                                                            SonicSensorDriver sut)
        {
            //a

            //aa
            sut.Configure();

            //aaa
            gpioSpy.Received(1).PinMode(sut.EchoPin);
            gpioSpy.Received(1).PinMode(sut.TriggerPin);
        }
Пример #4
0
        private static void DoSonicMeasuring(IWrapGPIO gpioWrapper, IWrapTiming timingWrapper, int delay)
        {
            var sonicSensorDriver = new SonicSensorDriver(gpioWrapper, timingWrapper);

            sonicSensorDriver.Configure();

            do
            {
                sonicSensorDriver.GetDistance();
                Thread.Sleep(delay);
            }while (true);
        }
Пример #5
0
        private static void DoSonicMeasuring()
        {
            var gpioWrapper   = new GPIOWrapper();
            var timingWrapper = new TimingWrapper();

            var sonicSensorDriver = new SonicSensorDriver(gpioWrapper, timingWrapper);

            sonicSensorDriver.Configure();

            do
            {
                sonicSensorDriver.GetDistance();

                Thread.Sleep(500);
            }while (true);
        }
        public void When_GetDistanceIsCalled_Then_DelaysAreCalled(IWrapGPIO gpioStub,
                                                                  IWrapTiming timingSpy,
                                                                  SonicSensorDriver sut)
        {
            //a
            var echoPin         = sut.EchoPin;
            var measuringThread = new Thread(() => sut.GetDistance());

            //aa
            measuringThread.Start();

            gpioStub.DigitalRead(echoPin).Returns(GPIO.GPIOpinvalue.High);
            Thread.Sleep(1);
            gpioStub.DigitalRead(echoPin).Returns(GPIO.GPIOpinvalue.Low);


            //aaa
            timingSpy.Received(1).DelayMicroseconds(5);
            timingSpy.Received(1).DelayMicroseconds(10);
        }