Usando la Dashboard de LabVIEW con código C++/Java

El Dashboard de LabVIEW por defecto utiliza NetworkTables para pasar los valores y por lo tanto es compatible con los programas robot de C++ y Java. Este artículo cubre las claves y rangos de valores a utilizar para trabajar con el Dashboard.

Pestaña Drive

../../../../_images/drive-tab.png

Se puede utilizar el menú desplegable Select Autonomous… para mostrar las rutinas autónomas disponibles y elegir una para ejecutar en el partido.

SmartDashboard.putStringArray("Auto List", {"Drive Forwards", "Drive Backwards", "Shoot"});

// At the beginning of auto
String autoName = SmartDashboard.getString("Auto Selector", "Drive Forwards") // This would make "Drive Forwards the default auto
switch(autoName) {
   case "Drive Forwards":
     // auto here
   case "Drive Backwards":
     // auto here
   case "Shoot":
     // auto here
}

El envío a la entrada «Gyro» de NetworkTables rellenará el giroscopio aquí.

SmartDashboard.putNumber("Gyro", drivetrain.getHeading());

Hay cuatro salidas que muestran la potencia del motor a la transmisión. Está configurado para 2 motores por lado y una transmisión estilo tanque. Esto se hace configurando «RobotDrive Motors» como en el ejemplo siguiente.

SmartDashboard.putNumberArray("RobotDrive Motors", {drivetrain.getLeftFront(), drivetrain.getRightFront(), drivetrain.getLeftBack(), drivetrain.getRightBack()});

Pestaña basica

../../../../_images/basic-tab.png

La pestaña Basic utiliza un número de teclas en la sub-tabla «DB» para enviar/recibir datos de la Dashboard. Los LED´s son sólo de salida, los otros campos son todos bidireccionales (enviar o recibir).

Strings

../../../../_images/strings.png

Los strings están etiquetadas de arriba a abajo, de izquierda a derecha de «DB/String 0» a «DB/String 9». Cada campo de un string puede mostrar al menos 21 caracteres (el número exacto depende de qué caracteres). Para escribir a estas cadenas:

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

Para leer los datos tipo string ingresados en la Dashboard:

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

Botones y LEDs

../../../../_images/buttons-and-leds.png

Los botones y LEDs son valores booleanos y están etiquetados de arriba a abajo de «DB/Button 0» a «DB/Button 3» y «DB/LED 0» a «DB/LED 3». Los botones son bidireccionales, los LEDs sólo son capaces de ser escritos desde el robot y leidos en la Dashboard. Para escribir a los botones o LEDs:

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

Para leer desde los botones: (el valor predeterminado es falso)

boolean buttonValue = SmartDashboard.getBoolean("DB/Button 0", false);

Sliders

../../../../_images/sliders.png

Los sliders o controles deslizantes son controles/indicadores analógicos bidireccionales (dobles) con un rango de 0 a 5. Para escribir a estos indicadores:

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

Para leer valores de una Dashboard dentro del robot: (valor predeterminado de 0.0)

double dashData = SmartDashboard.getNumber("DB/Slider 0", 0.0);