انتقل إلى المحتوى الرئيسي

البدء السريع لبرمجة FRC

يدعم Limelight بروتوكولات REST/HTTP و Websocket و Modbus و NetworkTables لبيانات الاستهداف وبيانات الحالة والتكوين المباشر. تتوفر تنسيقات الإخراج JSON والخام. راجع قسم واجهات برمجة التطبيقات (APIs) في الوثائق للحصول على مزيد من المعلومات.

بالنسبة لفرق FRC، البروتوكول الموصى به هو NetworkTables. ينشر Limelight جميع بيانات الاستهداف، بما في ذلك تفريغ JSON كامل، إلى NetworkTables بتردد 100 هرتز. يمكن للفرق أيضًا ضبط عناصر التحكم مثل وضع LED ونافذة الاقتصاص والمزيد عبر 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);

//نشر على لوحة المعلومات الذكية دوريًا
SmartDashboard.putNumber("LimelightX", x);
SmartDashboard.putNumber("LimelightY", y);
SmartDashboard.putNumber("LimelightArea", area);