Espacio de nombres para SmartDashboard

SmartDashboard usa NetworkTables para enviar datos entre el robot y la computadora Dashboard (Driver Station). NetworkTables envía datos como nombre, pares de valores, como una matriz asociativa/tabla hash distribuida entre el robot y la computadora. Cuando se cambia un valor en un lugar, su valor se actualiza automáticamente en el otro lugar. Este mecanismo y un conjunto estándar de nombres (claves) es cómo se muestran los datos en el SmartDashboard.

Existe una estructura jerárquica en el espacio de nombres que crea un conjunto de tablas y subtablas. Los datos de SmartDashboard están en la subtabla SmartDashboard y los datos de LiveWindow están en la subtabla de LiveWindow como se muestra a continuación.

A efectos informativos, los nombres y valores pueden mostrarse utilizando la aplicación OutlineViewer que se instala en la misma ubicación que el SmartDashboard. Esta aplicación mostrará todas las claves y valores de NetworkTables a medida que se vayan actualizando.

Valores de datos de SmartDashboard

The SmartDashboard keys in NetworkTables always begin with "/SmartDashboard/*"

Los valores de SmartDashboard se crean con nombres clave que comienzan con SmartDashboard/. Los valores anteriores vistos con OutlineViewer corresponden a los datos colocados en el SmartDashboard con las siguientes declaraciones:

chooser = new SendableChooser();
chooser.setDefaultOption("defaultAuto", new AutonomousCommand());
chooser.addOption("secondAuto", new AutonomousCommand());
chooser.addOption("thirdAuto", new AutonomousCommand());
SmartDashboard.putData("Chooser", chooser);
SmartDashboard.putNumber("Arm position in degrees", 52.0);
SmartDashboard.putString("Program Version", "V1.2");

La Posición del brazo se crea con la llamada putNumber(). El AutonomousCommand está escrito con un putData("Autonomous Command", command) que no se muestra en el fragmento de código anterior. El selector se crea como un objeto SendableChooser y el valor de cadena, Versión del programa se crea con la llamada putString().

Vista de SmartDashboard

SmartDashboard display of the values generated in the code above.

El código del paso anterior genera los valores de la tabla como se muestra y la pantalla del SmartDashboard como se muestra aquí. Los números corresponden a las variables de NetworkTables mostradas en el paso anterior.

Valores de datos de LiveWindow

Viewing all of the LiveWindow data in SmartDashboard when in Test mode.

Los datos de LiveWindow se agrupan automáticamente por subsistema. Los datos se pueden ver en el SmartDashboard cuando el robot está en modo de prueba (configurado en la Driver Station). Si no está escribiendo un programa basado en comandos, aún puede hacer que los sensores y actuadores se agrupen para facilitar la visualización especificando el nombre del subsistema. En la pantalla anterior, puede ver los nombres de las teclas y la salida resultante en el modo de prueba en el SmartDashboard. Todas las cadenas comienzan con ``/LiveWindow ``, luego el nombre del subsistema, luego un grupo de valores que se utilizan para mostrar cada elemento. El código que genera esta pantalla LiveWindow se muestra a continuación:

drivetrainLeft = new PWMVictorSPX(1);
drivetrainLeft.setName("Drive train", "Left");

drivetrainRight = new PWMVictorSPX(1);
drivetrainRight.setName("Drive train", "Right";

drivetrainRobotDrive = new DifferentialDrive(drivetrainLeft, drivetrainRight);
drivetrainRobotDrive.setSafetyEnabled(false);
drivetrainRobotDrive.setExpiration(0.1);

drivetrainUltrasonic = new AnalogInput(3);
drivetrainUltrasonic.setName("Drive train", "Ultrasonic");

elevatorMotor = new PWMVictorSPX(6);
elevatorMotor.setName("Elevator", "Motor");

elevatorPot = new AnalogInput(4);
elevatorPot.setName("Elevator", "Pot");

wristPot = new AnalogInput(2);
wristPot.setName("Wrist", "Pot");

wristMotor = new PWMVictorSPX(3);
wristMotor.setName("Wrist", "Motor");

clawMotor = new PWMVictorSPX(5);
clawMotor.setName("Claw", "Motor");

Los valores que corresponden a los actuadores no solo se muestran, sino que se pueden configurar mediante los controles deslizantes creados en el SmartDashboard en el modo de prueba.