示例#1
0
 private void constructMotorMover()
 {
     mockMotor        = MockMotor.Create();
     motorLocator     = new MotorLocator(new MockGpio(), mockMotor.Information);
     positionSignaler = new PositionSignaler(motorLocator);
     motorMover       = new MotorMover(3, positionSignaler, motorLocator, mockMotor);
 }
示例#2
0
        public void TestMotorLocatorForwardShiftBackwardMove()
        {
            var mockMotor = MockMotor.Create();
            var locator   = new MotorLocator(new MockGpio(), mockMotor.Information);

            mockMotor.Direction = MoveDirection.Forward;

            Task.Delay(75).Wait();

            mockMotor.Direction = MoveDirection.Stopped;

            Task.Delay(300).Wait();

            Assert.AreEqual(mockMotor.NumTicks, locator.Position, $"Locator count {locator.Position} did not match motor ticks {mockMotor.NumTicks} on forward move.");

            var previousPosition = locator.Position;

            locator.ShiftPosition(50);
            Assert.AreEqual(previousPosition + 50, locator.Position, $"Locator count {locator.Position} did not expected position after shift.");
            mockMotor.NumTicks  = 0;
            mockMotor.Direction = MoveDirection.Backward;

            Task.Delay(75).Wait();

            mockMotor.Direction = MoveDirection.Stopped;

            Task.Delay(300).Wait();

            Assert.AreEqual(-mockMotor.NumTicks + previousPosition + 50, locator.Position, $"Locator count {locator.Position} did not match motor ticks after backward move.");
        }
示例#3
0
        public void TestPositionSignalerConstruction()
        {
            mockMotor        = MockMotor.Create();
            motorLocator     = new MotorLocator(new MockGpio(), mockMotor.Information);
            positionSignaler = new PositionSignaler(motorLocator);

            positionSignaler.ReachedPosition += finishedCounting;
        }
示例#4
0
        public static MockMotorMover Create()
        {
            var motor    = MockMotor.Create();
            var locator  = new MotorLocator(new MockGpio(), motor.Information);
            var signaler = new PositionSignaler(locator);

            return(new MockMotorMover(motor, locator, signaler));
        }
 private void setup()
 {
     mockMotor       = MockMotor.Create();
     locator         = new MotorLocator(new MockGpio(), mockMotor.Information);
     signaler        = new PositionSignaler(locator);
     mover           = new MotorMover(3, signaler, locator, mockMotor);
     topInterrupt    = new MockPhotoInterrupter(1, lowerTopIntPos, upperTopIntPos, locator, mockMotor);
     bottomInterrupt = new MockPhotoInterrupter(-1, lowerBottomIntPos, upperBottomIntPos, locator, mockMotor);
     calibrator      = new MotorCalibrator(-5, 5, mover, mockMotor.Information, topInterrupt, bottomInterrupt);
 }
示例#6
0
        private void constructAnAxis(ref IMotorMover mover, ref IMotorCalibrator calibrator, ref IPreciseMotorMover preciseMover, ref IGridMotorMover gridMover)
        {
            var motor    = MockMotor.Create();
            var locator  = new MotorLocator(new MockGpio(), motor.Information);
            var signaler = new PositionSignaler(locator);

            mover = new MotorMover(3, signaler, locator, motor);
            var topInterrupter    = new MockPhotoInterrupter(1, 4, 6, locator, motor);
            var bottomInterrupter = new MockPhotoInterrupter(-1, -6, -4, locator, motor);

            calibrator   = new MotorCalibrator(-5, 5, mover, motor.Information, topInterrupter, bottomInterrupter);
            preciseMover = new PreciseMotorMover(mover);
            gridMover    = new GridMotorMover(preciseMover, calibrator);
        }
示例#7
0
        public void TestMotorLocatorBackwardMove()
        {
            var mockMotor = MockMotor.Create();
            var locator   = new MotorLocator(new MockGpio(), mockMotor.Information);

            mockMotor.Direction = MoveDirection.Backward;

            Task.Delay(75).Wait();

            mockMotor.Direction = MoveDirection.Stopped;

            Task.Delay(300).Wait();

            Assert.AreEqual(mockMotor.NumTicks, -locator.Position, $"Locator count {locator.Position} did not match motor ticks {mockMotor.NumTicks}.");
        }
示例#8
0
        public void TestMockMotor()
        {
            var motor = MockMotor.Create();

            var pos = 0;

            motor.Direction = MoveDirection.Forward;
            Task.Delay(200).Wait();
            pos = motor.NumTicks;
            Assert.IsTrue(pos > 0, "Motor did not increase NumTicks when going forwards");
            motor.Direction = MoveDirection.Stopped;
            Task.Delay(400).Wait();
            Assert.IsTrue(motor.NumTicks > pos, "Motor did no extra ticks after stopping");
            Assert.AreEqual(MoveDirection.Stopped, motor.Information.Direction, "MotorInformation seems wrong when going forwards.");
            pos             = 0;
            motor.Direction = MoveDirection.Backward;
            Task.Delay(200).Wait();
            Assert.IsTrue(motor.NumTicks > pos, "Motor did not increase NumTicks when going backwards");
            pos             = motor.NumTicks;
            motor.Direction = MoveDirection.Stopped;
            Task.Delay(400).Wait();
            Assert.IsTrue(motor.NumTicks > pos, "Motor did no extra ticks after stopping");
            Assert.AreEqual(MoveDirection.Stopped, motor.Information.Direction, "MotorInformation seems wrong when going backwards.");
        }