Files
allwpilib/robotpyExamples/CANPDP/robot.py

57 lines
2.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
#
# 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.
#
import wpilib
class MyRobot(wpilib.TimedRobot):
"""
This is a sample program showing how to retrieve information from the Power
Distribution Panel via CAN. The information will be displayed under variables
through the SmartDashboard.
"""
def __init__(self):
"""Robot initialization function"""
super().__init__()
# Object for dealing with the Power Distribution Panel (PDP).
self.pdp = wpilib.PowerDistribution(0)
# Put the PDP itself to the dashboard
wpilib.SmartDashboard.putData("PDP", self.pdp)
def robotPeriodic(self):
# Get the current going through channel 7, in Amperes.
# The PDP returns the current in increments of 0.125A.
# At low currents the current readings tend to be less accurate.
current7 = self.pdp.getCurrent(7)
wpilib.SmartDashboard.putNumber("Current Channel 7", current7)
# Get the voltage going into the PDP, in Volts.
# The PDP returns the voltage in increments of 0.05 Volts.
voltage = self.pdp.getVoltage()
wpilib.SmartDashboard.putNumber("Voltage", voltage)
# Retrieves the temperature of the PDP, in degrees Celsius.
temperatureCelsius = self.pdp.getTemperature()
wpilib.SmartDashboard.putNumber("Temperature", temperatureCelsius)
# Get the total current of all channels.
totalCurrent = self.pdp.getTotalCurrent()
wpilib.SmartDashboard.putNumber("Total Current", totalCurrent)
# Get the total power of all channels.
# Power is the bus voltage multiplied by the current with the units Watts.
totalPower = self.pdp.getTotalPower()
wpilib.SmartDashboard.putNumber("Total Power", totalPower)
# Get the total energy of all channels.
# Energy is the power summed over time with units Joules.
totalEnergy = self.pdp.getTotalEnergy()
wpilib.SmartDashboard.putNumber("Total Energy", totalEnergy)