From 4a3586ad885bb3fa924dce40d0d98a19c617d348 Mon Sep 17 00:00:00 2001 From: Abhishrek05 <90010729+Abhishrek05@users.noreply.github.com> Date: Fri, 5 Jan 2024 14:45:15 -0700 Subject: [PATCH] port from 2023 --- src/main/java/frc4388/utility/AprilTag.java | 13 +++++++++++ .../java/frc4388/utility/DeferredBlock.java | 23 +++++++++++++++++++ .../java/frc4388/utility/UtilityStructs.java | 12 ++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/main/java/frc4388/utility/AprilTag.java create mode 100644 src/main/java/frc4388/utility/DeferredBlock.java create mode 100644 src/main/java/frc4388/utility/UtilityStructs.java diff --git a/src/main/java/frc4388/utility/AprilTag.java b/src/main/java/frc4388/utility/AprilTag.java new file mode 100644 index 0000000..c2ad269 --- /dev/null +++ b/src/main/java/frc4388/utility/AprilTag.java @@ -0,0 +1,13 @@ +package frc4388.utility; + +// This is a seperate class in case I want to encode rotation or other +// information about the tag +public class AprilTag { + public final double x, y, z; + + public AprilTag(double _x, double _y, double _z) { + x = _x; + y = _y; + z = _z; + } +} diff --git a/src/main/java/frc4388/utility/DeferredBlock.java b/src/main/java/frc4388/utility/DeferredBlock.java new file mode 100644 index 0000000..20d3c57 --- /dev/null +++ b/src/main/java/frc4388/utility/DeferredBlock.java @@ -0,0 +1,23 @@ +package frc4388.utility; + +import java.util.ArrayList; + +public class DeferredBlock { + private static ArrayList m_blocks = new ArrayList<>(); + private static boolean m_hasRun = false; + + public DeferredBlock(Runnable block) { + m_blocks.add(block); + } + + public static void execute() { + if (m_hasRun) return; + + for (Runnable block : m_blocks) { + block.run(); + } + + m_blocks.clear(); // for garbage collection + m_hasRun = true; + } +} diff --git a/src/main/java/frc4388/utility/UtilityStructs.java b/src/main/java/frc4388/utility/UtilityStructs.java new file mode 100644 index 0000000..e8b10cc --- /dev/null +++ b/src/main/java/frc4388/utility/UtilityStructs.java @@ -0,0 +1,12 @@ +package frc4388.utility; + +public class UtilityStructs { + public static class TimedOutput { + public double leftX = 0.0; + public double leftY = 0.0; + public double rightX = 0.0; + public double rightY = 0.0; + + public long timedOffset = 0; + } +}