From da8c31621abf9febca97de9ac2549ce041ca2fc5 Mon Sep 17 00:00:00 2001 From: Stephen Just Date: Sat, 1 Mar 2025 11:14:37 -0800 Subject: [PATCH] Add the ability to reset the logger state for tests --- .../org/littletonrobotics/junction/Logger.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/akit/src/main/java/org/littletonrobotics/junction/Logger.java b/akit/src/main/java/org/littletonrobotics/junction/Logger.java index 12e050f6..2c27c9da 100644 --- a/akit/src/main/java/org/littletonrobotics/junction/Logger.java +++ b/akit/src/main/java/org/littletonrobotics/junction/Logger.java @@ -65,7 +65,7 @@ public class Logger { private static LogReplaySource replaySource; private static final BlockingQueue receiverQueue = new ArrayBlockingQueue(receiverQueueCapcity); - private static final ReceiverThread receiverThread = new ReceiverThread(receiverQueue); + private static ReceiverThread receiverThread = new ReceiverThread(receiverQueue); private static boolean receiverQueueFault = false; private Logger() { @@ -233,6 +233,21 @@ public static void end() { } } + /** + * Resets the logging system, clearing all data and stopping any receivers. + * This method should only be called during tests to reset the robot state. + */ + public void reset() { + end(); + receiverQueue.clear(); + receiverThread = new ReceiverThread(receiverQueue); + dashboardInputs.clear(); + metadata.clear(); + cycleCount = 0; + urclSupplier = null; + receiverQueueFault = false; + } + /** * Periodic method to be called during the constructor of Robot and each loop * cycle. Updates timestamp, replay entry, and dashboard inputs.