Mostrar expresiones desde el programa del robot

Nota

A menudo la depuración o el monitoreo del estado del robot involucra ingresar una serie de valores a la consola y verlos fluir. Con la SmartDashboard puede ingresar valores a un GUI que está automáticamente construido basado en su programa. A medida que los valores se actualizan, los elementos correspondientes GUI cambian su valor – no hay necesidad de intentar capturar números que aparecen en la pantalla.

Escribir valores a la SmartDashboard

protected void execute() {
  SmartDashboard.putBoolean("Bridge Limit", bridgeTipper.atBridge());
  SmartDashboard.putNumber("Bridge Angle", bridgeTipper.getPosition());
  SmartDashboard.putNumber("Swerve Angle", drivetrain.getSwerveAngle());
  SmartDashboard.putNumber("Left Drive Encoder", drivetrain.getLeftEncoder());
  SmartDashboard.putNumber("Right Drive Encoder", drivetrain.getRightEncoder());
  SmartDashboard.putNumber("Turret Pot", turret.getCurrentAngle());
  SmartDashboard.putNumber("Turret Pot Voltage", turret.getAverageVoltage());
  SmartDashboard.putNumber("RPM", shooter.getRPM());
}

Puede escribir valores tipo Boolean, Numeric o String a la SmartDashboard simplemente llamando el método correcto de acuerdo al tipo e incluyendo el nombre del valor de los datos, no es necesario un código adicional. Cada vez que escriba otro valor con el mismo nombre en su programa, aparece en el mismo elemento UI en la pantalla en la driver station o la computadora en uso. Como puede imaginar este es una gran manera de depurar y obtener el estado de su robot mientras esté funcionando.

Crear widgets en la SmartDashboard

Los widgets se completan en SmartDashboard automáticamente, no se requiere la intervención del usuario. Tenga en cuenta que los widgets solo se completan cuando se escribe el valor por primera vez, es posible que deba habilitar su robot en un modo particular o activar una rutina de código particular para que aparezca un elemento. Para modificar la apariencia del widget, consulte las dos secciones siguientes: Changing the Display Properties of a Value y Changing the Display Widget Type for a Value.

Datos desactualizados

SmartDashboard uses NetworkTables for communicating values between the robot and the driver station laptop. NetworkTables acts as a distributed table of name and value pairs. If a name/value pair is added to either the client (laptop) or server (robot) it is replicated to the other. If a name/value pair is deleted from, say, the robot but the SmartDashboard or OutlineViewer are still running, then when the robot is restarted, the old values will still appear in the SmartDashboard and OutlineViewer because they never stopped running and continue to have those values in their tables. When the robot restarts, those old values will be replicated to the robot.

To ensure that the SmartDashboard and OutlineViewer are showing current values, it is necessary to restart the NetworkTables clients and robot at the same time. That way, old values that one is holding won’t get replicated to the others.

Normalmente esto no es un problema si el programa no está cambiando constantemente, pero si el programa está en desarrollo y el conjunto de claves que está siendo añadido a los NetworkTables está cambiando constantemente, entonces puede ser necesario hacer el reinicio de todo para ver en ese momento las actualizaciones.