[hal] [wpilib] Add initial support for the REV PDH (#3503)

This commit is contained in:
Thad House
2021-08-14 11:44:56 -07:00
committed by GitHub
parent 5d9ae3cdb4
commit 10cc8b89c4
44 changed files with 6697 additions and 287 deletions

View File

@@ -9,7 +9,7 @@ using namespace hal;
namespace hal::init {
void InitializePowerDistributionData() {
static PowerDistributionData spd[kNumPDPChannels];
static PowerDistributionData spd[kNumPDSimModules];
::hal::SimPowerDistributionData = spd;
}
} // namespace hal::init
@@ -19,7 +19,7 @@ void PowerDistributionData::ResetData() {
initialized.Reset(false);
temperature.Reset(0.0);
voltage.Reset(12.0);
for (int i = 0; i < kNumPDPChannels; i++) {
for (int i = 0; i < kNumPDSimChannels; i++) {
current[i].Reset(0.0);
}
}
@@ -39,17 +39,21 @@ DEFINE_CAPI(double, Voltage, voltage)
HAL_SIMDATAVALUE_DEFINE_CAPI_CHANNEL(double, HALSIM, PowerDistributionCurrent,
SimPowerDistributionData, current)
void HALSIM_GetPowerDistributionAllCurrents(int32_t index, double* currents) {
void HALSIM_GetPowerDistributionAllCurrents(int32_t index, double* currents,
int length) {
auto& data = SimPowerDistributionData[index].current;
for (int i = 0; i < kNumPDPChannels; i++) {
int toCopy = (std::min)(length, kNumPDSimChannels);
for (int i = 0; i < toCopy; i++) {
currents[i] = data[i];
}
}
void HALSIM_SetPowerDistributionAllCurrents(int32_t index,
const double* currents) {
const double* currents,
int length) {
auto& data = SimPowerDistributionData[index].current;
for (int i = 0; i < kNumPDPChannels; i++) {
int toCopy = (std::min)(length, kNumPDSimChannels);
for (int i = 0; i < toCopy; i++) {
data[i] = currents[i];
}
}