[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:
Asa Anderson
2023-12-23 12:14:13 -08:00
committed by GitHub
parent ef1cb3f41e
commit 1dba26c937
7 changed files with 353 additions and 0 deletions

View File

@@ -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.
*

View File

@@ -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.
*

View File

@@ -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.
*