Class PowerDistribution

java.lang.Object
edu.wpi.first.wpilibj.PowerDistribution
All Implemented Interfaces:
Sendable, AutoCloseable

public class PowerDistribution extends Object implements Sendable, AutoCloseable
Class for getting voltage, current, temperature, power and energy from the CTRE Power Distribution Panel (PDP) or REV Power Distribution Hub (PDH) over CAN.
  • Field Details

  • Constructor Details

    • PowerDistribution

      public PowerDistribution(int module, PowerDistribution.ModuleType moduleType)
      Constructs a PowerDistribution object.
      Parameters:
      module - The CAN ID of the PDP/PDH.
      moduleType - Module type (CTRE or REV).
    • PowerDistribution

      Constructs a PowerDistribution object.

      Detects the connected PDP/PDH using the default CAN ID (0 for CTRE and 1 for REV).

  • Method Details

    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • getNumChannels

      public int getNumChannels()
      Gets the number of channels for this power distribution object.
      Returns:
      Number of output channels (16 for PDP, 24 for PDH).
    • getVoltage

      public double getVoltage()
      Query the input voltage of the PDP/PDH.
      Returns:
      The voltage in volts
    • getTemperature

      public double getTemperature()
      Query the temperature of the PDP.

      Not supported on the Rev PDH and returns 0.

      Returns:
      The temperature in degrees Celsius
    • getCurrent

      public double getCurrent(int channel)
      Query the current of a single channel of the PDP/PDH.
      Parameters:
      channel - The channel (0-15 for PDP, 0-23 for PDH) to query
      Returns:
      The current of the channel in Amperes
    • getAllCurrents

      public double[] getAllCurrents()
      Query all currents of the PDP.
      Returns:
      The current of each channel in Amperes
    • getTotalCurrent

      public double getTotalCurrent()
      Query the current of all monitored channels.
      Returns:
      The current of all the channels in Amperes
    • getTotalPower

      public double getTotalPower()
      Query the total power drawn from the monitored channels of the PDP.

      Not supported on the Rev PDH and returns 0.

      Returns:
      the total power in Watts
    • getTotalEnergy

      public double getTotalEnergy()
      Query the total energy drawn from the monitored channels of the PDP.

      Not supported on the Rev PDH and returns 0.

      Returns:
      the total energy in Joules
    • resetTotalEnergy

      public void resetTotalEnergy()
      Reset the total energy to 0 of the PDP.

      Not supported on the Rev PDH and does nothing.

    • clearStickyFaults

      public void clearStickyFaults()
      Clear all PDP/PDH sticky faults.
    • getModule

      public int getModule()
      Gets module number (CAN ID).
      Returns:
      The module number (CAN ID).
    • getType

      Gets the module type for this power distribution object.
      Returns:
      The module type
    • getSwitchableChannel

      public boolean getSwitchableChannel()
      Gets whether the PDH switchable channel is turned on or off. Returns false with the CTRE PDP.
      Returns:
      The output state of the PDH switchable channel
    • setSwitchableChannel

      public void setSwitchableChannel(boolean enabled)
      Sets the PDH switchable channel on or off. Does nothing with the CTRE PDP.
      Parameters:
      enabled - Whether to turn the PDH switchable channel on or off
    • getVersion

      Returns the power distribution version number.
      Returns:
      The power distribution version number.
    • getFaults

      Returns the power distribution faults.
      Returns:
      The power distribution faults.
    • getStickyFaults

      Returns the power distribution sticky faults.
      Returns:
      The power distribution sticky faults.
    • initSendable

      public void initSendable(SendableBuilder builder)
      Description copied from interface: Sendable
      Initializes this Sendable object.
      Specified by:
      initSendable in interface Sendable
      Parameters:
      builder - sendable builder