پروتکل تلهمتری
Envelope دقیق تلهمتری v1، نرخ بهروزرسانی، معنی فیلدها و قواعد کلاینت.
مستندات ESPFlight · v1 • مسیر رسمی و تستشده برای v1
# زمانبندی بهروزرسانی
Firmware v1.0.0 در حالت DISARM هر ۲۰۰ میلیثانیه (۵ هرتز) و در حالت ARM هر ۱۰۰۰ میلیثانیه (۱ هرتز) envelope اصلی تلهمتری را میفرستد. تغییر وضعیت پرواز یا failsafe بدون منتظر ماندن برای دوره بعدی، یک بهروزرسانی فوری ایجاد میکند.
# Envelope اصلی تلهمتری
{
"type":"main",
"armed":false,
"mac":"AA:BB:CC:DD:EE:FF",
"boot_session_id":123,
"flight_session_id":7,
"flightTime":{"type":"flightTime","seconds":18},
"altitude":{"available":true,"ready":true,"healthy":true,"mm":498,"target_mm":500,"pid":2.4,"assist_active":true,"mode":"hold"},
"failsafe":{"active":false,"reason":0,"link_loss":false,"low_battery":false,"landing":false,"battery_lockout":false},
"system":{"type":"system","rssi":-51,"bat":3.31,"firmware_version":"1.0.0","protocol_version":2}
}وقتی نمونههای معتبر زمانبندی وجود داشته باشند، آبجکت loopTime نیز با فیلدهای curr ، avg و hz اضافه میشود.
# معنی فیلدهای اصلی
برای دیدن همه ستونها، جدول را افقی بکشید.
| فیلد | معنی |
|---|---|
armed | وضعیت ARM گزارششده توسط کنترلر؛ مرجع اصلی UI. |
boot_session_id | شناسهای که با boot/restart کنترلر تغییر میکند. |
flight_session_id | شناسه نشست زمانسنجی پرواز فعال. |
flightTime.seconds | زمان پرواز دارای توان در نشست فعلی یا آخرین نشست کاملشده؛ نه کل مدت ARM. |
altitude.* | وضعیت سنسور/کمک ارتفاع، تازگی داده، ارتفاع، هدف، خروجی PID و mode. |
failsafe.reason | bit mask علت failsafe؛ فیلدهای Boolean برای link loss و low battery نیز وجود دارند. |
system.rssi | RSSI فعلی Wi-Fi بر حسب dBm. |
system.bat | شاخص تقریبی ولتاژ باتری/تغذیه در پلتفرم v1. |
system.firmware_version | نسخه دقیق فریمور. |
system.protocol_version | نسخه سازگاری Protocol. |
# قواعد کلاینت
وضعیت ARM یا failsafe را از انیمیشن یا دکمه محلی حدس نزنید.
وجود اختیاری
loopTime و فیلدهای افزایشی آینده را تحمل کنید.پیش از فعال کردن کنترلهای ناسازگار، نسخه فریمور و Protocol را بررسی کنید.
تغییرهای ایمنی را با ACK و تلهمتری فریمور همگام نگه دارید.