Controlling data recording

Starting in the 2019 season, Shuffleboard will not record data by default. Recording can be manually controlled through the dashboard, or directly from the robot.

Starting recording at startup

If you want to start recording data as soon as possible (such as to collect data on gyro and accelerometer drift, or keep track of pre-round autonomous selections), call startRecording() in robotInit()

Note that this method has no effect if Shuffleboard is already recording data. 

class Robot extends TimedRobot {
  @Override
  public void robotInit() {
    Shuffleboard.startRecording();
  }
}

Marking important events

Shuffleboard supports marking important events in recordings. These can be any kind of event - scoring a game piece, acquiring a vision target, or changing match periods, just to name a few.

Events have a name, an optional description, and an importance level. The name of an event should be terse; if more detail is required, add a description for the event. The importance is a subjective measure of how important the event, but in general less important information (such as a minor sensor deviation) should have a lower importance level than more critical information (such as dangerously high current draw on a motor). See the documentation on the EventImportance class for further detail on the available importance levels.

class Robot extends TimedRobot {
  @Override
  public void robotInit() {
    Shuffleboard.addEventMarker("Robot initialized", EventImportance.kTrivial);
  }
  
  @Override
  public void autonomousInit() {
    Shuffleboard.addEventMarker("Match start", EventImportance.kNormal);
  }
}