FRC Paradigm Shift #1259
Documentation for the 2021 Robot
PIDLoaderNEO Class Reference

Public Member Functions

 PIDLoaderNEO (string name, bool adjustable, double p, double i, double d, double iz, double ia)
 
 PIDLoaderNEO (string name, bool adjustable, double p, double i, double d, double iz, double ia, double ff, double max, double min)
 
void Load (CANPIDController &turnPIDController)
 
void LoadFromNetworkTable (CANPIDController &turnPIDController)
 

Private Attributes

string m_name
 
bool m_adjustable
 
double m_p
 
double m_i
 
double m_d
 
double m_iz
 
double m_ia
 
double m_ff
 
double m_max
 
double m_min
 

Detailed Description

Definition at line 19 of file PIDLoaderNEO.h.

Constructor & Destructor Documentation

PIDLoaderNEO::PIDLoaderNEO ( string  name,
bool  adjustable,
double  p,
double  i,
double  d,
double  iz,
double  ia 
)

Definition at line 4 of file PIDLoaderNEO.cpp.

5  : m_name(name)
6  , m_adjustable(adjustable)
7  , m_p(p)
8  , m_i(i)
9  , m_d(d)
10  , m_iz(iz)
11  , m_ia(ia) {}
bool m_adjustable
Definition: PIDLoaderNEO.h:35
string m_name
Definition: PIDLoaderNEO.h:34
PIDLoaderNEO::PIDLoaderNEO ( string  name,
bool  adjustable,
double  p,
double  i,
double  d,
double  iz,
double  ia,
double  ff,
double  max,
double  min 
)

Definition at line 13 of file PIDLoaderNEO.cpp.

14  : m_name(name)
15  , m_adjustable(adjustable)
16  , m_p(p)
17  , m_i(i)
18  , m_d(d)
19  , m_iz(iz)
20  , m_ia(ia)
21  , m_ff(ff)
22  , m_max(max)
23  , m_min(min) {}
bool m_adjustable
Definition: PIDLoaderNEO.h:35
double m_min
Definition: PIDLoaderNEO.h:44
double m_max
Definition: PIDLoaderNEO.h:43
string m_name
Definition: PIDLoaderNEO.h:34

Member Function Documentation

void PIDLoaderNEO::Load ( CANPIDController &  turnPIDController)

Loads turn PID controller with values, also sends default PID values to SmartDashboard

Parameters
turnPIDControllerThe CANPIDController of the CANSparkMax responsible for turning

Definition at line 25 of file PIDLoaderNEO.cpp.

References m_adjustable, m_d, m_ff, m_i, m_ia, m_iz, m_max, m_min, m_name, and m_p.

26 {
27  turnPIDController.SetP(m_p);
28  turnPIDController.SetI(m_i);
29  turnPIDController.SetD(m_d);
30  turnPIDController.SetIZone(m_iz);
31  turnPIDController.SetIMaxAccum(m_ia);
32  turnPIDController.SetFF(m_ff);
33  turnPIDController.SetOutputRange(m_min, m_max);
34 
35  if (m_adjustable)
36  {
37  SmartDashboard::PutNumber("T_" + m_name + "_TP", m_p);
38  SmartDashboard::PutNumber("T_" + m_name + "_TI", m_i);
39  SmartDashboard::PutNumber("T_" + m_name + "_TD", m_d);
40  SmartDashboard::PutNumber("T_" + m_name + "_TIZone", m_iz);
41  SmartDashboard::PutNumber("T_" + m_name + "_TIAccum", m_ia);
42  SmartDashboard::PutNumber("T_" + m_name + "_TFF", m_ff);
43  SmartDashboard::PutNumber("T_" + m_name + "_TMax", m_max);
44  SmartDashboard::PutNumber("T_" + m_name + "_TMin", m_min);
45  }
46 }
bool m_adjustable
Definition: PIDLoaderNEO.h:35
double m_min
Definition: PIDLoaderNEO.h:44
double m_max
Definition: PIDLoaderNEO.h:43
string m_name
Definition: PIDLoaderNEO.h:34
void PIDLoaderNEO::LoadFromNetworkTable ( CANPIDController &  turnPIDController)

Loads turn PID controller with on the fly values from SmartDashboard

Parameters
turnPIDControllerThe CANPIDController of the CANSparkMax responsible for turning

Definition at line 48 of file PIDLoaderNEO.cpp.

References m_adjustable, m_d, m_ff, m_i, m_ia, m_iz, m_max, m_min, m_name, and m_p.

49 {
50  if (!m_adjustable)
51  return;
52 
53  double p = SmartDashboard::GetNumber("T_" + m_name + "_TP", m_p);
54  double i = SmartDashboard::GetNumber("T_" + m_name + "_TI", m_i);
55  double d = SmartDashboard::GetNumber("T_" + m_name + "_TD", m_d);
56  double iz = SmartDashboard::GetNumber("T_" + m_name + "_TIZone", m_iz);
57  double ia = SmartDashboard::GetNumber("T_" + m_name + "_TIAccum", m_ia);
58  double ff = SmartDashboard::GetNumber("T_" + m_name + "_TFF", m_ff);
59  double max = SmartDashboard::GetNumber("T_" + m_name + "_TMax", m_max);
60  double min = SmartDashboard::GetNumber("T_" + m_name + "_TMin", m_min);
61 
62  // if PID coefficients on SmartDashboard have changed, write new values to controller
63  if ((p != m_p)) { turnPIDController.SetP(p); m_p = p; }
64  if ((i != m_i)) { turnPIDController.SetI(i); m_i = i; }
65  if ((d != m_d)) { turnPIDController.SetD(d); m_d = d; }
66  if ((iz != m_iz)) { turnPIDController.SetIZone(iz); m_iz = iz; }
67  if ((ia != m_ia)) { turnPIDController.SetIAccum(ia); m_ia = ia; }
68  if ((ff != m_ff)) { turnPIDController.SetFF(ff); m_ff = ff; }
69 
70  if ((max != m_max) || (min != m_min))
71  {
72  turnPIDController.SetOutputRange(min, max);
73  m_min = min;
74  m_max = max;
75  }
76 }
bool m_adjustable
Definition: PIDLoaderNEO.h:35
double m_min
Definition: PIDLoaderNEO.h:44
double m_max
Definition: PIDLoaderNEO.h:43
string m_name
Definition: PIDLoaderNEO.h:34

Member Data Documentation

string PIDLoaderNEO::m_name
private

Definition at line 34 of file PIDLoaderNEO.h.

bool PIDLoaderNEO::m_adjustable
private

Definition at line 35 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_p
private

Definition at line 37 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_i
private

Definition at line 38 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_d
private

Definition at line 39 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_iz
private

Definition at line 40 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_ia
private

Definition at line 41 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_ff
private

Definition at line 42 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_max
private

Definition at line 43 of file PIDLoaderNEO.h.

double PIDLoaderNEO::m_min
private

Definition at line 44 of file PIDLoaderNEO.h.


The documentation for this class was generated from the following files: