From 6f0670d39a82eb69261cc37cbccf4269c3121d85 Mon Sep 17 00:00:00 2001 From: WeWaWu Date: Tue, 10 Feb 2026 20:30:10 -0800 Subject: [PATCH] Added auto registery, I think. At least the robot builds --- .run/Build Robot.run.xml | 24 +++++++++++++++++++ .../java/xbot/common/command/BaseRobot.java | 12 +++++++--- .../xbot/common/command/BaseSubsystem.java | 17 ++++++------- .../common/command/DataFrameRegistry.java | 14 +++++++++++ .../common/properties/IPropertySupport.java | 2 ++ 5 files changed, 56 insertions(+), 13 deletions(-) create mode 100644 .run/Build Robot.run.xml create mode 100644 src/main/java/xbot/common/command/DataFrameRegistry.java diff --git a/.run/Build Robot.run.xml b/.run/Build Robot.run.xml new file mode 100644 index 000000000..21ee0a051 --- /dev/null +++ b/.run/Build Robot.run.xml @@ -0,0 +1,24 @@ + + + + + + + true + true + false + false + + + \ No newline at end of file diff --git a/src/main/java/xbot/common/command/BaseRobot.java b/src/main/java/xbot/common/command/BaseRobot.java index 0a76a9e14..eaaf62f83 100644 --- a/src/main/java/xbot/common/command/BaseRobot.java +++ b/src/main/java/xbot/common/command/BaseRobot.java @@ -262,9 +262,10 @@ protected void sharedPeriodic() { // Then, refresh any Subsystem or other components that implement DataFrameRefreshable. double dataFrameStart = getPerformanceTimestampInMs(); - for (DataFrameRefreshable refreshable : dataFrameRefreshables) { - refreshable.refreshDataFrame(); - } + refreshAllSubsystems(); +// for (DataFrameRefreshable refreshable : dataFrameRefreshables) { +// refreshable.refreshDataFrame(); +// } double dataFrameEnd = getPerformanceTimestampInMs(); Logger.recordOutput("RefreshDevicesMs", dataFrameEnd - dataFrameStart); @@ -276,6 +277,11 @@ protected void sharedPeriodic() { outsidePeriodicStart = getPerformanceTimestampInMs(); } + public void refreshAllSubsystems() { + for (BaseSubsystem subsystem : DataFrameRegistry.getAllSubsystems()) { + subsystem.refreshDataFrame(); + } + } @Override public void simulationInit() { diff --git a/src/main/java/xbot/common/command/BaseSubsystem.java b/src/main/java/xbot/common/command/BaseSubsystem.java index 74d4d3bea..00b570b1f 100644 --- a/src/main/java/xbot/common/command/BaseSubsystem.java +++ b/src/main/java/xbot/common/command/BaseSubsystem.java @@ -1,8 +1,5 @@ package xbot.common.command; -import java.util.ArrayList; -import java.util.List; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -15,20 +12,23 @@ public abstract class BaseSubsystem extends SubsystemBase implements IPropertySu protected final Logger log; protected final AKitLogger aKitLog; - protected final List dataFrameRefreshables = new ArrayList<>(); +// protected final List dataFrameRefreshables = new ArrayList<>(); public BaseSubsystem() { + super(); log = LogManager.getLogger(this.getName()); aKitLog = new AKitLogger(this); + + DataFrameRegistry.registerSubsystem(this); } public String getPrefix() { return this.getName() + "/"; } - protected void registerDataFrameRefreshable(DataFrameRefreshable refreshable) { - dataFrameRefreshables.add(refreshable); - } +// protected void registerDataFrameRefreshable(DataFrameRefreshable refreshable) { +// dataFrameRefreshables.add(refreshable); +// } /** * This method is called on each {@link edu.wpi.first.wpilibj2.command.CommandScheduler} loop. @@ -43,8 +43,5 @@ public void periodic() { @Override public void refreshDataFrame() { - for (DataFrameRefreshable refreshable : dataFrameRefreshables) { - refreshable.refreshDataFrame(); - } } } diff --git a/src/main/java/xbot/common/command/DataFrameRegistry.java b/src/main/java/xbot/common/command/DataFrameRegistry.java new file mode 100644 index 000000000..2d7937306 --- /dev/null +++ b/src/main/java/xbot/common/command/DataFrameRegistry.java @@ -0,0 +1,14 @@ +package xbot.common.command; + +import java.util.ArrayList; +import java.util.List; + +public final class DataFrameRegistry { + private static final List subsystems = new ArrayList<>(); + public static void registerSubsystem(BaseSubsystem s) { + subsystems.add(s); + } + public static List getAllSubsystems() { + return subsystems; + } +} \ No newline at end of file diff --git a/src/main/java/xbot/common/properties/IPropertySupport.java b/src/main/java/xbot/common/properties/IPropertySupport.java index cdabbcf7e..c231e9373 100644 --- a/src/main/java/xbot/common/properties/IPropertySupport.java +++ b/src/main/java/xbot/common/properties/IPropertySupport.java @@ -2,4 +2,6 @@ public interface IPropertySupport { public String getPrefix(); + +// void refreshDataFrame(); } \ No newline at end of file