public void DigitalRead_1_should_trigger_Down()
        {
            var wasCalled = false;

            _button.Down = () =>
            {
                wasCalled = true;
            };
            A.CallTo(() => _arduino.DigitalRead(Pin)).Returns(0);
            wasCalled.ShouldBeFalse();
            _button.IsDown.ShouldBeFalse();

            _timer.Tick();

            A.CallTo(() => _arduino.DigitalRead(Pin)).Returns(1);
            _timer.Tick();

            wasCalled.ShouldBeTrue();
            _button.IsDown.ShouldBeTrue();
        }
Пример #2
0
        private void Setup(IArduino board, int pin)
        {
            SetInterval(() =>
            {
                var isDown  = board.DigitalRead(pin) == 1;
                var wasDown = IsDown;

                if (!wasDown && isDown)
                {
                    IsDown = true;
                    Down();
                }
                else if (wasDown && !isDown)
                {
                    IsDown = false;
                    Up();
                }
            }, 5);
        }