انضمام کے لیے REST نظام، فوری ڈیٹا کے لیے خام MAVLink WebSocket، ریموٹ relay کے لیے ورژن والے MQTT ٹاپک اور ڈرائیور و ایکسٹینشن کے لیے Python SDK۔ یہاں KairOS کے اپنے انٹرفیس کی مجوزہ پورٹس، endpoints، اجازتیں اور مثالیں درج ہیں۔
API اور SDK، KairOS کے مجوزہ معاہدے کے طور پر بیان ہیں؛ مستحکم ورژن اور مطابقت ابھی جاری نہیں ہوئے۔
KairOS ریپوزٹری ↗اس صفحے پر +
آٹھ بنیادی endpoints
کنٹرول انٹرفیس پورٹ 8080 پر سنتا اور JSON واپس دیتا ہے۔ بیشتر درخواستوں کو X-KairOS-Key ہیڈر درکار ہے۔ ہر کلید کی اجازت کی سطح ہوتی ہے، اس لیے ٹیلی میٹری پڑھنے کو فلائٹ کمانڈ، مشن اپ لوڈ اور انتظامی کاموں سے الگ کیا جا سکتا ہے۔
| طریقہ | اینڈ پوائنٹ | ڈیٹا یا عمل |
|---|---|---|
| GET | /api/status | صحت، uptime، FC رابطہ، کردار، ایجنٹ کا ورژن |
| GET | /api/telemetry | زاویائی حالت، GPS، بیٹری، RC چینل، فلائٹ موڈ |
| GET | /api/params | prefix فلٹر کے ساتھ FC پیرامیٹر کیش |
| POST | /api/commands | ٹیک آف، لینڈنگ، goto، RTL، arm، disarm |
| GET | /api/config | JSON میں ایجنٹ کی موجودہ ترتیب |
| PUT | /api/config | کلیدوں میں تبدیلی اور متاثرہ خدمات کا hot reload |
| GET | /api/services | زیرِ انتظام خدمات کے لیے running، stopped یا failed |
| GET | /api/logs | service اور level فلٹر کے ساتھ منظم واقعات |
curl -s http://<board-ip>:8080/api/telemetry \
-H "X-KairOS-Key: <your-key>" | jq{
"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 }
}Python سے ٹیلی میٹری پڑھنا اور کمانڈ بھیجنا
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}},
)ایک 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}/commands | QoS 1 کے ساتھ ایجنٹ کو کمانڈ |
| ACK | kairos/v1/agents/{agent_id}/acks/{command_id} | مخصوص کمانڈ کا نتیجہ |
| WebRTC سگنلنگ | kairos/v1/agents/{agent_id}/video/webrtc/offer | P2P ویڈیو کے لیے SDP offer |
روٹر FC سے ایک بہاؤ لے کر بیک وقت کئی صارفین کو تقسیم کرتا ہے: WebSocket 8765 سے براؤزر GCS، TCP 5760 سے SITL/انجینئرنگ کلائنٹ اور UDP 14550 سے پرانے آلات۔ WebSocket میں JSON غلاف نہیں: wire-compatible بائنری MAVLink v2 فریم منتقل ہوتے ہیں۔
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));ڈرائیور اور آن وہیکل منطق کے معاہدے
| کلاس | مقصد |
|---|---|
| CameraDriver | CSI، USB UVC، IP اور سازندے کے SDK والے کیمرے |
| GimbalDriver | Pan، tilt، roll اور گمبل کی ٹیلی میٹری |
| LidarDriver | LiDAR اور رینج فائنڈر آلات |
| GpsDriver | GPS/GNSS وصول کنندے |
| EscDriver | ESC ڈرائیور اور واپسی کی ٹیلی میٹری |
| VisionClient | آن وہیکل vision bus سے فریم اور شناخت کے نتائج |
API key کی اجازتیں کارروائی کا دائرہ محدود کرتی ہیں
| سطح | مجاز کام |
|---|---|
| read | حالت بدلے بغیر ٹیلی میٹری، حالت، ترتیب، لاگ اور پیرامیٹر |
| command | فلائٹ کمانڈ؛ read شامل ہے |
| mission | مشن فائل اپ لوڈ اور چلانا؛ command شامل ہے |
| config | ایجنٹ اور FC کی ترتیب بدلنا؛ read شامل ہے |
| admin | اپ ڈیٹ، خدمت دوبارہ چلانا، کلیدوں کا انتظام اور مکمل رسائی |
کلید کو راز کے طور پر رکھیں اور عوامی لاگ، اسکرین شاٹ یا کلائنٹ bundle میں شامل نہ کریں۔ براؤزر انضمام کے لیے مستقل admin key کے بجائے محدود مدت اور دائرے والی سند تجویز کی جاتی ہے۔
ایجنٹ پر کلید محفوظ کیے بغیر MAVLink v2 دستخط
گراؤنڈ اسٹیشن 32-byte کلید بنا کر براؤزر میں ناقابلِ اخراج Web Crypto key کے طور پر رکھتا ہے۔ Capability endpoint فرم ویئر اور signing parameters کی موجودگی جانچتا ہے۔ ایک بار اندراج کے بعد فلائٹ کنٹرولر ہر outbound frame کا HMAC-SHA256 tag جانچتا ہے۔ ایجنٹ شفاف پائپ رہتا ہے اور دستخط کی کلید محفوظ نہیں کرتا۔
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
}