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