From b4d50cb699706970156e48e1da1ac856e98cb515 Mon Sep 17 00:00:00 2001 From: Wesley28w Date: Fri, 17 Apr 2026 17:19:34 -0700 Subject: [PATCH] not optimized --- .../frc/robot/subsystems/Breaker/Breaker.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/frc/robot/subsystems/Breaker/Breaker.java diff --git a/src/main/java/frc/robot/subsystems/Breaker/Breaker.java b/src/main/java/frc/robot/subsystems/Breaker/Breaker.java new file mode 100644 index 0000000..7f7af64 --- /dev/null +++ b/src/main/java/frc/robot/subsystems/Breaker/Breaker.java @@ -0,0 +1,37 @@ +package frc.robot.subsystems.Breaker; + +import java.util.ArrayList; +import java.util.List; + +import edu.wpi.first.wpilibj.PowerDistribution; +import edu.wpi.first.wpilibj2.command.SubsystemBase; + +public class Breaker extends SubsystemBase { + PowerDistribution pDis = new PowerDistribution(); + List currents = new ArrayList<>(); + + public Breaker() { + currents.clear(); + } + + @Override + public void periodic() { + currents.add(getCurrentFromPowerDistribution()); + } + + public double average(double secondsBackward) { + // there is a log for every 20ms and thus 50 indexes for each second + int totalIndexes = (int) secondsBackward * 50; + List trimmedCurrents = currents.subList(currents.size()-totalIndexes, currents.size()); + double sum = 0; + for (double index : trimmedCurrents) { + sum += index; + } + + return sum/trimmedCurrents.size(); + } + + public double getCurrentFromPowerDistribution() { + return pDis.getTotalCurrent(); // not using .getCurrent() and then an arguement for the port you can get just one port + } +} -- 2.39.5