Using the LabVIEW Dashboard with C++, Java, or Python Code
The default LabVIEW Dashboard utilizes NetworkTables to pass values and is therefore compatible with C++, Java, and Python robot programs. This article covers the keys and value ranges to use to work with the Dashboard.
Pestaña Drive
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
}
frc::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
}
from wpilib import SmartDashboard
SmartDashboard.putStringArray("Auto List", ["Drive Forwards", "Drive Backwards", "Shoot"])
# At the beginning of auto
autoName = SmartDashboard.getString("Auto Selector", "Drive Forwards") # This would make "Drive Forwards the default auto
match 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());
frc::SmartDashboard::PutNumber("Gyro", Drivetrain.GetHeading());
from wpilib import SmartDashboard
SmartDashboard.putNumber("Gyro", self.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()});
frc::SmartDashboard::PutNumberArray("Gyro", {drivetrain.GetLeftFront(), drivetrain.GetRightFront(), drivetrain.GetLeftBack(), drivetrain.GetRightBack()});
from wpilib import SmartDashboard
SmartDashboard.putNumberArray("RobotDrive Motors", [self.drivetrain.getLeftFront(), self.drivetrain.getRightFront(), self.drivetrain.getLeftBack(), self.drivetrain.getRightBack()])
Pestaña basica
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
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");
frc::SmartDashboard::PutString("DB/String 0", "My 21 Char TestString");
from wpilib import SmartDashboard
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");
std::string dashData = frc::SmartDashboard::GetString("DB/String 0", "myDefaultData");
from wpilib import SmartDashboard
dashData = SmartDashboard.getString("DB/String 0", "myDefaultData")
Sliders
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);
frc::SmartDashboard::PutNumber("DB/Slider 0", 2.58);
from wpilib import SmartDashboard
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);
double dashData = frc::SmartDashboard::GetNumber("DB/Slider 0", 0.0);
from wpilib import SmartDashboard
dashData = SmartDashboard.getNumber("DB/Slider 0", 0.0)