大疆上云API的MQTT指令集并非一个固定的列表,而是遵循一套基于主题(Topic)和方法(Method)的物模型规范。不同产品(如机场、遥控器)和固件版本支持的指令会有差异。

以下为您梳理的核心指令分类、Topic结构及典型指令示例,助您快速上手。


📡 一、MQTT 主题 (Topic) 结构

所有指令都围绕以下核心Topic进行收发。

1. 系统/拓扑 Topic

用于设备上线、下线及拓扑关系管理。

  • 设备上线/拓扑更新

    • Topic: sys/product/{gateway_sn}/status

    • 说明: 网关(遥控器/机场)上线时上报,包含子设备(无人机)列表。设备离线时sub_devices数组为空。

    • Method: update_topo

  • 设备状态响应

    • Topic: sys/product/{gateway_sn}/status_reply

    • 说明: 云平台对status消息的响应。

2. 物模型 Topic (核心)

用于设备属性、服务调用和事件上报,是业务数据交互的主要通道。

  • 属性 (Property)

    • 状态 (State): thing/product/{gateway_sn}/state

    • 设置 (Set): thing/product/{gateway_sn}/property/set

    • 设置响应 (Set Reply): thing/product/{gateway_sn}/property/set_reply

  • 服务 (Service)

    • 请求 (Requests): thing/product/{gateway_sn}/services

    • 响应 (Reply): thing/product/{gateway_sn}/services_reply

  • 事件 (Events)

    • 事件上报: thing/product/{gateway_sn}/events

  • OSD (实时遥测)

    • OSD 数据: thing/product/{gateway_sn}/osd

3. DLC/DRC 实时控制 Topic

专用于低延迟的远程飞行控制,需开启“指令飞行”模式。云端会获得一个独立的MQTT连接。

  • 上行 (云端 → 设备): thing/product/{gateway_sn}/drc/up

  • 下行 (设备 → 云端): thing/product/{gateway_sn}/drc/down


📋 二、核心指令分类与示例

1. 系统/拓扑指令

主要用于设备管理和状态同步。

  • 设备上线/拓扑更新 (update_topo)

    • 方向: 设备 → 云平台

    • Topic: sys/product/{gateway_sn}/status

    • 说明: 设备上线或子设备(无人机)变更时上报。

    • Payload 示例:

      json

      {

      "tid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",

      "bid": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",

      "method": "update_topo",

      "timestamp": 1712345678901,

      "data": {

      "domain": 2,

      "type": 119,

      "sub_type": 0,

      "device_secret": "xxxxxx",

      "nonce": "yyyyyy",

      "version": "1.0",

      "sub_devices": [

      {

      "sn": "drone001",

      "domain": 0,

      "type": 60,

      "sub_type": 0,

      "index": "A",

      "device_secret": "xxxxxx",

      "nonce": "yyyyyy",

      "version": "1.0"

      }

      ]

      }

      }

  • 设备状态响应

    • 方向: 云平台 → 设备

    • Topic: sys/product/{gateway_sn}/status_reply

    • 说明: 云平台对status消息的响应,通常包含操作结果码。

2. 物模型指令

这是实现设备控制和状态查询的主要方式。

  • 属性设置 (property/set)

    • 方向: 云平台 → 设备

    • Topic: thing/product/{gateway_sn}/property/set

    • 说明: 用于修改设备参数,如夜航灯开关、直播参数等。

    • Payload 示例:

      json

      {

      "tid": "tid-123456",

      "bid": "bid-123456",

      "method": "property_set",

      "timestamp": 1712345678901,

      "data": {

      "night_lights": 1

      }

      }

  • 服务调用 (services)

    • 方向: 云平台 → 设备

    • Topic: thing/product/{gateway_sn}/services

    • 说明: 用于执行特定任务,如获取飞行任务资源、查询离线地图等。

    • Method 示例: flighttask_resource_get, offline_map_get, config

  • 事件上报 (events)

    • 方向: 设备 → 云平台

    • Topic: thing/product/{gateway_sn}/events

    • 说明: 设备主动上报状态变化和告警信息。

    • Method 示例:

      • flighttask_progress: 飞行任务进度

      • hms: 健康管理系统告警

      • file_upload_progress: 文件上传进度

      • drc_status_notify: DLC/DRC链路状态

      • airsense_warning: 空域告警

  • OSD 数据 (osd)

    • 方向: 设备 → 云平台

    • Topic: thing/product/{gateway_sn}/osd

    • 说明: 实时遥测数据,如经纬度、高度、姿态、电量等。

3. DLC/DRC 实时控制指令

这是实现低延迟远程操控的关键。

  • 飞行控制 (drone_control)

    • 方向: 云平台 → 设备

    • Topic: thing/product/{gateway_sn}/drc/up

    • 说明: 用于指点飞行、云台控制等。执行此指令通常需要先获取飞行控制权

    • Method: drone_control

  • 负载控制

    • 方向: 云平台 → 设备

    • Topic: thing/product/{gateway_sn}/drc/up

    • 说明: 控制相机、云台、探照灯、喊话器等。执行此指令通常需要先获取负载控制权

    • Method 示例: 相机拍照/录像、云台角度设置、探照灯开关等。

  • 一键起飞 / FlyTo

    • 方向: 云平台 → 设备

    • Topic: thing/product/{gateway_sn}/drc/up

    • 说明: 控制飞行器飞往指定点并悬停。一键起飞用于从机场起飞,FlyTo用于空中飞行。

    • Method 示例: takeoff_to_point, fly_to_point

  • AI 相关指令 (机场3)

    • 方向: 云平台 ↔ 设备

    • Topic: thing/product/{gateway_sn}/drc/up(上行), thing/product/{gateway_sn}/drc/down(下行)

    • 说明: 用于AI目标识别与跟随功能。

    • Method 示例: drc_ai_model_select(选择AI模型), drc_ai_info_push(AI状态推送)


💡 三、如何获取完整指令集

  1. 查阅官方文档

    访问大疆开发者平台,在“上云API”文档中找到“MQTT Topic 定义”和“物模型”章节,这是最权威的来源。

  2. 分析官方示例

    部署官方提供的cloud_api_sample示例,通过打印的MQTT日志,可以直观地看到所有Topic和Method的实际报文。

  3. 参考开源项目

    在GitHub等平台搜索dji cloud api mqtt,参考社区的开源实现,有助于理解指令的实际应用。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