تصور اور تیاریبے پائلٹ کھیل · #bezpiLOTa · KAIROS DRONE AGENTدستاویزات
#bezpiLOTa→Drone Agent→API & SDK
KairOS / DRONE AGENT / 03

انضمام کے لیے REST نظام، فوری ڈیٹا کے لیے خام MAVLink WebSocket، ریموٹ relay کے لیے ورژن والے MQTT ٹاپک اور ڈرائیور و ایکسٹینشن کے لیے Python SDK۔ یہاں KairOS کے اپنے انٹرفیس کی مجوزہ پورٹس، endpoints، اجازتیں اور مثالیں درج ہیں۔

مجوزہ

API اور SDK، KairOS کے مجوزہ معاہدے کے طور پر بیان ہیں؛ مستحکم ورژن اور مطابقت ابھی جاری نہیں ہوئے۔

KairOS ریپوزٹری ↗
08بنیادی REST endpoints
JSONREST جوابات
WSخام MAVLink
KEYاجازت پر مبنی توثیق
01
REST API / :8080

آٹھ بنیادی endpoints

کنٹرول انٹرفیس پورٹ 8080 پر سنتا اور JSON واپس دیتا ہے۔ بیشتر درخواستوں کو X-KairOS-Key ہیڈر درکار ہے۔ ہر کلید کی اجازت کی سطح ہوتی ہے، اس لیے ٹیلی میٹری پڑھنے کو فلائٹ کمانڈ، مشن اپ لوڈ اور انتظامی کاموں سے الگ کیا جا سکتا ہے۔

طریقہاینڈ پوائنٹڈیٹا یا عمل
GET/api/statusصحت، uptime، FC رابطہ، کردار، ایجنٹ کا ورژن
GET/api/telemetryزاویائی حالت، GPS، بیٹری، RC چینل، فلائٹ موڈ
GET/api/paramsprefix فلٹر کے ساتھ FC پیرامیٹر کیش
POST/api/commandsٹیک آف، لینڈنگ، goto، RTL، arm، disarm
GET/api/configJSON میں ایجنٹ کی موجودہ ترتیب
PUT/api/configکلیدوں میں تبدیلی اور متاثرہ خدمات کا hot reload
GET/api/servicesزیرِ انتظام خدمات کے لیے running، stopped یا failed
GET/api/logsservice اور level فلٹر کے ساتھ منظم واقعات
bashREST کے ذریعے ٹیلی میٹری
curl -s http://<board-ip>:8080/api/telemetry \
  -H "X-KairOS-Key: <your-key>" | jq
KairOS کا مجوزہ انٹرفیس: متعلقہ جزو کے جاری ہونے کے بعد ہی کمانڈ قابلِ عمل ہوتی ہے۔
jsonJSON جواب کی مثال
{
  "armed": true,
  "mode": "GUIDED",
  "battery": { "voltage": 22.4, "pct": 78 },
  "gps": { "fix": 3, "satellites": 14, "alt": 50.2 },
  "attitude": { "roll": 0.02, "pitch": -0.01, "yaw": 182.5 }
}
02
کلائنٹ کی مثال

Python سے ٹیلی میٹری پڑھنا اور کمانڈ بھیجنا

pythonKairOS کا مجوزہ کلائنٹ — پرواز کی تصدیق تک صرف سیمولیٹر کے لیے
import httpx

BASE = "http://<board-ip>:8080"
headers = {"X-KairOS-Key": "<your-key>"}

telem = httpx.get(f"{BASE}/api/telemetry", headers=headers).json()
print(telem["battery"]["pct"], telem["gps"]["satellites"])

httpx.post(
    f"{BASE}/api/commands",
    headers=headers,
    json={"command": "takeoff", "params": {"alt": 10}},
)
KairOS کا مجوزہ انٹرفیس: متعلقہ جزو کے جاری ہونے کے بعد ہی کمانڈ قابلِ عمل ہوتی ہے۔
03
پورٹس اور ٹاپک

ایک MAVLink بہاؤ، کئی ذرائعِ نقل

انٹرفیسپورٹ یا ٹاپکمقصد
REST:8080حالت، ٹیلی میٹری، ترتیب، خدمات، کمانڈ
MAVLink WebSocket:8765دونوں سمتوں میں بائنری MAVLink v2
WebRTC WHEP:8889مقامی ویڈیو
حالتkairos/v1/agents/{agent_id}/statusمحفوظ شدہ health اور ایجنٹ کی دستیابی
ٹیلی میٹریkairos/v1/agents/{agent_id}/telemetryآلے کی حالت کا بہاؤ
واقعاتkairos/v1/agents/{agent_id}/eventsقابلِ مشاہدہ واقعات اور انتباہات
کمانڈkairos/v1/agents/{agent_id}/commandsQoS 1 کے ساتھ ایجنٹ کو کمانڈ
ACKkairos/v1/agents/{agent_id}/acks/{command_id}مخصوص کمانڈ کا نتیجہ
WebRTC سگنلنگkairos/v1/agents/{agent_id}/video/webrtc/offerP2P ویڈیو کے لیے SDP offer

