Shuffleboard and Sendables in C++

Is there a way to associated a programmatically added Shuffleboard widget with a network table entry? Specifically to associate it with a network table entry that was created in initSendable() inside of a subsystem using .AddDoubleProperty().

Alternatively is there a way in C++ to add a Shuffleboard widget that will automatically call setters and getters without using initSendable() in a subsystem?

My hope was that I would do initSendable() in my subsystem, add the properties I wanted and then add the subsystem to Shuffleboard and everything just show up for me… No such luck, only get the subsystem object with none of the properties I added (all though I see their network table entries in Shuffleboard, just no widgets associated with them).

Can you share your code? Preferably as a link to github (or similar)

It isn’t currently in github, but the important lines are pretty few (also providing dropbox link down below to the important pieces)…

in Subsystem…

   /* Get the current maximum speed                                     */
units::meters_per_second_t DriveSubsystem::GetMaxSpeed(void)
{
   return(m_maxSpeed);
}

   /* Set the current maximum angular speed                             */
void DriveSubsystem::SetMaxAngularSpeed(units::radians_per_second_t maxAngularSpeed)
{
   m_maxAngularSpeed = maxAngularSpeed;
}

void DriveSubsystem::InitSendable(wpi::SendableBuilder& builder)
{
  SubsystemBase::InitSendable(builder);

  // Add double property for max speed.
  builder.AddDoubleProperty("Max Speed", [=, this] { return(GetMaxSpeed().value()); }, [=, this](double maxSpeed){ SetMaxSpeed(units::meters_per_second_t{maxSpeed}); } );
}

In Robot Container.

frc::Shuffleboard::GetTab("Subsystems").GetLayout("Drive", frc::BuiltInLayouts::kGrid).WithSize(2, 5);
frc::Shuffleboard::GetTab("Subsystems").GetLayout("Drive").Add("Drive Subsystem", m_drive);

Results in

I can add the widget in manually and it will set and get correctly (drag from sources and edit properties) .

below is a dropbox link to the relevant code.