7 #ifndef PIDCONTROLLER_H_
8 #define PIDCONTROLLER_H_
12 #include "Controller.h"
13 #include "LiveWindow/LiveWindow.h"
38 virtual void SetInputRange(
float minimumInput,
float maximumInput);
39 virtual void SetOutputRange(
float mimimumOutput,
float maximumOutput);
40 virtual void SetPID(
float p,
float i,
float d);
41 virtual void SetPID(
float p,
float i,
float d,
float f);
52 virtual void SetTolerance(
float percent);
53 virtual void SetAbsoluteTolerance(
float absValue);
54 virtual void SetPercentTolerance(
float percentValue);
55 virtual bool OnTarget();
70 float m_maximumOutput;
71 float m_minimumOutput;
78 enum {kAbsoluteTolerance, kPercentTolerance, kNoTolerance} m_toleranceType;
91 void Initialize(
float p,
float i,
float d,
float f,
94 static void CallCalculate(
void *controller);
96 virtual ITable* GetTable();
97 virtual std::string GetSmartDashboardType();
98 virtual void ValueChanged(
ITable* source,
const std::string& key,
EntryValue value,
bool isNew);
99 virtual void UpdateTable();
100 virtual void StartLiveWindowMode();
101 virtual void StopLiveWindowMode();
virtual void SetSetpoint(float setpoint)
virtual void SetContinuous(bool continuous=true)
PIDController(float p, float i, float d, PIDSource *source, PIDOutput *output, float period=0.05)
virtual void InitTable(ITable *table)
virtual void SetPID(float p, float i, float d)
virtual float GetSetpoint()
virtual void SetInputRange(float minimumInput, float maximumInput)
virtual void SetOutputRange(float mimimumOutput, float maximumOutput)