mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[wpilib] Fix usage reporting for static classes (#6090)
This commit is contained in:
@@ -19,8 +19,6 @@ using namespace frc;
|
||||
|
||||
namespace {
|
||||
struct Instance {
|
||||
Instance() { HAL_Report(HALUsageReporting::kResourceType_SmartDashboard, 0); }
|
||||
|
||||
detail::ListenerExecutor listenerExecutor;
|
||||
std::shared_ptr<nt::NetworkTable> table =
|
||||
nt::NetworkTableInstance::GetDefault().GetTable("SmartDashboard");
|
||||
@@ -46,6 +44,8 @@ void ResetSmartDashboardInstance() {
|
||||
} // namespace frc::impl
|
||||
#endif
|
||||
|
||||
static bool gReported = false;
|
||||
|
||||
void SmartDashboard::init() {
|
||||
GetInstance();
|
||||
}
|
||||
@@ -59,18 +59,22 @@ std::vector<std::string> SmartDashboard::GetKeys(int types) {
|
||||
}
|
||||
|
||||
void SmartDashboard::SetPersistent(std::string_view key) {
|
||||
GetInstance().table->GetEntry(key).SetPersistent();
|
||||
GetEntry(key).SetPersistent();
|
||||
}
|
||||
|
||||
void SmartDashboard::ClearPersistent(std::string_view key) {
|
||||
GetInstance().table->GetEntry(key).ClearPersistent();
|
||||
GetEntry(key).ClearPersistent();
|
||||
}
|
||||
|
||||
bool SmartDashboard::IsPersistent(std::string_view key) {
|
||||
return GetInstance().table->GetEntry(key).IsPersistent();
|
||||
return GetEntry(key).IsPersistent();
|
||||
}
|
||||
|
||||
nt::NetworkTableEntry SmartDashboard::GetEntry(std::string_view key) {
|
||||
if (!gReported) {
|
||||
HAL_Report(HALUsageReporting::kResourceType_SmartDashboard, 0);
|
||||
gReported = true;
|
||||
}
|
||||
return GetInstance().table->GetEntry(key);
|
||||
}
|
||||
|
||||
@@ -78,6 +82,10 @@ void SmartDashboard::PutData(std::string_view key, wpi::Sendable* data) {
|
||||
if (!data) {
|
||||
throw FRC_MakeError(err::NullParameter, "value");
|
||||
}
|
||||
if (!gReported) {
|
||||
HAL_Report(HALUsageReporting::kResourceType_SmartDashboard, 0);
|
||||
gReported = true;
|
||||
}
|
||||
auto& inst = GetInstance();
|
||||
std::scoped_lock lock(inst.tablesToDataMutex);
|
||||
auto& uid = inst.tablesToData[key];
|
||||
@@ -120,7 +128,7 @@ bool SmartDashboard::PutBoolean(std::string_view keyName, bool value) {
|
||||
|
||||
bool SmartDashboard::SetDefaultBoolean(std::string_view key,
|
||||
bool defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultBoolean(defaultValue);
|
||||
return GetEntry(key).SetDefaultBoolean(defaultValue);
|
||||
}
|
||||
|
||||
bool SmartDashboard::GetBoolean(std::string_view keyName, bool defaultValue) {
|
||||
@@ -133,7 +141,7 @@ bool SmartDashboard::PutNumber(std::string_view keyName, double value) {
|
||||
|
||||
bool SmartDashboard::SetDefaultNumber(std::string_view key,
|
||||
double defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultDouble(defaultValue);
|
||||
return GetEntry(key).SetDefaultDouble(defaultValue);
|
||||
}
|
||||
|
||||
double SmartDashboard::GetNumber(std::string_view keyName,
|
||||
@@ -148,7 +156,7 @@ bool SmartDashboard::PutString(std::string_view keyName,
|
||||
|
||||
bool SmartDashboard::SetDefaultString(std::string_view key,
|
||||
std::string_view defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultString(defaultValue);
|
||||
return GetEntry(key).SetDefaultString(defaultValue);
|
||||
}
|
||||
|
||||
std::string SmartDashboard::GetString(std::string_view keyName,
|
||||
@@ -158,63 +166,62 @@ std::string SmartDashboard::GetString(std::string_view keyName,
|
||||
|
||||
bool SmartDashboard::PutBooleanArray(std::string_view key,
|
||||
std::span<const int> value) {
|
||||
return GetInstance().table->GetEntry(key).SetBooleanArray(value);
|
||||
return GetEntry(key).SetBooleanArray(value);
|
||||
}
|
||||
|
||||
bool SmartDashboard::SetDefaultBooleanArray(std::string_view key,
|
||||
std::span<const int> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultBooleanArray(
|
||||
defaultValue);
|
||||
return GetEntry(key).SetDefaultBooleanArray(defaultValue);
|
||||
}
|
||||
|
||||
std::vector<int> SmartDashboard::GetBooleanArray(
|
||||
std::string_view key, std::span<const int> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).GetBooleanArray(defaultValue);
|
||||
return GetEntry(key).GetBooleanArray(defaultValue);
|
||||
}
|
||||
|
||||
bool SmartDashboard::PutNumberArray(std::string_view key,
|
||||
std::span<const double> value) {
|
||||
return GetInstance().table->GetEntry(key).SetDoubleArray(value);
|
||||
return GetEntry(key).SetDoubleArray(value);
|
||||
}
|
||||
|
||||
bool SmartDashboard::SetDefaultNumberArray(
|
||||
std::string_view key, std::span<const double> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultDoubleArray(defaultValue);
|
||||
return GetEntry(key).SetDefaultDoubleArray(defaultValue);
|
||||
}
|
||||
|
||||
std::vector<double> SmartDashboard::GetNumberArray(
|
||||
std::string_view key, std::span<const double> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).GetDoubleArray(defaultValue);
|
||||
return GetEntry(key).GetDoubleArray(defaultValue);
|
||||
}
|
||||
|
||||
bool SmartDashboard::PutStringArray(std::string_view key,
|
||||
std::span<const std::string> value) {
|
||||
return GetInstance().table->GetEntry(key).SetStringArray(value);
|
||||
return GetEntry(key).SetStringArray(value);
|
||||
}
|
||||
|
||||
bool SmartDashboard::SetDefaultStringArray(
|
||||
std::string_view key, std::span<const std::string> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultStringArray(defaultValue);
|
||||
return GetEntry(key).SetDefaultStringArray(defaultValue);
|
||||
}
|
||||
|
||||
std::vector<std::string> SmartDashboard::GetStringArray(
|
||||
std::string_view key, std::span<const std::string> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).GetStringArray(defaultValue);
|
||||
return GetEntry(key).GetStringArray(defaultValue);
|
||||
}
|
||||
|
||||
bool SmartDashboard::PutRaw(std::string_view key,
|
||||
std::span<const uint8_t> value) {
|
||||
return GetInstance().table->GetEntry(key).SetRaw(value);
|
||||
return GetEntry(key).SetRaw(value);
|
||||
}
|
||||
|
||||
bool SmartDashboard::SetDefaultRaw(std::string_view key,
|
||||
std::span<const uint8_t> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultRaw(defaultValue);
|
||||
return GetEntry(key).SetDefaultRaw(defaultValue);
|
||||
}
|
||||
|
||||
std::vector<uint8_t> SmartDashboard::GetRaw(
|
||||
std::string_view key, std::span<const uint8_t> defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).GetRaw(defaultValue);
|
||||
return GetEntry(key).GetRaw(defaultValue);
|
||||
}
|
||||
|
||||
bool SmartDashboard::PutValue(std::string_view keyName,
|
||||
@@ -224,7 +231,7 @@ bool SmartDashboard::PutValue(std::string_view keyName,
|
||||
|
||||
bool SmartDashboard::SetDefaultValue(std::string_view key,
|
||||
const nt::Value& defaultValue) {
|
||||
return GetInstance().table->GetEntry(key).SetDefaultValue(defaultValue);
|
||||
return GetEntry(key).SetDefaultValue(defaultValue);
|
||||
}
|
||||
|
||||
nt::Value SmartDashboard::GetValue(std::string_view keyName) {
|
||||
|
||||
Reference in New Issue
Block a user