29 [[nodiscard]]
virtual int getBemf()
const = 0;
30 [[nodiscard]]
virtual bool isDone()
const = 0;
34 virtual void off() = 0;
40 [[nodiscard]]
virtual int getPort()
const = 0;
Calibration constants commonly needed for motor encoder conversions.
Interface for motor abstraction.
virtual ~IMotor()=default
virtual const foundation::MotorCalibration & getCalibration() const =0
virtual void moveRelative(int velocity, int deltaPosition)=0
Move by a relative position delta using firmware-side control.
virtual void setCalibration(const foundation::MotorCalibration &calibration)=0
virtual void resetPositionCounter()=0
Reset the position counter to zero.
virtual int getBemf() const =0
virtual void getLastFirmwarePidGains(float &kp, float &ki, float &kd) const
Read back the gains last passed to setFirmwarePidGains().
virtual bool isDone() const =0
virtual void setFirmwarePidGains(float kp, float ki, float kd)
Push per-motor firmware-side velocity PID gains to the driver.
virtual bool isInverted() const =0
virtual void off()=0
Disable this motor completely (no power, no brake — free-spinning).
virtual void setSpeed(int percent)=0
Open-loop percent output.
virtual void brake()=0
Stop this motor using the implementation's preferred strategy.
virtual int getPort() const =0
virtual void moveToPosition(int velocity, int goalPosition)=0
Move to an absolute position using firmware-side control.
virtual void setVelocity(int velocity)=0
Set a velocity target in firmware-specific BEMF units.
virtual int getPosition() const =0