Using the LabVIEW Dashboard with C++\Java Code

The default LabVIEW Dashboard utilizes Network Tables to pass values and is therefore compatible with C++ and Java robot programs. This article covers the keys and value ranges to use to work with the Dashboard.

Drive Tab

Drive Tab

Most of the indicators on the Drive tab utilize arrays. The c++ and Java SmartDashboard classes do not currently support sending arrays.

Basic Tab

Basic Tab

The Basic tab uses a number of keys in the a "DB" sub-table to send/recieve Dashboard data. The LED's are output only, the other fields are all bi-directional (send or recieve).

Labels

The labels are currently sent as an array. C++ and Java SmartDashboard classes do not currently support sending arrays.

Strings

Strings

The strings are labeled top-to-bottom, left-to-right from "DB/String 0" to "DB/String 9". Each String field can display at least 21 characters (exact number depends on what characters). To write to these strings:

Java: SmartDashboard.putString("DB/String 0", "My 21 Char TestString");

C++: SmartDashboard::PutString("DB/String 0", "My 21 Char TestString");

 

To read string data entered on the Dashboard:

Java: String dashData = SmartDashboard.getString("DB/String 0", "myDefaultData");

C++: std::string dashData = SmartDashboard::GetString("DB/String 0", "myDefaultData");

Buttons and LEDs

Buttons and LEDs

The Buttons and LEDs are boolean values and are labeled top-to-bottom from "DB/Button 0" to "DB/Button 3" and "DB/LED 0" to "DB/LED 3". The Buttons are bi-directional, the LEDs are only able to be written from the Robot and read on the Dashboard. To write to the Buttons or LEDs:

Java: SmartDashboard.putBoolean("DB/Button 0", true);

C++: SmartDashboard::PutBoolean("DB/Button 0", true);

 

To read from the Buttons:

Java (default value of false): boolean buttonValue = SmartDashboard.getBoolean("DB/Button 0", false);

C++ (default value of false): bool buttonValue = SmartDashboard::GetBoolean("DB/Button 0", false);

Sliders

Sliders

The Sliders are bi-directional analog (double) controls/indicators with a range from 0 to 5. To write to these indicators:

Java: SmartDashboard.putNumber("DB/Slider 0", 2.58);

C++: SmartDashboard::PutNumber("DB/Slider 0", 2.58);

 

To read values from the Dashboard into the robot program:

Java (default value of 0.0): double dashData = SmartDashboard.getNumber("DB/Slider 0", 0.0);

C++ (default value of 0.0): double dashData = SmartDashboard::GetNumber("DB/Slider 0", 0.0);

0 Report Errors

Use this form to report any errors with the documentation. For help with WPILib, please use the FIRST Forums at http://forums.usfirst.org For reporting WPILib bugs, please submit an issue on GitHub at https://github.com/wpilibsuite/allwpilib/issues/new

Ignore