mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-01 02:41:48 +00:00
[wpilib] Add method to get breaker fault at a specific channel in PowerDistribution[Sticky]Faults (#5521)
Co-authored-by: Ryan Blue <ryanzblue@gmail.com>
This commit is contained in:
@@ -60,6 +60,69 @@ public class PowerDistributionFaults {
|
||||
|
||||
public final boolean HardwareFault;
|
||||
|
||||
/**
|
||||
* Gets whether there is a breaker fault at the specified channel.
|
||||
*
|
||||
* @param channel Channel to check for faults.
|
||||
* @return True if there is a breaker fault at the channel, otherwise false.
|
||||
* @throws IndexOutOfBoundsException if the provided channel is outside of the range supported by
|
||||
* the hardware.
|
||||
*/
|
||||
public final boolean getBreakerFault(int channel) {
|
||||
switch (channel) {
|
||||
case 0:
|
||||
return Channel0BreakerFault;
|
||||
case 1:
|
||||
return Channel1BreakerFault;
|
||||
case 2:
|
||||
return Channel2BreakerFault;
|
||||
case 3:
|
||||
return Channel3BreakerFault;
|
||||
case 4:
|
||||
return Channel4BreakerFault;
|
||||
case 5:
|
||||
return Channel5BreakerFault;
|
||||
case 6:
|
||||
return Channel6BreakerFault;
|
||||
case 7:
|
||||
return Channel7BreakerFault;
|
||||
case 8:
|
||||
return Channel8BreakerFault;
|
||||
case 9:
|
||||
return Channel9BreakerFault;
|
||||
case 10:
|
||||
return Channel10BreakerFault;
|
||||
case 11:
|
||||
return Channel11BreakerFault;
|
||||
case 12:
|
||||
return Channel12BreakerFault;
|
||||
case 13:
|
||||
return Channel13BreakerFault;
|
||||
case 14:
|
||||
return Channel14BreakerFault;
|
||||
case 15:
|
||||
return Channel15BreakerFault;
|
||||
case 16:
|
||||
return Channel16BreakerFault;
|
||||
case 17:
|
||||
return Channel17BreakerFault;
|
||||
case 18:
|
||||
return Channel18BreakerFault;
|
||||
case 19:
|
||||
return Channel19BreakerFault;
|
||||
case 20:
|
||||
return Channel20BreakerFault;
|
||||
case 21:
|
||||
return Channel21BreakerFault;
|
||||
case 22:
|
||||
return Channel22BreakerFault;
|
||||
case 23:
|
||||
return Channel23BreakerFault;
|
||||
default:
|
||||
throw new IndexOutOfBoundsException("Power distribution fault channel out of bounds!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs from a bitfield.
|
||||
*
|
||||
|
||||
@@ -62,6 +62,69 @@ public class PowerDistributionStickyFaults {
|
||||
|
||||
public final boolean HasReset;
|
||||
|
||||
/**
|
||||
* Gets whether there is a sticky breaker fault at the specified channel.
|
||||
*
|
||||
* @param channel Channel to check for sticky faults.
|
||||
* @return True if there is a sticky breaker fault at the channel, otherwise false.
|
||||
* @throws IndexOutOfBoundsException if the provided channel is outside of the range supported by
|
||||
* the hardware.
|
||||
*/
|
||||
public final boolean getBreakerFault(int channel) {
|
||||
switch (channel) {
|
||||
case 0:
|
||||
return Channel0BreakerFault;
|
||||
case 1:
|
||||
return Channel1BreakerFault;
|
||||
case 2:
|
||||
return Channel2BreakerFault;
|
||||
case 3:
|
||||
return Channel3BreakerFault;
|
||||
case 4:
|
||||
return Channel4BreakerFault;
|
||||
case 5:
|
||||
return Channel5BreakerFault;
|
||||
case 6:
|
||||
return Channel6BreakerFault;
|
||||
case 7:
|
||||
return Channel7BreakerFault;
|
||||
case 8:
|
||||
return Channel8BreakerFault;
|
||||
case 9:
|
||||
return Channel9BreakerFault;
|
||||
case 10:
|
||||
return Channel10BreakerFault;
|
||||
case 11:
|
||||
return Channel11BreakerFault;
|
||||
case 12:
|
||||
return Channel12BreakerFault;
|
||||
case 13:
|
||||
return Channel13BreakerFault;
|
||||
case 14:
|
||||
return Channel14BreakerFault;
|
||||
case 15:
|
||||
return Channel15BreakerFault;
|
||||
case 16:
|
||||
return Channel16BreakerFault;
|
||||
case 17:
|
||||
return Channel17BreakerFault;
|
||||
case 18:
|
||||
return Channel18BreakerFault;
|
||||
case 19:
|
||||
return Channel19BreakerFault;
|
||||
case 20:
|
||||
return Channel20BreakerFault;
|
||||
case 21:
|
||||
return Channel21BreakerFault;
|
||||
case 22:
|
||||
return Channel22BreakerFault;
|
||||
case 23:
|
||||
return Channel23BreakerFault;
|
||||
default:
|
||||
throw new IndexOutOfBoundsException("Power distribution fault channel out of bounds!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs from a bitfield.
|
||||
*
|
||||
|
||||
@@ -50,6 +50,53 @@ public class REVPHFaults {
|
||||
|
||||
public final boolean HardwareFault;
|
||||
|
||||
/**
|
||||
* Gets whether there is a fault at the specified channel.
|
||||
*
|
||||
* @param channel Channel to check for faults.
|
||||
* @return True if a a fault exists at the channel, otherwise false.
|
||||
* @throws IndexOutOfBoundsException if the provided channel is outside of the range supported by
|
||||
* the hardware.
|
||||
*/
|
||||
public final boolean getChannelFault(int channel) {
|
||||
switch (channel) {
|
||||
case 0:
|
||||
return Channel0Fault;
|
||||
case 1:
|
||||
return Channel1Fault;
|
||||
case 2:
|
||||
return Channel2Fault;
|
||||
case 3:
|
||||
return Channel3Fault;
|
||||
case 4:
|
||||
return Channel4Fault;
|
||||
case 5:
|
||||
return Channel5Fault;
|
||||
case 6:
|
||||
return Channel6Fault;
|
||||
case 7:
|
||||
return Channel7Fault;
|
||||
case 8:
|
||||
return Channel8Fault;
|
||||
case 9:
|
||||
return Channel9Fault;
|
||||
case 10:
|
||||
return Channel10Fault;
|
||||
case 11:
|
||||
return Channel11Fault;
|
||||
case 12:
|
||||
return Channel12Fault;
|
||||
case 13:
|
||||
return Channel13Fault;
|
||||
case 14:
|
||||
return Channel14Fault;
|
||||
case 15:
|
||||
return Channel15Fault;
|
||||
default:
|
||||
throw new IndexOutOfBoundsException("Pneumatics fault channel out of bounds!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called from HAL to construct.
|
||||
*
|
||||
|
||||
@@ -339,6 +339,46 @@ PneumaticHub::StickyFaults PneumaticHub::GetStickyFaults() const {
|
||||
return stickyFaults;
|
||||
}
|
||||
|
||||
bool PneumaticHub::Faults::GetChannelFault(int channel) const {
|
||||
switch (channel) {
|
||||
case 0:
|
||||
return Channel0Fault != 0;
|
||||
case 1:
|
||||
return Channel1Fault != 0;
|
||||
case 2:
|
||||
return Channel2Fault != 0;
|
||||
case 3:
|
||||
return Channel3Fault != 0;
|
||||
case 4:
|
||||
return Channel4Fault != 0;
|
||||
case 5:
|
||||
return Channel5Fault != 0;
|
||||
case 6:
|
||||
return Channel6Fault != 0;
|
||||
case 7:
|
||||
return Channel7Fault != 0;
|
||||
case 8:
|
||||
return Channel8Fault != 0;
|
||||
case 9:
|
||||
return Channel9Fault != 0;
|
||||
case 10:
|
||||
return Channel10Fault != 0;
|
||||
case 11:
|
||||
return Channel11Fault != 0;
|
||||
case 12:
|
||||
return Channel12Fault != 0;
|
||||
case 13:
|
||||
return Channel13Fault != 0;
|
||||
case 14:
|
||||
return Channel14Fault != 0;
|
||||
case 15:
|
||||
return Channel15Fault != 0;
|
||||
default:
|
||||
throw FRC_MakeError(err::ChannelIndexOutOfRange,
|
||||
"Pneumatics fault channel out of bounds!");
|
||||
}
|
||||
}
|
||||
|
||||
void PneumaticHub::ClearStickyFaults() {
|
||||
int32_t status = 0;
|
||||
HAL_ClearREVPHStickyFaults(m_handle, &status);
|
||||
|
||||
@@ -172,6 +172,118 @@ PowerDistribution::Faults PowerDistribution::GetFaults() const {
|
||||
return faults;
|
||||
}
|
||||
|
||||
bool PowerDistribution::Faults::GetBreakerFault(int channel) const {
|
||||
switch (channel) {
|
||||
case 0:
|
||||
return Channel0BreakerFault != 0;
|
||||
case 1:
|
||||
return Channel1BreakerFault != 0;
|
||||
case 2:
|
||||
return Channel2BreakerFault != 0;
|
||||
case 3:
|
||||
return Channel3BreakerFault != 0;
|
||||
case 4:
|
||||
return Channel4BreakerFault != 0;
|
||||
case 5:
|
||||
return Channel5BreakerFault != 0;
|
||||
case 6:
|
||||
return Channel6BreakerFault != 0;
|
||||
case 7:
|
||||
return Channel7BreakerFault != 0;
|
||||
case 8:
|
||||
return Channel8BreakerFault != 0;
|
||||
case 9:
|
||||
return Channel9BreakerFault != 0;
|
||||
case 10:
|
||||
return Channel10BreakerFault != 0;
|
||||
case 11:
|
||||
return Channel11BreakerFault != 0;
|
||||
case 12:
|
||||
return Channel12BreakerFault != 0;
|
||||
case 13:
|
||||
return Channel13BreakerFault != 0;
|
||||
case 14:
|
||||
return Channel14BreakerFault != 0;
|
||||
case 15:
|
||||
return Channel15BreakerFault != 0;
|
||||
case 16:
|
||||
return Channel16BreakerFault != 0;
|
||||
case 17:
|
||||
return Channel17BreakerFault != 0;
|
||||
case 18:
|
||||
return Channel18BreakerFault != 0;
|
||||
case 19:
|
||||
return Channel19BreakerFault != 0;
|
||||
case 20:
|
||||
return Channel20BreakerFault != 0;
|
||||
case 21:
|
||||
return Channel21BreakerFault != 0;
|
||||
case 22:
|
||||
return Channel22BreakerFault != 0;
|
||||
case 23:
|
||||
return Channel23BreakerFault != 0;
|
||||
default:
|
||||
throw FRC_MakeError(err::ChannelIndexOutOfRange,
|
||||
"Power distribution fault channel out of bounds!");
|
||||
}
|
||||
}
|
||||
|
||||
bool PowerDistribution::StickyFaults::GetBreakerFault(int channel) const {
|
||||
switch (channel) {
|
||||
case 0:
|
||||
return Channel0BreakerFault != 0;
|
||||
case 1:
|
||||
return Channel1BreakerFault != 0;
|
||||
case 2:
|
||||
return Channel2BreakerFault != 0;
|
||||
case 3:
|
||||
return Channel3BreakerFault != 0;
|
||||
case 4:
|
||||
return Channel4BreakerFault != 0;
|
||||
case 5:
|
||||
return Channel5BreakerFault != 0;
|
||||
case 6:
|
||||
return Channel6BreakerFault != 0;
|
||||
case 7:
|
||||
return Channel7BreakerFault != 0;
|
||||
case 8:
|
||||
return Channel8BreakerFault != 0;
|
||||
case 9:
|
||||
return Channel9BreakerFault != 0;
|
||||
case 10:
|
||||
return Channel10BreakerFault != 0;
|
||||
case 11:
|
||||
return Channel11BreakerFault != 0;
|
||||
case 12:
|
||||
return Channel12BreakerFault != 0;
|
||||
case 13:
|
||||
return Channel13BreakerFault != 0;
|
||||
case 14:
|
||||
return Channel14BreakerFault != 0;
|
||||
case 15:
|
||||
return Channel15BreakerFault != 0;
|
||||
case 16:
|
||||
return Channel16BreakerFault != 0;
|
||||
case 17:
|
||||
return Channel17BreakerFault != 0;
|
||||
case 18:
|
||||
return Channel18BreakerFault != 0;
|
||||
case 19:
|
||||
return Channel19BreakerFault != 0;
|
||||
case 20:
|
||||
return Channel20BreakerFault != 0;
|
||||
case 21:
|
||||
return Channel21BreakerFault != 0;
|
||||
case 22:
|
||||
return Channel22BreakerFault != 0;
|
||||
case 23:
|
||||
return Channel23BreakerFault != 0;
|
||||
default:
|
||||
throw FRC_MakeError(err::ChannelIndexOutOfRange,
|
||||
"Power distribution fault channel out of bounds!");
|
||||
}
|
||||
}
|
||||
|
||||
PowerDistribution::StickyFaults PowerDistribution::GetStickyFaults() const {
|
||||
int32_t status = 0;
|
||||
HAL_PowerDistributionStickyFaults halStickyFaults;
|
||||
|
||||
@@ -158,6 +158,15 @@ class PneumaticHub : public PneumaticsBase {
|
||||
uint32_t Brownout : 1;
|
||||
uint32_t CanWarning : 1;
|
||||
uint32_t HardwareFault : 1;
|
||||
|
||||
/**
|
||||
* Gets whether there is a fault at the specified channel.
|
||||
* @param channel Channel to check for faults.
|
||||
* @return True if a a fault exists at the channel, otherwise false.
|
||||
* @throws A ChannelIndexOutOfRange error if the provided channel is outside
|
||||
* of the range supported by the hardware.
|
||||
*/
|
||||
bool GetChannelFault(int channel) const;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -159,6 +159,15 @@ class PowerDistribution : public wpi::Sendable,
|
||||
uint32_t Brownout : 1;
|
||||
uint32_t CanWarning : 1;
|
||||
uint32_t HardwareFault : 1;
|
||||
|
||||
/**
|
||||
* Gets whether there is a breaker fault at a specified channel.
|
||||
* @param channel Channel to check for faults.
|
||||
* @return If there is a breaker fault.
|
||||
* @throws A ChannelIndexOutOfRange error if the given int is outside of the
|
||||
* range supported by the hardware.
|
||||
*/
|
||||
bool GetBreakerFault(int channel) const;
|
||||
};
|
||||
|
||||
Faults GetFaults() const;
|
||||
@@ -192,6 +201,16 @@ class PowerDistribution : public wpi::Sendable,
|
||||
uint32_t CanWarning : 1;
|
||||
uint32_t CanBusOff : 1;
|
||||
uint32_t HasReset : 1;
|
||||
|
||||
/**
|
||||
* Gets whether there is a sticky breaker fault at the specified channel.
|
||||
* @param channel Index to check for sticky faults.
|
||||
* @return True if there is a sticky breaker fault at the channel, otherwise
|
||||
* false.
|
||||
* @throws A ChannelIndexOutOfRange error if the provided channel is outside
|
||||
* of the range supported by the hardware.
|
||||
*/
|
||||
bool GetBreakerFault(int channel) const;
|
||||
};
|
||||
|
||||
StickyFaults GetStickyFaults() const;
|
||||
|
||||
Reference in New Issue
Block a user