Configuración de las Preferencias del Robot

La clase Robot Preferences (Java, C++) se utiliza para almacenar valores en la memoria flash de la roboRIO. Los valores pueden ser para recordar las preferencias en el robot, tales como los ajustes de calibración de los potenciómetros, los valores PID, etc. que le gustaría cambiar sin tener que reconstruir el programa. Los valores pueden verse en la SmartDashboard y ser leídos y escritos por el programa del robot.

Preferencias de Lectura y Escritura

public class Robot extends TimedRobot {

  Preferences prefs;

  double armUpPosition;
  double armDownPosition;

  public void robotInit() {
    prefs = Preferences.getInstance();
    armUpPosition = prefs.getDouble("ArmUpPosition", 1.0);
    armDownPosition = prefs.getDouble("ArmDownPosition", 4.);
  }
}

A menudo, los potenciómetros se utilizan para medir el ángulo de un brazo o la posición de algún otro eje. En este caso, el brazo tiene dos posiciones, ArmUpPosition y ArmDownPosition. Por lo general, los programadores crean constantes en el programa que son los dos valores del potenciómetro que corresponden a las posiciones del brazo. Cuando es necesario reemplazar o ajustar el potenciómetro, es necesario editar y volver a cargar el programa en el robot.

En lugar de tener valores «hard-coded» o codificados en el programa, la configuración del potenciómetro se puede almacenar en el archivo de preferencias y el programa puede leerla cuando se inicia. En este caso, los valores se leen al iniciar el programa en el método robotInit (). Estos valores se leen automáticamente del archivo de preferencias almacenado en la memoria flash del roboRIO.

Visualización de Preferencias en la SmartDashboard

To add preferences to the display choose View->Add...->Robot Preferences.

En la SmartDashboard, la pantalla de preferencias se puede agregar a la pantalla que revela el contenido del archivo de preferencias almacenado en la memoria flash del roboRIO.

Preferencias de Visualización y Edición

Editing the robot preferences via the SmartDashboard widget.

Los valores se muestran aquí con los valores predeterminados del código. Esto se leyó desde el robot a través de la interfaz NetworkTables integrada en la SmartDashboard. Si es necesario ajustar los valores, se pueden editar aquí y guardar. La próxima vez que se inicie el programa del robot, los nuevos valores se cargarán en el método robotInit(). Cada vez que se inicie el robot, los nuevos valores se recuperarán sin tener que editar y recompilar/recargar el programa del robot.