diff --git a/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp b/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp index d463a26d88..626743f602 100644 --- a/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp +++ b/wpilibcIntegrationTests/src/main/native/cpp/MotorEncoderTest.cpp @@ -8,12 +8,12 @@ #include "TestBench.h" #include "frc/Encoder.h" #include "frc/Jaguar.h" +#include "frc/LinearFilter.h" #include "frc/Talon.h" #include "frc/Timer.h" #include "frc/Victor.h" #include "frc/controller/PIDController.h" #include "frc/controller/PIDControllerRunner.h" -#include "frc/filters/LinearDigitalFilter.h" #include "gtest/gtest.h" using namespace frc; @@ -46,7 +46,7 @@ class MotorEncoderTest : public testing::TestWithParam { protected: SpeedController* m_speedController; Encoder* m_encoder; - LinearDigitalFilter* m_filter; + LinearFilter* m_filter; void SetUp() override { switch (GetParam()) { @@ -68,8 +68,7 @@ class MotorEncoderTest : public testing::TestWithParam { TestBench::kTalonEncoderChannelB); break; } - m_filter = new LinearDigitalFilter( - LinearDigitalFilter::MovingAverage(*m_encoder, 50)); + m_filter = new LinearFilter(LinearFilter::MovingAverage(50)); } void TearDown() override { @@ -166,7 +165,6 @@ TEST_P(MotorEncoderTest, PositionPIDController) { TEST_P(MotorEncoderTest, VelocityPIDController) { Reset(); - m_encoder->SetPIDSourceType(PIDSourceType::kRate); frc2::PIDController pidController(1e-5, 0.0, 0.0006); pidController.SetAbsoluteTolerance(200.0); pidController.SetOutputRange(-0.3, 0.3); @@ -174,7 +172,7 @@ TEST_P(MotorEncoderTest, VelocityPIDController) { /* 10 seconds should be plenty time to get to the reference */ frc::PIDControllerRunner pidRunner( - pidController, [&] { return m_filter->PIDGet(); }, + pidController, [&] { return m_filter->Calculate(m_encoder->GetRate()); }, [&](double output) { m_speedController->Set(output + 8e-5); }); pidRunner.Enable(); Wait(10.0); diff --git a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorEncoderTest.java b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorEncoderTest.java index 4f63d94178..e93e29e23f 100644 --- a/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorEncoderTest.java +++ b/wpilibjIntegrationTests/src/main/java/edu/wpi/first/wpilibj/MotorEncoderTest.java @@ -21,7 +21,6 @@ import org.junit.runners.Parameterized.Parameters; import edu.wpi.first.wpilibj.controller.PIDController; import edu.wpi.first.wpilibj.controller.PIDControllerRunner; -import edu.wpi.first.wpilibj.filters.LinearDigitalFilter; import edu.wpi.first.wpilibj.fixtures.MotorEncoderFixture; import edu.wpi.first.wpilibj.test.AbstractComsSetup; import edu.wpi.first.wpilibj.test.TestBench; @@ -197,15 +196,16 @@ public class MotorEncoderTest extends AbstractComsSetup { @Test public void testVelocityPIDController() { - me.getEncoder().setPIDSourceType(PIDSourceType.kRate); - LinearDigitalFilter filter = LinearDigitalFilter.movingAverage(me.getEncoder(), 50); + LinearFilter filter = LinearFilter.movingAverage(50); PIDController pidController = new PIDController(1e-5, 0.0, 0.0006); pidController.setAbsoluteTolerance(200); pidController.setOutputRange(-0.3, 0.3); pidController.setSetpoint(600); - PIDControllerRunner pidRunner = new PIDControllerRunner(pidController, filter::pidGet, + PIDControllerRunner pidRunner = new PIDControllerRunner(pidController, + () -> filter.calculate(me.getEncoder().getRate()), output -> me.getMotor().set(output + 8e-5)); + pidRunner.enable(); Timer.delay(10.0); pidRunner.disable();