Files
allwpilib/wpilibc/wpilibC++/src/Commands/PIDCommand.cpp
James Kuszmaul 4b575e3e7e Replaced ::std with std for readability/consistency.
Change-Id: I65f9673c237d3513f99827e28963eb22ae9df0c2
2015-07-29 16:48:04 -04:00

70 lines
2.4 KiB
C++

/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2011. All Rights Reserved.
*/
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in $(WIND_BASE)/WPILib. */
/*----------------------------------------------------------------------------*/
#include "Commands/PIDCommand.h"
#include "float.h"
PIDCommand::PIDCommand(const std::string &name, double p, double i, double d, double f,
double period)
: Command(name) {
m_controller = std::make_unique<PIDController>(p, i, d, this, this, period);
}
PIDCommand::PIDCommand(double p, double i, double d, double f, double period) {
m_controller = std::make_unique<PIDController>(p, i, d, f, this, this, period);
}
PIDCommand::PIDCommand(const std::string &name, double p, double i, double d)
: Command(name) {
m_controller = std::make_unique<PIDController>(p, i, d, this, this);
}
PIDCommand::PIDCommand(const std::string &name, double p, double i, double d,
double period)
: Command(name) {
m_controller = std::make_unique<PIDController>(p, i, d, this, this, period);
}
PIDCommand::PIDCommand(double p, double i, double d) {
m_controller = std::make_unique<PIDController>(p, i, d, this, this);
}
PIDCommand::PIDCommand(double p, double i, double d, double period) {
m_controller = std::make_unique<PIDController>(p, i, d, this, this, period);
}
void PIDCommand::_Initialize() { m_controller->Enable(); }
void PIDCommand::_End() { m_controller->Disable(); }
void PIDCommand::_Interrupted() { _End(); }
void PIDCommand::SetSetpointRelative(double deltaSetpoint) {
SetSetpoint(GetSetpoint() + deltaSetpoint);
}
void PIDCommand::PIDWrite(float output) { UsePIDOutput(output); }
double PIDCommand::PIDGet() const { return ReturnPIDInput(); }
PIDController *PIDCommand::GetPIDController() const { return m_controller.get(); }
void PIDCommand::SetSetpoint(double setpoint) {
m_controller->SetSetpoint(setpoint);
}
double PIDCommand::GetSetpoint() const { return m_controller->GetSetpoint(); }
double PIDCommand::GetPosition() const { return ReturnPIDInput(); }
std::string PIDCommand::GetSmartDashboardType() const { return "PIDCommand"; }
void PIDCommand::InitTable(std::shared_ptr<ITable> table) {
m_controller->InitTable(table);
Command::InitTable(table);
}