Espace pour noms dans SmartDashboard

SmartDashboard utilise NetworkTables pour envoyer des données entre le robot et l’ordinateur du tableau de bord (Driver Station). NetworkTables envoie des données sous forme de nom, de paires de valeurs, comme une table de hachage distribuée entre le robot et l’ordinateur. Lorsqu’une valeur est modifiée à un endroit, sa valeur est automatiquement mise à jour à l’autre endroit. Ce mécanisme et un ensemble standard de noms (clés) permettent d’afficher les données sur le SmartDashboard.

Il existe une structure hiérarchique dans l’espace pour noms créant un ensemble de tables et de sous-tables. Les données SmartDashboard se trouvent dans la sous-table SmartDashboard et les données LiveWindow sont dans la sous-table LiveWindow comme indiqué ci-dessous.

À des fins d’information, les noms et les valeurs peuvent être affichés à l’aide de l’application OutlineViewer installée au même emplacement que le SmartDashboard. Il affichera toutes les clés et valeurs NetworkTables au fur et à mesure de leur mise à jour.

Valeurs des données SmartDashboard

Les touches SmartDashboard dans NetworkTables commencent toujours par "/SmartDashboard/*"

Les valeurs de SmartDashboard sont créées avec des noms de clé commençant par SmartDashboard/. Les valeurs ci-dessus affichées avec OutlineViewer correspondent aux données placées dans le SmartDashboard avec les instructions suivantes:

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 Arm position est créee avec l’appel putNumber(). Le AutonomousCommand est écrit avec un `putData("Autonomous Command",command) qui n’est pas montré dans le fragment de code ci-dessus. Le sélecteur est créé en tant qu’objet SendableChooser et la valeur de chaîne de caractères, Program Version est créée avec l’appel putString().

Vue du SmartDashboard

Affichage sous SmartDashboard des valeurs générées dans le code ci-dessus.

Le code de l’étape précédente génère les valeurs de la table comme indiqué et l’affichage du SmartDashboard comme illustré ici. Les nombres correspondent aux variables NetworkTables affichées à l’étape précédente.

Valeurs des données LiveWindow

Affichage de toutes les données de LiveWindow dans le SmartDashboard en mode test.

Les données LiveWindow sont automatiquement regroupées par sous-système. Les données peuvent être visualisées dans le SmartDashboard lorsque le robot est en mode Test (défini sur le Driver Station). Si vous n’écrivez pas un programme basé sur des commandes, vous pouvez toujours grouper les capteurs et les actionneurs pour une visualisation facile en spécifiant le nom du sous-système. Dans l’affichage ci-dessus, vous pouvez voir les noms des touches et la sortie résultante en mode Test sur le SmartDashboard. Toutes les chaînes de caractères commencent par /LiveWindow puis le nom du sous-système, puis un groupe de valeurs qui permettent d’afficher chaque élément. Le code qui génère cet affichage LiveWindow est indiqué ci-dessous:

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");

Les valeurs qui correspondent aux actionneurs ne sont pas seulement affichées, mais peuvent être définies à l’aide des curseurs créés dans le SmartDashboard en mode Test.