Allowed sharing of common C++ code between RoboRIO and Simulation.

Change-Id: I8bf2bda9df389c13ae0567a62dbf0ca931ceb6f8
This commit is contained in:
Alex Henning
2014-08-08 17:05:49 -04:00
committed by Thomas Clark
parent b371600f0f
commit 7c8124d76c
242 changed files with 536 additions and 4710 deletions

View File

@@ -0,0 +1,106 @@
/*----------------------------------------------------------------------------*/
/* 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 "PIDController.h"
#include "float.h"
PIDCommand::PIDCommand(const char *name, double p, double i, double d, double f, double period) :
Command(name)
{
m_controller = new PIDController(p, i, d, this, this, period);
}
PIDCommand::PIDCommand(double p, double i, double d, double f, double period)
{
m_controller = new PIDController(p, i, d, f, this, this, period);
}
PIDCommand::PIDCommand(const char *name, double p, double i, double d) :
Command(name)
{
m_controller = new PIDController(p, i, d, this, this);
}
PIDCommand::PIDCommand(const char *name, double p, double i, double d, double period) :
Command(name)
{
m_controller = new PIDController(p, i, d, this, this, period);
}
PIDCommand::PIDCommand(double p, double i, double d)
{
m_controller = new PIDController(p, i, d, this, this);
}
PIDCommand::PIDCommand(double p, double i, double d, double period)
{
m_controller = new PIDController(p, i, d, this, this, period);
}
PIDCommand::~PIDCommand()
{
delete m_controller;
}
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()
{
return ReturnPIDInput();
}
PIDController *PIDCommand::GetPIDController()
{
return m_controller;
}
void PIDCommand::SetSetpoint(double setpoint)
{
m_controller->SetSetpoint(setpoint);
}
double PIDCommand::GetSetpoint()
{
return m_controller->GetSetpoint();
}
double PIDCommand::GetPosition()
{
return ReturnPIDInput();
}
std::string PIDCommand::GetSmartDashboardType(){
return "PIDCommand";
}
void PIDCommand::InitTable(ITable* table){
m_controller->InitTable(table);
Command::InitTable(table);
}