SubZero Common
Common library components for an FRC CommandRobot
Loading...
Searching...
No Matches
IPidMotorController.h
Go to the documentation of this file.
1#pragma once
2
3#include <units/angle.h>
4#include <units/angular_velocity.h>
5#include <units/voltage.h>
6
7#include <string>
8
9namespace subzero {
10
11// TODO: Add slot support inside of PidSettings struct
13 double p, i, d, iZone, ff;
15};
16
18public:
19 explicit IPidMotorController(std::string name) : m_name{name} {}
20
21 virtual void Set(double percentage) = 0;
22 virtual void Set(units::volt_t volts) = 0;
23 virtual void SetPidTolerance(double tolerance) = 0;
24 virtual void Update(void) = 0;
25 virtual void RunWithVelocity(units::revolutions_per_minute_t rpm) = 0;
26 virtual void RunWithVelocity(double percentage) = 0;
27 virtual void RunToPosition(double position) = 0;
28 virtual void ResetEncoder(void) = 0;
29 virtual double GetEncoderPosition(void) = 0;
30 virtual std::optional<double> GetAbsoluteEncoderPosition(void) = 0;
31 virtual void SetEncoderConversionFactor(double factor) = 0;
32 virtual void SetAbsoluteEncoderConversionFactor(double factor) = 0;
33 virtual void Stop(void) = 0;
34 virtual const PidSettings &GetPidSettings(void) = 0;
35 virtual void UpdatePidSettings(PidSettings settings) = 0;
36
37 const std::string m_name;
38};
39} // namespace subzero
virtual void SetEncoderConversionFactor(double factor)=0
virtual void Set(double percentage)=0
virtual const PidSettings & GetPidSettings(void)=0
virtual void Set(units::volt_t volts)=0
virtual void SetAbsoluteEncoderConversionFactor(double factor)=0
virtual void SetPidTolerance(double tolerance)=0
virtual void RunWithVelocity(units::revolutions_per_minute_t rpm)=0
virtual std::optional< double > GetAbsoluteEncoderPosition(void)=0
virtual void RunWithVelocity(double percentage)=0
virtual void RunToPosition(double position)=0
virtual void ResetEncoder(void)=0
virtual double GetEncoderPosition(void)=0
virtual void UpdatePidSettings(PidSettings settings)=0
virtual void Update(void)=0
virtual void Stop(void)=0