روٹر FC سے ایک بہاؤ لے کر بیک وقت کئی صارفین کو تقسیم کرتا ہے: WebSocket 8765 سے براؤزر GCS، TCP 5760 سے SITL/انجینئرنگ کلائنٹ اور UDP 14550 سے پرانے آلات۔ WebSocket میں JSON غلاف نہیں: wire-compatible بائنری MAVLink v2 فریم منتقل ہوتے ہیں۔

javascriptKairOS کا مجوزہ براؤزر WebSocket
const ws = new WebSocket("ws://<board-ip>:8765");
ws.binaryType = "arraybuffer";

ws.onmessage = (event) => {
  decodeMavlink(new Uint8Array(event.data));
};

ws.send(encodeCommandLong(sysid, compid, cmd, params));
KairOS کا مجوزہ انٹرفیس: متعلقہ جزو کے جاری ہونے کے بعد ہی کمانڈ قابلِ عمل ہوتی ہے۔
04
PYTHON SDK

ڈرائیور اور آن وہیکل منطق کے معاہدے

کلاسمقصد
CameraDriverCSI، USB UVC، IP اور سازندے کے SDK والے کیمرے
GimbalDriverPan، tilt، roll اور گمبل کی ٹیلی میٹری
LidarDriverLiDAR اور رینج فائنڈر آلات
GpsDriverGPS/GNSS وصول کنندے
EscDriverESC ڈرائیور اور واپسی کی ٹیلی میٹری
VisionClientآن وہیکل vision bus سے فریم اور شناخت کے نتائج
05
سلامتی

API key کی اجازتیں کارروائی کا دائرہ محدود کرتی ہیں

سطحمجاز کام
readحالت بدلے بغیر ٹیلی میٹری، حالت، ترتیب، لاگ اور پیرامیٹر
commandفلائٹ کمانڈ؛ read شامل ہے
missionمشن فائل اپ لوڈ اور چلانا؛ command شامل ہے
configایجنٹ اور FC کی ترتیب بدلنا؛ read شامل ہے
adminاپ ڈیٹ، خدمت دوبارہ چلانا، کلیدوں کا انتظام اور مکمل رسائی

کلید کو راز کے طور پر رکھیں اور عوامی لاگ، اسکرین شاٹ یا کلائنٹ bundle میں شامل نہ کریں۔ براؤزر انضمام کے لیے مستقل admin key کے بجائے محدود مدت اور دائرے والی سند تجویز کی جاتی ہے۔

MCP AI معاون کا انٹرفیس: گفتگو میں مشن تجزیہ، نقشہ، ٹیلی میٹری، ٹول کال، واقعات کا لاگ اور رسائی کی اجازتیں۔
انٹرفیس / بصری مثالکمانڈ، رسائی اور آڈٹ کا سیاق

اجازت پینل اور ٹول کال لاگ مشن کے ساتھ دکھائے گئے ہیں۔ تصویر اجازتوں کو آپریٹر سیاق سے جوڑتی ہے؛ KairOS API معاہدے صفحے کے متن میں ہیں۔

06
پیغام کی سالمیت

ایجنٹ پر کلید محفوظ کیے بغیر MAVLink v2 دستخط

گراؤنڈ اسٹیشن 32-byte کلید بنا کر براؤزر میں ناقابلِ اخراج Web Crypto key کے طور پر رکھتا ہے۔ Capability endpoint فرم ویئر اور signing parameters کی موجودگی جانچتا ہے۔ ایک بار اندراج کے بعد فلائٹ کنٹرولر ہر outbound frame کا HMAC-SHA256 tag جانچتا ہے۔ ایجنٹ شفاف پائپ رہتا ہے اور دستخط کی کلید محفوظ نہیں کرتا۔

httpصلاحیت کی جانچ
GET /api/mavlink/signing/capability
X-KairOS-Key: <your-key>

{
  "supported": true,
  "reason": "ok",
  "firmware_name": "ArduPilot",
  "firmware_version": "4.5.0",
  "signing_params_present": true
}
KairOS کا مجوزہ انٹرفیس: متعلقہ جزو کے جاری ہونے کے بعد ہی کمانڈ قابلِ عمل ہوتی ہے۔