diff --git a/wpilibc/src/main/native/cpp/PowerDistribution.cpp b/wpilibc/src/main/native/cpp/PowerDistribution.cpp index a74821d5b5..21101f2a20 100644 --- a/wpilibc/src/main/native/cpp/PowerDistribution.cpp +++ b/wpilibc/src/main/native/cpp/PowerDistribution.cpp @@ -124,6 +124,13 @@ int PowerDistribution::GetModule() const { return m_module; } +PowerDistribution::ModuleType PowerDistribution::GetType() const { + int32_t status = 0; + auto type = HAL_GetPowerDistributionType(m_handle, &status); + FRC_ReportError(status, "Module {}", m_module); + return static_cast(type); +} + bool PowerDistribution::GetSwitchableChannel() const { int32_t status = 0; bool state = HAL_GetPowerDistributionSwitchableChannel(m_handle, &status); diff --git a/wpilibc/src/main/native/include/frc/PowerDistribution.h b/wpilibc/src/main/native/include/frc/PowerDistribution.h index 3380a31470..e9b5bb60eb 100644 --- a/wpilibc/src/main/native/include/frc/PowerDistribution.h +++ b/wpilibc/src/main/native/include/frc/PowerDistribution.h @@ -100,6 +100,11 @@ class PowerDistribution : public wpi::Sendable, */ int GetModule() const; + /** + * Gets module type. + */ + ModuleType GetType() const; + /** * Gets whether the PDH switchable channel is turned on or off. Returns false * with the CTRE PDP. diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PowerDistribution.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/PowerDistribution.java index 12d9518708..dab84a8585 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/PowerDistribution.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/PowerDistribution.java @@ -152,6 +152,20 @@ public class PowerDistribution implements Sendable, AutoCloseable { return m_module; } + /** + * Gets the module type for this power distribution object. + * + * @return The module type + */ + public ModuleType getType() { + int type = PowerDistributionJNI.getType(m_handle); + if (type == PowerDistributionJNI.REV_TYPE) { + return ModuleType.kRev; + } else { + return ModuleType.kCTRE; + } + } + /** * Gets whether the PDH switchable channel is turned on or off. Returns false with the CTRE PDP. *