From 1831ef3e198a8e9eefabf1289a5b898a9d1db646 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 2 Nov 2022 22:49:52 -0700 Subject: [PATCH] [wpilib] Fix Shuffleboard SuppliedValueWidget (#4559) It was creating duplicate publishers. --- .../include/frc/shuffleboard/SuppliedValueWidget.h | 14 +++++++++----- .../wpilibj/shuffleboard/SuppliedValueWidget.java | 10 +++++++--- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/wpilibc/src/main/native/include/frc/shuffleboard/SuppliedValueWidget.h b/wpilibc/src/main/native/include/frc/shuffleboard/SuppliedValueWidget.h index ae69ab434f..4f82dc6119 100644 --- a/wpilibc/src/main/native/include/frc/shuffleboard/SuppliedValueWidget.h +++ b/wpilibc/src/main/native/include/frc/shuffleboard/SuppliedValueWidget.h @@ -36,12 +36,16 @@ class SuppliedValueWidget : public ShuffleboardWidget> { void BuildInto(std::shared_ptr parentTable, std::shared_ptr metaTable) override { this->BuildMetadata(metaTable); - m_controllablePub = - nt::BooleanTopic{metaTable->GetTopic("Controllable")}.Publish(); - m_controllablePub.Set(false); + if (!m_controllablePub) { + m_controllablePub = + nt::BooleanTopic{metaTable->GetTopic("Controllable")}.Publish(); + m_controllablePub.Set(false); + } - m_entry = - parentTable->GetTopic(this->GetTitle()).GenericPublish(m_typeString); + if (!m_entry) { + m_entry = + parentTable->GetTopic(this->GetTitle()).GenericPublish(m_typeString); + } m_setter(m_entry, m_supplier()); } diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/SuppliedValueWidget.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/SuppliedValueWidget.java index 3ab8b1e308..355f483688 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/SuppliedValueWidget.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/shuffleboard/SuppliedValueWidget.java @@ -48,10 +48,14 @@ public final class SuppliedValueWidget extends ShuffleboardWidget