diff --git a/wpilibc/src/main/native/cpp/shuffleboard/ShuffleboardInstance.cpp b/wpilibc/src/main/native/cpp/shuffleboard/ShuffleboardInstance.cpp index 39e57782de..ab6ca39d4a 100644 --- a/wpilibc/src/main/native/cpp/shuffleboard/ShuffleboardInstance.cpp +++ b/wpilibc/src/main/native/cpp/shuffleboard/ShuffleboardInstance.cpp @@ -7,6 +7,7 @@ #include "frc/shuffleboard/ShuffleboardInstance.h" +#include #include #include #include @@ -27,6 +28,7 @@ ShuffleboardInstance::ShuffleboardInstance(nt::NetworkTableInstance ntInstance) : m_impl(new Impl) { m_impl->rootTable = ntInstance.GetTable(Shuffleboard::kBaseTableName); m_impl->rootMetaTable = m_impl->rootTable->GetSubTable(".metadata"); + HAL_Report(HALUsageReporting::kResourceType_Shuffleboard, 0); } ShuffleboardInstance::~ShuffleboardInstance() {} diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/Shuffleboard.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/Shuffleboard.java index fbce24a7a0..eb77fe50e2 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/Shuffleboard.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/Shuffleboard.java @@ -57,8 +57,6 @@ public final class Shuffleboard { private static final RecordingController recordingController = new RecordingController(NetworkTableInstance.getDefault()); - // TODO usage reporting - private Shuffleboard() { throw new UnsupportedOperationException("This is a utility class and cannot be instantiated"); } diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/ShuffleboardInstance.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/ShuffleboardInstance.java index 7018da003d..264d4edb98 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/ShuffleboardInstance.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/ShuffleboardInstance.java @@ -12,6 +12,8 @@ import java.util.Map; import java.util.Objects; import java.util.function.Consumer; +import edu.wpi.first.hal.FRCNetComm.tResourceType; +import edu.wpi.first.hal.HAL; import edu.wpi.first.networktables.NetworkTable; import edu.wpi.first.networktables.NetworkTableEntry; import edu.wpi.first.networktables.NetworkTableInstance; @@ -24,11 +26,17 @@ final class ShuffleboardInstance implements ShuffleboardRoot { private final NetworkTable m_rootMetaTable; private final NetworkTableEntry m_selectedTabEntry; + /** + * Creates a new Shuffleboard instance. + * + * @param ntInstance the NetworkTables instance to use + */ ShuffleboardInstance(NetworkTableInstance ntInstance) { Objects.requireNonNull(ntInstance, "NetworkTable instance cannot be null"); m_rootTable = ntInstance.getTable(Shuffleboard.kBaseTableName); m_rootMetaTable = m_rootTable.getSubTable(".metadata"); m_selectedTabEntry = m_rootMetaTable.getEntry("Selected"); + HAL.report(tResourceType.kResourceType_Shuffleboard, 0); } @Override