With the scheduled introduction of NT4 (the next version of NetworkTables, the FRC telemetry bus) in 2023, I’m trying to coordinate a matching rework of the robot-side telemetry binding code (Sendable) and a generalization of the
Shuffleboard metadata format for consumption by other dashboards (eventually, we would like to move towards adopting FRC Web Components as the official dashboard). Additionally, there is some desire to support Oblog-esque annotations for binding telemetry data.
I’ve written a design document that outlines the current state of WPILib telemetry, describes the desired future directions, and describes loose specs for the features mentioned above. It’s at a point now where I feel comfortable presenting it to the community for feedback, as I did a few years ago with the command-based rewrite.
Feel free to comment here with your thoughts, criticisms, or suggestions. Even better - submit a comment on the document pull request. Remember, WPILib is a community project - the more interaction we get in the design process, the better we can address the actual needs of the community. The command-based rewrite went through substantial changes between the publishing of the design doc and the final implementation. If you have a concern, don’t hold it back!
P.S.: If any experienced students or mentors would like to volunteer to help implement any of this, let me know.
P.P.S.: Almost all vendor products implement
Sendable, so deprecating it in favor of the
TelemetryNode class described in the document is an (eventual) burden on vendor development. I don’t think the interfaces are different enough to make this port particularly painful (especially given how innately-painful
Sendable already is), but feedback from people who actually maintain vendor code would be helpful!