ESPFlight مستندات v1
فهرست مستندات

پروتکل ۲

قرارداد دقیق انتقال، شناسایی، کنترل، ACK و مالکیت در Protocol 2 نسخه v1.

مستندات ESPFlight · v1 • مسیر رسمی و تست‌شده برای v1

# انتقال و شناسایی

در Protocol 2، UDP فقط برای شناسایی محلی کنترلر و WebSocket برای ترافیک کنترلی استفاده می‌شود. Firmware v1.0.0 روی پورت UDP برابر 4210 و WebSocket روی پورت 81 با مسیر / کار می‌کند.

برای دیدن همه ستون‌ها، جدول را افقی بکشید.

کانال مقدار v1 کاربرد
UDP 4210 پخش پیام شناسایی کنترلر
WebSocket ws://<controller-ip>:81/ کنترل، پیکربندی، ACK و تله‌متری
پیام شناسایی
{"type":"esp","ip":"192.168.1.42","mac":"AA:BB:CC:DD:EE:FF"}

وقتی شناسایی لازم باشد، فریمور تقریباً هر ۱٫۵ ثانیه این پیام را تکرار می‌کند. هنگام جریان کنترلی سالم و دارای مالک در حالت پرواز، پخش دوره‌ای متوقف می‌شود.

# بسته‌های کنترل

هر فریم کنترلی اتمیک است: هر چهار فیلد باید به‌صورت عدد صحیح JSON وجود داشته باشند و مقدار هرکدام بین 1000 تا 2000 باشد. بسته ناقص، با نوع داده نامعتبر یا خارج از محدوده نادیده گرفته می‌شود و heartbeat کنترل را تازه نمی‌کند.

{"throttle":1000,"roll":1500,"pitch":1500,"yaw":1500}

اولین بسته کامل و معتبر، کلاینت WebSocket را به‌عنوان مالک کنترل فعال تعیین می‌کند. بسته‌های کنترلی کلاینت‌های دیگر تا آزاد شدن مالکیت رد می‌شوند.

# فرمان‌های سطح بالای پرواز

فرمان‌های ARM، DISARM، Takeoff و Landing از envelope صریح با request_id مثبت و اجباری استفاده می‌کنند.

درخواست
{"type":"flight_command","cmd":"arm","request_id":42}
پاسخ
{"type":"flight_command_ack","cmd":"arm","request_id":42,"ok":true,"message":"..."}

فشار دادن دکمه را معادل تغییر قطعی وضعیت پرواز در نظر نگیرید. ACK و تله‌متری کنترلر مرجع وضعیت واقعی هستند.

برای دیدن همه ستون‌ها، جدول را افقی بکشید.

فیلدالزاممعنی
typeflight_commandیک درخواست سطح‌بالای پرواز را مشخص می‌کند.
cmdarm، disarm، takeoff یا landingتغییر وضعیت درخواستی.
request_idعدد صحیح مثبتدرخواست را با ACK متناظر می‌کند.

# هویت اتصال

بلافاصله پس از اتصال WebSocket، فریمور هویت MAC کنترلر را می‌فرستد:

{"type":"mac","mac":"AA:BB:CC:DD:EE:FF"}

# مالکیت و امنیت

مرز شبکه محلی مورد اعتماد Protocol 2 v1 در برابر کلاینت مهاجم روی همان شبکه، حمل‌ونقل رمزنگاری‌شده یا احراز هویت رمزنگاری‌شده فراهم نمی‌کند. فقط از شبکه Wi-Fi محلی، خصوصی و مورد اعتماد استفاده کنید. مالکیت تک‌کنترلر یک مکانیزم ایمنی و مدیریت وضعیت است، نه اعتبارنامه امنیتی.

اگر شکل یا معنی پیام‌ها تغییر می‌کند، تغییر سازگاری را مستند و version کنید و آن را به‌عنوان همان Protocol 2 بدون تغییر معرفی نکنید.