[wpimath] ProfiledPIDController: Add to SendableRegistry (#4656)

Co-authored-by: Ryan Blue <ryanzblue@gmail.com>
This commit is contained in:
shueja-personal
2022-12-13 22:31:06 -08:00
committed by GitHub
parent c569d8e523
commit 7ba8a9ee1f
3 changed files with 10 additions and 6 deletions

View File

@@ -10,6 +10,7 @@ import edu.wpi.first.math.MathUtil;
import edu.wpi.first.math.trajectory.TrapezoidProfile;
import edu.wpi.first.util.sendable.Sendable;
import edu.wpi.first.util.sendable.SendableBuilder;
import edu.wpi.first.util.sendable.SendableRegistry;
/**
* Implements a PID control loop whose setpoint is constrained by a trapezoid profile. Users should
@@ -52,6 +53,8 @@ public class ProfiledPIDController implements Sendable {
m_controller = new PIDController(Kp, Ki, Kd, period);
m_constraints = constraints;
instances++;
SendableRegistry.add(this, "ProfiledPIDController", instances);
MathSharedStore.reportUsage(MathUsageId.kController_ProfiledPIDController, instances);
}

View File

@@ -4,9 +4,7 @@
#include "frc/controller/ProfiledPIDController.h"
void frc::detail::ReportProfiledPIDController() {
int frc::detail::IncrementAndGetProfiledPIDControllerInstances() {
static int instances = 0;
++instances;
wpi::math::MathSharedStore::ReportUsage(
wpi::math::MathUsageId::kController_ProfiledPIDController, instances);
return ++instances;
}

View File

@@ -22,7 +22,7 @@
namespace frc {
namespace detail {
WPILIB_DLLEXPORT
void ReportProfiledPIDController();
int IncrementAndGetProfiledPIDControllerInstances();
} // namespace detail
/**
@@ -59,7 +59,10 @@ class ProfiledPIDController
ProfiledPIDController(double Kp, double Ki, double Kd,
Constraints constraints, units::second_t period = 20_ms)
: m_controller(Kp, Ki, Kd, period), m_constraints(constraints) {
detail::ReportProfiledPIDController();
int instances = detail::IncrementAndGetProfiledPIDControllerInstances();
wpi::math::MathSharedStore::ReportUsage(
wpi::math::MathUsageId::kController_ProfiledPIDController, instances);
wpi::SendableRegistry::Add(this, "ProfiledPIDController", instances);
}
~ProfiledPIDController() override = default;