Aller au contenu principal

Démarrage rapide de la programmation FRC

Limelight prend en charge les protocoles REST/HTTP, Websocket, Modbus et NetworkTables pour les données de ciblage, les données d'état et la configuration en direct. Les formats de sortie JSON et bruts sont disponibles. Consultez la section APIs de la documentation pour plus d'informations.

Pour les équipes FRC, le protocole recommandé est NetworkTables. Limelight publie toutes les données de ciblage, y compris un dump JSON complet, sur NetworkTables à 100hz. Les équipes peuvent également définir des contrôles tels que le ledMode, la fenêtre de recadrage, et plus encore via NetworkTables. Les équipes FRC peuvent utiliser les bibliothèques Limelight Lib Java et C++ pour commencer à utiliser Limelight en quelques secondes. Limelight Lib est le moyen le plus simple de commencer.

LimelightLib :

Java, CPP

double tx = LimelightHelpers.getTX("");

Si vous voulez sauter LimelightLib et passer directement à la programmation avec NetworkTables :

import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
import edu.wpi.first.networktables.NetworkTable;
import edu.wpi.first.networktables.NetworkTableEntry;
import edu.wpi.first.networktables.NetworkTableInstance;
NetworkTable table = NetworkTableInstance.getDefault().getTable("limelight");
NetworkTableEntry tx = table.getEntry("tx");
NetworkTableEntry ty = table.getEntry("ty");
NetworkTableEntry ta = table.getEntry("ta");

//lire les valeurs périodiquement
double x = tx.getDouble(0.0);
double y = ty.getDouble(0.0);
double area = ta.getDouble(0.0);

//publier sur le smart dashboard périodiquement
SmartDashboard.putNumber("LimelightX", x);
SmartDashboard.putNumber("LimelightY", y);
SmartDashboard.putNumber("LimelightArea", area);