mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-23 01:21:42 +00:00
[wpilib, hal] Add support for getting faults and versions from power distribution (#3794)
This commit is contained in:
123
hal/src/main/java/edu/wpi/first/hal/PowerDistributionFaults.java
Normal file
123
hal/src/main/java/edu/wpi/first/hal/PowerDistributionFaults.java
Normal file
@@ -0,0 +1,123 @@
|
||||
// Copyright (c) FIRST and other WPILib contributors.
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
package edu.wpi.first.hal;
|
||||
|
||||
public class PowerDistributionFaults {
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel0BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel1BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel2BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel3BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel4BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel5BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel6BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel7BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel8BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel9BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel10BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel11BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel12BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel13BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel14BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel15BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel16BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel17BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel18BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel19BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel20BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel21BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel22BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel23BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Brownout;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean CanWarning;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean HardwareFault;
|
||||
|
||||
/**
|
||||
* Constructs from a bitfield.
|
||||
*
|
||||
* @param faults faults
|
||||
*/
|
||||
public PowerDistributionFaults(int faults) {
|
||||
Channel0BreakerFault = (faults & 0x1) != 0;
|
||||
Channel1BreakerFault = (faults & 0x2) != 0;
|
||||
Channel2BreakerFault = (faults & 0x4) != 0;
|
||||
Channel3BreakerFault = (faults & 0x8) != 0;
|
||||
Channel4BreakerFault = (faults & 0x10) != 0;
|
||||
Channel5BreakerFault = (faults & 0x20) != 0;
|
||||
Channel6BreakerFault = (faults & 0x40) != 0;
|
||||
Channel7BreakerFault = (faults & 0x80) != 0;
|
||||
Channel8BreakerFault = (faults & 0x100) != 0;
|
||||
Channel9BreakerFault = (faults & 0x200) != 0;
|
||||
Channel10BreakerFault = (faults & 0x400) != 0;
|
||||
Channel11BreakerFault = (faults & 0x800) != 0;
|
||||
Channel12BreakerFault = (faults & 0x1000) != 0;
|
||||
Channel13BreakerFault = (faults & 0x2000) != 0;
|
||||
Channel14BreakerFault = (faults & 0x4000) != 0;
|
||||
Channel15BreakerFault = (faults & 0x8000) != 0;
|
||||
Channel16BreakerFault = (faults & 0x10000) != 0;
|
||||
Channel17BreakerFault = (faults & 0x20000) != 0;
|
||||
Channel18BreakerFault = (faults & 0x40000) != 0;
|
||||
Channel19BreakerFault = (faults & 0x80000) != 0;
|
||||
Channel20BreakerFault = (faults & 0x100000) != 0;
|
||||
Channel21BreakerFault = (faults & 0x200000) != 0;
|
||||
Channel22BreakerFault = (faults & 0x400000) != 0;
|
||||
Channel23BreakerFault = (faults & 0x800000) != 0;
|
||||
Brownout = (faults & 0x1000000) != 0;
|
||||
CanWarning = (faults & 0x2000000) != 0;
|
||||
HardwareFault = (faults & 0x4000000) != 0;
|
||||
}
|
||||
}
|
||||
@@ -56,4 +56,18 @@ public class PowerDistributionJNI extends JNIWrapper {
|
||||
public static native boolean getSwitchableChannelNoError(int handle);
|
||||
|
||||
public static native void setSwitchableChannelNoError(int handle, boolean enabled);
|
||||
|
||||
public static native int getFaultsNative(int handle);
|
||||
|
||||
public static PowerDistributionFaults getFaults(int handle) {
|
||||
return new PowerDistributionFaults(getFaultsNative(handle));
|
||||
}
|
||||
|
||||
public static native int getStickyFaultsNative(int handle);
|
||||
|
||||
public static PowerDistributionStickyFaults getStickyFaults(int handle) {
|
||||
return new PowerDistributionStickyFaults(getStickyFaultsNative(handle));
|
||||
}
|
||||
|
||||
public static native PowerDistributionVersion getVersion(int handle);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
// Copyright (c) FIRST and other WPILib contributors.
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
package edu.wpi.first.hal;
|
||||
|
||||
public class PowerDistributionStickyFaults {
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel0BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel1BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel2BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel3BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel4BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel5BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel6BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel7BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel8BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel9BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel10BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel11BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel12BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel13BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel14BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel15BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel16BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel17BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel18BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel19BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel20BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel21BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel22BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Channel23BreakerFault;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean Brownout;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean CanWarning;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean CanBusOff;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final boolean HasReset;
|
||||
|
||||
/**
|
||||
* Constructs from a bitfield.
|
||||
*
|
||||
* @param faults faults
|
||||
*/
|
||||
public PowerDistributionStickyFaults(int faults) {
|
||||
Channel0BreakerFault = (faults & 0x1) != 0;
|
||||
Channel1BreakerFault = (faults & 0x2) != 0;
|
||||
Channel2BreakerFault = (faults & 0x4) != 0;
|
||||
Channel3BreakerFault = (faults & 0x8) != 0;
|
||||
Channel4BreakerFault = (faults & 0x10) != 0;
|
||||
Channel5BreakerFault = (faults & 0x20) != 0;
|
||||
Channel6BreakerFault = (faults & 0x40) != 0;
|
||||
Channel7BreakerFault = (faults & 0x80) != 0;
|
||||
Channel8BreakerFault = (faults & 0x100) != 0;
|
||||
Channel9BreakerFault = (faults & 0x200) != 0;
|
||||
Channel10BreakerFault = (faults & 0x400) != 0;
|
||||
Channel11BreakerFault = (faults & 0x800) != 0;
|
||||
Channel12BreakerFault = (faults & 0x1000) != 0;
|
||||
Channel13BreakerFault = (faults & 0x2000) != 0;
|
||||
Channel14BreakerFault = (faults & 0x4000) != 0;
|
||||
Channel15BreakerFault = (faults & 0x8000) != 0;
|
||||
Channel16BreakerFault = (faults & 0x10000) != 0;
|
||||
Channel17BreakerFault = (faults & 0x20000) != 0;
|
||||
Channel18BreakerFault = (faults & 0x40000) != 0;
|
||||
Channel19BreakerFault = (faults & 0x80000) != 0;
|
||||
Channel20BreakerFault = (faults & 0x100000) != 0;
|
||||
Channel21BreakerFault = (faults & 0x200000) != 0;
|
||||
Channel22BreakerFault = (faults & 0x400000) != 0;
|
||||
Channel23BreakerFault = (faults & 0x800000) != 0;
|
||||
Brownout = (faults & 0x1000000) != 0;
|
||||
CanWarning = (faults & 0x2000000) != 0;
|
||||
CanBusOff = (faults & 0x4000000) != 0;
|
||||
HasReset = (faults & 0x8000000) != 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
// Copyright (c) FIRST and other WPILib contributors.
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
package edu.wpi.first.hal;
|
||||
|
||||
public class PowerDistributionVersion {
|
||||
@SuppressWarnings("MemberName")
|
||||
public final int firmwareMajor;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final int firmwareMinor;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final int firmwareFix;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final int hardwareMinor;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final int hardwareMajor;
|
||||
|
||||
@SuppressWarnings("MemberName")
|
||||
public final int uniqueId;
|
||||
|
||||
/**
|
||||
* Constructs a power distribution version (Called from the HAL).
|
||||
*
|
||||
* @param firmwareMajor firmware major
|
||||
* @param firmwareMinor firmware minor
|
||||
* @param firmwareFix firmware fix
|
||||
* @param hardwareMinor hardware minor
|
||||
* @param hardwareMajor hardware major
|
||||
* @param uniqueId unique id
|
||||
*/
|
||||
public PowerDistributionVersion(
|
||||
int firmwareMajor,
|
||||
int firmwareMinor,
|
||||
int firmwareFix,
|
||||
int hardwareMinor,
|
||||
int hardwareMajor,
|
||||
int uniqueId) {
|
||||
this.firmwareMajor = firmwareMajor;
|
||||
this.firmwareMinor = firmwareMinor;
|
||||
this.firmwareFix = firmwareFix;
|
||||
this.hardwareMinor = hardwareMinor;
|
||||
this.hardwareMajor = hardwareMajor;
|
||||
this.uniqueId = uniqueId;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user