דלג לתוכן הראשי

מדריך מהיר לתכנות FRC

Limelight תומכת בפרוטוקולי REST/HTTP, Websocket, Modbus ו-NetworkTables עבור נתוני מעקב, נתוני סטטוס ותצורה חיה. פורמטי JSON ופלט גולמי זמינים. ראה את חלק ה-APIs במסמכים למידע נוסף.

עבור קבוצות FRC, הפרוטוקול המומלץ הוא NetworkTables. Limelight מפרסמת את כל נתוני המעקב, כולל dump מלא של JSON, ל-NetworkTables ב-100hz. קבוצות יכולות גם להגדיר בקרות כמו ledMode, חלון חיתוך ועוד באמצעות NetworkTables. קבוצות FRC יכולות להשתמש בספריות Limelight Lib Java ו-C++ כדי להתחיל עם Limelight תוך שניות. Limelight Lib היא הדרך הקלה ביותר להתחיל

LimelightLib:

Java, CPP

double tx = LimelightHelpers.getTX("");

אם ברצונכם לדלג על LimelightLib ולעבור ישירות לתכנות עם 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");

//קריאת ערכים באופן תקופתי
double x = tx.getDouble(0.0);
double y = ty.getDouble(0.0);
double area = ta.getDouble(0.0);

//פרסום ל-smart dashboard באופן תקופתי
SmartDashboard.putNumber("LimelightX", x);
SmartDashboard.putNumber("LimelightY", y);
SmartDashboard.putNumber("LimelightArea", area);