SmartDashboard Namespace

SmartDashboard 使用 NetworkTables 在机器人和仪表板(驱动站)计算机之间发送数据。NetworkTables 以名称、值对的形式发送数据,就像机器人和计算机之间的分布式哈希表。当一个值在一个位置更改时,它的值在另一个位置自动更新。这种机制和一组标准的名称(键)是如何在 SmartDashboard 上显示数据的。

名称空间中有一个层次结构,用于创建一组表和子表。SmartDashboard 数据位于 SmartDashboard 子表中,LiveWindow 数据位于 LiveWindow 子表中,如下所示。

为了提供信息,可以使用安装在与SmartDashboard相同位置的OutlineViewer应用程序显示名称和值。它将显示更新后的所有NetworkTables键和值。

智能仪表盘数据集

NetworkTables中的SmartDashboard键总是以"/SmartDashboard/*"开始

SmartDashboard 值是用以 ``SmartDashboard/` `开头的键名创建的。使用OutlineViewer 查看的上述值与放入 SmartDashboard 的数据相对应,其中包含以下语句:

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

The Arm position is created with the putNumber() call. The AutonomousCommand is written with a putData("Autonomous Command", command) that is not shown in the above code fragment. The chooser is created as a SendableChooser object and the string value, Program Version is created with the putString() call.

智能仪表盘显示

SmartDashboard显示上面代码中生成的值。

上一步的代码生成如下所示的表值和如下所示的SmartDashboard显示。这些数字对应于前面步骤中显示的NetworkTables变量。

LiveWindow Data Values

在测试模式下查看SmartDashboard中的所有LiveWindow数据。

LiveWindow 数据按子系统自动分组。当机器人处于测试模式(在驱动站上设置)时,可以在 SmartDashboard 中查看数据。如果您没有编写基于指令的程序,仍然可以通过指定子系统名称将传感器和执行器分组以便于查看。在上面的显示中,您可以在 SmartDashboard 上看到测试模式下的键名称和结果输出。所有字符串以 ``/LiveWindow` `开头,然后是子系统名称,然后是用于显示每个元素的一组值。生成此 LiveWindow 显示的代码如下所示:

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

不仅显示与执行器对应的值,还可以在 Test 模式下使用 SmartDashboard 中创建的滑块进行设置。