[wpilib] Remove automatic PD type from module type enum (#3732)

Using automatic type doesn't work with any module number, so the API was confusing.
This commit is contained in:
Thad House
2021-11-23 23:03:45 -08:00
committed by GitHub
parent da90c1cd2c
commit 4b1defc8d8
3 changed files with 24 additions and 11 deletions

View File

@@ -15,9 +15,6 @@
#include "frc/Errors.h"
#include "frc/SensorUtil.h"
static_assert(static_cast<HAL_PowerDistributionType>(
frc::PowerDistribution::ModuleType::kAutomatic) ==
HAL_PowerDistributionType::HAL_PowerDistributionType_kAutomatic);
static_assert(static_cast<HAL_PowerDistributionType>(
frc::PowerDistribution::ModuleType::kCTRE) ==
HAL_PowerDistributionType::HAL_PowerDistributionType_kCTRE);
@@ -29,8 +26,21 @@ static_assert(frc::PowerDistribution::kDefaultModule ==
using namespace frc;
PowerDistribution::PowerDistribution()
: PowerDistribution(-1, ModuleType::kAutomatic) {}
PowerDistribution::PowerDistribution() {
auto stack = wpi::GetStackTrace(1);
int32_t status = 0;
m_handle = HAL_InitializePowerDistribution(
kDefaultModule,
HAL_PowerDistributionType::HAL_PowerDistributionType_kAutomatic,
stack.c_str(), &status);
FRC_CheckErrorStatus(status, "Module {}", kDefaultModule);
m_module = HAL_GetPowerDistributionModuleNumber(m_handle, &status);
FRC_ReportError(status, "Module {}", m_module);
HAL_Report(HALUsageReporting::kResourceType_PDP, m_module + 1);
wpi::SendableRegistry::AddLW(this, "PowerDistribution", m_module);
}
PowerDistribution::PowerDistribution(int module, ModuleType moduleType) {
auto stack = wpi::GetStackTrace(1);