Enviando datos
A diferencia de SmartDashboard, los datos no se pueden enviar directamente a Shuffleboard sin antes especificar en qué pestaña se deben colocar los datos.
Envío de datos simples
El envío de datos simples (números, cadenas, valores booleanos y matrices de estos) se realiza llamando add
en una pestaña. Este método establecerá el valor si aún no está presente, pero no sobrescribirá un valor existente.
Shuffleboard.getTab("Numbers")
.add("Pi", 3.14);
frc::Shuffleboard::GetTab("Numbers")
.Add("Pi", 3.14);
from wpilib.shuffleboard import Shuffleboard
Shuffleboard.getTab("Tab Title").add("Pi", 3.14)
Si los datos deben actualizarse (por ejemplo, la salida de algún cálculo realizado en el robot), llame a getEntry()
después de definir el valor, luego actualice cuando sea necesario o en una función periódica
class VisionCalculator {
private ShuffleboardTab tab = Shuffleboard.getTab("Vision");
private GenericEntry distanceEntry =
tab.add("Distance to target", 0)
.getEntry();
public void calculate() {
double distance = ...;
distanceEntry.setDouble(distance);
}
}
from wpilib.shuffleboard import Shuffleboard
def robotInit(self):
tab = Shuffleboard.getTab("Vision")
self.distanceEntry = tab.add("Distance to target", 0).getEntry()
def teleopPeriodic(self):
distance = self.encoder.getDistance()
self.distanceEntry.setDouble(distance)
Hacer que las elecciones persistan entre reinicios
Al configurar un robot desde el tablero, es posible que algunos ajustes persistan entre los reinicios del robot o de la estación del conductor en lugar de que los conductores recuerden (u olviden) configurar los ajustes antes de cada partido.
Simplemente usando addPersistent en lugar de` add` hará que el valor se guarde en el roboRIO y se cargue cuando se inicie el programa del robot.
Nota
Esto no se aplica a los datos que se pueden enviar como selectores o controladores de motor.
Shuffleboard.getTab("Drive")
.addPersistent("Max Speed", 1.0);
frc::Shuffleboard::GetTab("Drive")
.AddPersistent("Max Speed", 1.0);
from wpilib.shuffleboard import Shuffleboard
(Shuffleboard.getTab("Drive")
.addPersistent("Max Speed", 1.0))
Envío de sensores, motores, etc.
De manera análoga a SmartDashboard.putData
, cualquier objeto Sendable
(la mayoría de los sensores, controladores de motor y SendableChoosers) se pueden agregar a cualquier pestaña
Shuffleboard.getTab("Tab Title")
.add("Sendable Title", mySendable);
frc::Shuffleboard::GetTab("Tab Title")
.Add("Sendable Title", mySendable);
from wpilib.shuffleboard import Shuffleboard
(Shuffleboard.getTab("Tab Title")
.add("Sendable Title", mySendable))