1 #ifndef DRIVETRAIN_DATA_H_
2 #define DRIVETRAIN_DATA_H_
4 #include "ComponentData.h"
14 POSITION_CONTROL, VELOCITY_CONTROL, OPEN_LOOP
30 void SetControlMode(Axis axis, ControlMode mode);
31 void SetVelocitySetpoint(Axis axis,
float velocity);
32 void SetOpenLoopOutput(Axis axis,
double setpoint);
33 void SetPositionSetpoint(Axis axis,
double setpoint);
34 void SetRelativePositionSetpoint(Axis axis,
double setpoint);
35 void SetPositionControlMaxSpeed(Axis axis,
double speed);
36 ControlMode GetControlMode(Axis axis);
37 double GetOpenLoopOutput(Axis axis);
38 double GetVelocitySetpoint(Axis axis);
39 double GetPositionSetpoint(Axis axis);
40 double GetPositionControlMaxSpeed(Axis axis);
41 void OverrideForwardCurrentLimit(
float limit);
42 void OverrideReverseCurrentLimit(
float limit);
43 float GetForwardCurrentLimit();
44 float GetReverseCurrentLimit();
45 bool ShouldOverrideForwardCurrentLimit();
46 bool ShouldOverrideReverseCurrentLimit();
52 ControlMode m_controlModes[2];
53 double m_desiredOpenLoopOutputs[2];
54 double m_desiredRates[2];
55 double m_positionSetpoints[2];
56 double m_maxSpeeds[2];
58 bool m_overrideCurrentLimitForward;
59 bool m_overrideCurrentLimitReverse;
60 float m_currentLimitForward;
61 float m_currentLimitReverse;
63 bool m_resetPositionSetpoint[2];