public void TestEnableDisable() { TestablePWMOutput TestPWMOutput = new TestablePWMOutput(); float SteadyStateEpsilon = 0.001f; LowPass <float> TestLPF = new LowPass <float>(SteadyStateEpsilon: SteadyStateEpsilon); TestPWMOutput.SetOutput(0.3f); TalonMC TestMotor = new TalonMC(TestPWMOutput, 0.4f, TestLPF); TestMotor.SetSpeed(0.5f); Thread.Sleep(500); Assert.AreEqual(0.5f, TestMotor.TargetSpeed); // Assert.AreNotEqual(TestMotor.OngoingSpeedThread, TestLPF.IsSteadyState()); Assert.AreNotEqual(SteadyStateEpsilon == 0.0f, TestLPF.IsSteadyState()); TestMotor.SetEnabled(false); Assert.AreEqual(0.5f, TestMotor.TargetSpeed); Assert.AreEqual(0.5f, TestPWMOutput.DutyCycle); TestMotor.SetEnabled(true); Assert.AreEqual(0.5f, TestMotor.TargetSpeed); Thread.Sleep(500); Assert.AreNotEqual(0.5f, TestPWMOutput.DutyCycle); }
public void TestBasicOutput() { // Given a test PWM Output TestablePWMOutput TestPWMOutput = new TestablePWMOutput(); TestablePWMOutput TestPWMOutput2 = new TestablePWMOutput(); TestPWMOutput.SetOutput(0.3f); // Arbitrary choices TestPWMOutput2.SetOutput(0.1f); // to aid in debugging // And a null filter and arbitrary max speed (0.2) for example // See how the output of the motor responds. TalonMC PositiveMaxSpeedTalon = new TalonMC(TestPWMOutput, 0.2f, null); TalonMC NegativeMaxSpeedTalon = new TalonMC(TestPWMOutput2, -0.2f, null); Assert.AreEqual(NegativeMaxSpeedTalon.TargetSpeed, 0.0); Assert.AreEqual(PositiveMaxSpeedTalon.TargetSpeed, 0.0); Assert.AreEqual(TestPWMOutput.DutyCycle, 0.5f); Assert.AreEqual(TestPWMOutput2.DutyCycle, 0.5f); // Tested these conditions by setting OngoingSpeedThread to public // then set it back. // Assert.IsFalse(PositiveMaxSpeedTalon.OngoingSpeedThread); // Assert.IsFalse(NegativeMaxSpeedTalon.OngoingSpeedThread); PositiveMaxSpeedTalon.SetSpeed(-1.0f); NegativeMaxSpeedTalon.SetSpeed(1.0f); // Tested these conditions by setting OngoingSpeedThread to public // then set it back. // Assert.IsFalse(PositiveMaxSpeedTalon.OngoingSpeedThread); // Assert.IsFalse(NegativeMaxSpeedTalon.OngoingSpeedThread); Assert.AreEqual(-1 * PositiveMaxSpeedTalon.TargetSpeed, NegativeMaxSpeedTalon.TargetSpeed); Assert.AreEqual(PositiveMaxSpeedTalon.TargetSpeed, -1.0f); Assert.AreEqual(NegativeMaxSpeedTalon.TargetSpeed, 1.0f); Assert.AreEqual(TestPWMOutput.Frequency, 333); Assert.AreEqual(TestPWMOutput.DutyCycle, 7 / 15.0f); Assert.AreEqual(TestPWMOutput2.Frequency, 333); Assert.AreEqual(TestPWMOutput2.DutyCycle, 8 / 15.0f); NegativeMaxSpeedTalon = new TalonMC(TestPWMOutput, -0.2f, null); NegativeMaxSpeedTalon.SetSpeed(0.2f); Assert.AreEqual(TestPWMOutput.DutyCycle, 8 / 15.0f); }