private void constructMotorMover() { mockMotor = MockMotor.Create(); motorLocator = new MotorLocator(new MockGpio(), mockMotor.Information); positionSignaler = new PositionSignaler(motorLocator); motorMover = new MotorMover(3, positionSignaler, motorLocator, mockMotor); }
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."); }
public void TestPositionSignalerConstruction() { mockMotor = MockMotor.Create(); motorLocator = new MotorLocator(new MockGpio(), mockMotor.Information); positionSignaler = new PositionSignaler(motorLocator); positionSignaler.ReachedPosition += finishedCounting; }
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); }
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); }
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}."); }
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."); }