Shuffleboard provides a number of built-in plugins that handle common tasks for FRC use, such as camera streams, all widgets, and NetworkTables connections.
The base plugin defines all the data types, widgets, and layouts necessary for FRC use. It does not define any of the source types, or any special data types or widgets for those source types. Those are handled by the NetworkTables Plugin and the CameraServer Plugin. This separation of concerns makes it easier for teams to create plugins for custom source types or protocols (eg HTTP, ZeroMQ) for the FRC data types without needing a NetworkTables client.
The camera server plugin provides sources and widgets for viewing camerastreams from the
CameraServer WPILib class.
This plugin depends on the NetworkTables Plugin in order to discover the available camera streams.
CameraServer sources are automatically discovered by looking at the
/CameraPublisher /<camera name> streams=["url1", "url2", ...]
For example, a camera named “Camera” with a server at
roborio-0000-frc.local would have this table layout:
/CameraPublisher /Camera streams=["mjpeg:http://roborio-0000-frc.local:1181/?action=stream"]
This setup will automatically discover all camera streams hosted on a roboRIO by the CameraServer class in WPILib. Any non-WPILib projects that want to have camera streams appear in shuffleboard will have to set the streams entry for the camera server.
The NetworkTables plugin provides data sources backed by ntcore. Since the
SmartDashboard classes in WPILib use NetworkTables to send the data to the driver station, this plugin will need to be loaded in order to use those classes.
This plugin handles the connection and reconnection to NetworkTables automatically, users of shuffleboard and writers of custom plugins will not have to worry about the intricacies of the NT protocol.