Class Shuffleboard
public final class Shuffleboard extends Object
boolean
value to be displayed with a toggle
button instead of the default colored box, or set custom colors for that box.
For example, displaying a boolean entry with a toggle button:
NetworkTableEntry myBoolean = Shuffleboard.getTab("Example Tab")
.add("My Boolean", false)
.withWidget("Toggle Button")
.getEntry();
Changing the colors of the boolean box:
NetworkTableEntry myBoolean = Shuffleboard.getTab("Example Tab")
.add("My Boolean", false)
.withWidget("Boolean Box")
.withProperties(Map.of("colorWhenTrue", "green", "colorWhenFalse", "maroon"))
.getEntry();
Specifying a parent layout. Note that the layout type must always be specified, even if the layout has already been generated by a previously defined entry.
NetworkTableEntry myBoolean = Shuffleboard.getTab("Example Tab")
.getLayout("List", "Example List")
.add("My Boolean", false)
.withWidget("Toggle Button")
.getEntry();
Teams are encouraged to set up shuffleboard layouts at the start of the robot program.
-
Field Summary
Fields Modifier and Type Field Description static String
kBaseTableName
The name of the base NetworkTable into which all Shuffleboard data will be added. -
Method Summary
Modifier and Type Method Description static void
addEventMarker(String name, EventImportance importance)
Notifies Shuffleboard of an event.static void
addEventMarker(String name, String description, EventImportance importance)
Notifies Shuffleboard of an event.static void
clearRecordingFileNameFormat()
Clears the custom name format for recording files.static void
disableActuatorWidgets()
Disables user control of widgets containing actuators.static void
enableActuatorWidgets()
Enables user control of widgets containing actuators: motor controllers, relays, etc.static ShuffleboardTab
getTab(String title)
Gets the Shuffleboard tab with the given title, creating it if it does not already exist.static void
selectTab(int index)
Selects the tab in the dashboard with the given index in the range [0..n-1], where n is the number of tabs in the dashboard at the time this method is called.static void
selectTab(String title)
Selects the tab in the dashboard with the given title.static void
setRecordingFileNameFormat(String format)
Sets the file name format for new recording files to use.static void
startRecording()
Starts data recording on the dashboard.static void
stopRecording()
Stops data recording on the dashboard.static void
update()
Updates all the values in Shuffleboard.
-
Field Details
-
kBaseTableName
The name of the base NetworkTable into which all Shuffleboard data will be added.- See Also:
- Constant Field Values
-
-
Method Details
-
update
Updates all the values in Shuffleboard. Iterative and timed robots are pre-configured to call this method in the main robot loop; teams using custom robot base classes, or subclass SampleRobot, should make sure to call this repeatedly to keep data on the dashboard up to date. -
getTab
Gets the Shuffleboard tab with the given title, creating it if it does not already exist.- Parameters:
title
- the title of the tab- Returns:
- the tab with the given title
-
selectTab
Selects the tab in the dashboard with the given index in the range [0..n-1], where n is the number of tabs in the dashboard at the time this method is called.- Parameters:
index
- the index of the tab to select
-
selectTab
Selects the tab in the dashboard with the given title.- Parameters:
title
- the title of the tab to select
-
enableActuatorWidgets
Enables user control of widgets containing actuators: motor controllers, relays, etc. This should only be used when the robot is in test mode. IterativeRobotBase and SampleRobot are both configured to call this method when entering test mode; most users should not need to use this method directly. -
disableActuatorWidgets
Disables user control of widgets containing actuators. For safety reasons, actuators should only be controlled while in test mode. IterativeRobotBase and SampleRobot are both configured to call this method when exiting in test mode; most users should not need to use this method directly. -
startRecording
Starts data recording on the dashboard. Has no effect if recording is already in progress.- See Also:
stopRecording()
-
stopRecording
Stops data recording on the dashboard. Has no effect if no recording is in progress.- See Also:
startRecording()
-
setRecordingFileNameFormat
Sets the file name format for new recording files to use. If recording is in progress when this method is called, it will continue to use the same file. New recordings will use the format.To avoid recording files overwriting each other, make sure to use unique recording file names. File name formats accept templates for inserting the date and time when the recording started with the
${date}
and${time}
templates, respectively. For example, the default format is"recording-${time}"
and recording files created with it will have names like"recording-2018.01.15.sbr"
. Users are strongly recommended to use the${time}
template to ensure unique file names.- Parameters:
format
- the format for the- See Also:
clearRecordingFileNameFormat()
-
clearRecordingFileNameFormat
Clears the custom name format for recording files. New recordings will use the default format.- See Also:
setRecordingFileNameFormat(String)
-
addEventMarker
Notifies Shuffleboard of an event. Events can range from as trivial as a change in a command state to as critical as a total power loss or component failure. If Shuffleboard is recording, the event will also be recorded.If
name
isnull
or empty, orimportance
isnull
, then no event will be sent and an error will be printed to the driver station.- Parameters:
name
- the name of the eventdescription
- a description of the eventimportance
- the importance of the event
-
addEventMarker
Notifies Shuffleboard of an event. Events can range from as trivial as a change in a command state to as critical as a total power loss or component failure. If Shuffleboard is recording, the event will also be recorded.If
name
isnull
or empty, orimportance
isnull
, then no event will be sent and an error will be printed to the driver station.- Parameters:
name
- the name of the eventimportance
- the importance of the event
-