2014-05-30 14:04:05 -04:00
|
|
|
#include "HAL/PDP.hpp"
|
|
|
|
|
#include "ctre/PDP.h"
|
2015-06-16 16:47:35 -04:00
|
|
|
//static PDP pdp;
|
2014-05-30 14:04:05 -04:00
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
static const int NUM_MODULE_NUMBERS = 63;
|
|
|
|
|
|
|
|
|
|
PDP *pdp[NUM_MODULE_NUMBERS] = { NULL };
|
|
|
|
|
|
|
|
|
|
void initializePDP(int module) {
|
|
|
|
|
if(!pdp[module]) {
|
|
|
|
|
pdp[module] = new PDP(module);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double getPDPTemperature(int32_t *status, uint8_t module) {
|
2014-05-30 14:04:05 -04:00
|
|
|
double temperature;
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
*status = pdp[module]->GetTemperature(temperature);
|
2014-05-30 14:04:05 -04:00
|
|
|
|
|
|
|
|
return temperature;
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
double getPDPVoltage(int32_t *status, uint8_t module) {
|
2014-05-30 14:04:05 -04:00
|
|
|
double voltage;
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
*status = pdp[module]->GetVoltage(voltage);
|
2014-05-30 14:04:05 -04:00
|
|
|
|
|
|
|
|
return voltage;
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
double getPDPChannelCurrent(uint8_t channel, int32_t *status, uint8_t module) {
|
2014-05-30 14:04:05 -04:00
|
|
|
double current;
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
*status = pdp[module]->GetChannelCurrent(channel, current);
|
2014-05-30 14:04:05 -04:00
|
|
|
|
|
|
|
|
return current;
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
double getPDPTotalCurrent(int32_t *status, uint8_t module) {
|
2014-11-25 00:52:41 -05:00
|
|
|
double current;
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
*status = pdp[module]->GetTotalCurrent(current);
|
2014-11-25 00:52:41 -05:00
|
|
|
|
|
|
|
|
return current;
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
double getPDPTotalPower(int32_t *status, uint8_t module) {
|
2014-11-25 00:52:41 -05:00
|
|
|
double power;
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
*status = pdp[module]->GetTotalPower(power);
|
2014-11-25 00:52:41 -05:00
|
|
|
|
|
|
|
|
return power;
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
double getPDPTotalEnergy(int32_t *status, uint8_t module) {
|
2014-11-25 00:52:41 -05:00
|
|
|
double energy;
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
*status = pdp[module]->GetTotalEnergy(energy);
|
2014-11-25 00:52:41 -05:00
|
|
|
|
|
|
|
|
return energy;
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
void resetPDPTotalEnergy(int32_t *status, uint8_t module) {
|
|
|
|
|
*status = pdp[module]->ResetEnergy();
|
2014-11-25 00:52:41 -05:00
|
|
|
}
|
|
|
|
|
|
2015-06-16 16:47:35 -04:00
|
|
|
void clearPDPStickyFaults(int32_t *status, uint8_t module) {
|
|
|
|
|
*status = pdp[module]->ClearStickyFaults();
|
2014-11-25 00:52:41 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|