Added C++ sample for CAN monitoring of PDP.

Uses CAN to monitor PDP and displays values on the SmartDashboard.

Change-Id: Icb06fec0b65ce02b7c396e7d4e379cee0d959095
This commit is contained in:
James Kuszmaul
2014-10-22 12:26:44 -04:00
parent 93925bc025
commit 9af070a4af
2 changed files with 63 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
#include "WPILib.h"
/**
* This is a sample program showing how to retrieve information from
* the Power Distribution Panel via CAN.
* The information will be displayed under variables through the SmartDashboard.
*/
class Robot: public SampleRobot
{
// Object for dealing with the Power Distribution Panel (PDP).
PowerDistributionPanel m_pdp;
// Update every 5milliseconds/0.005 seconds.
const double kUpdatePeriod = 0.005;
public:
Robot() {
}
/**
* Retrieve information from the PDP over CAN and
* displays it on the SmartDashboard interface.
* SmartDashboard::PutNumber takes a string (for a label) and a double;
* GetCurrent takes a channel number and returns a double for current,
* in Amperes. Channel numbers are printed on the PDP and range from 0-15.
*/
void OperatorControl()
{
while (IsOperatorControl())
{
// Get the current going through channel 7, in Amperes.
// The PDP returns the current in increments of 0.125A.
// At low currents the current readings tend to be less accurate.
SmartDashboard::PutNumber("Current Channel 7", m_pdp.GetCurrent(7));
// Get the voltage going into the PDP, in Volts.
// The PDP returns the voltage in increments of 0.05 Volts.
SmartDashboard::PutNumber("Voltage", m_pdp.GetVoltage());
// Retrieves the temperature of the PDP, in degrees Celsius.
SmartDashboard::PutNumber("Temperature", m_pdp.GetTemperature());
Wait(kUpdatePeriod);
}
}
};
START_ROBOT_CLASS(Robot);