与 DJI 上云 API 的兼容性对照
说明
本页对照 DJI 上云 API,说明 Autel 上云 API 的兼容程度,供已对接 DJI 上云 API 的平台评估迁移成本。
对照分四类:完全兼容(可直接复用)、字段差异(同名但语义或格式不同,需适配)、Autel 独有(DJI 无对应能力)、不支持(DJI 有、Autel 暂无)。
已对接 DJI 的平台请重点阅读第二类:这些接口同名但语义不同,按 DJI 逻辑直接复用不会报错,而是静默出错。
一、完全兼容
| 项目 | 说明 |
|---|---|
| Topic 体系与方向 | osd / state / services / events / requests / status / property set / drc 共 14 个 Topic,方向与 DJI 一致 |
| 公共字段 | tid、bid、timestamp、gateway、data、method |
| 交互模式 | services / events / requests / property/set / drc 五类 |
| 接口命名 | 绝大多数 method 名与 DJI 一致(live_start_push、flighttask_prepare、drc_mode_enter、fly_to_point、storage_config_get 等) |
二、字段差异(同名但语义或格式不同)
协议框架层
| 项目 | DJI | Autel | 影响 |
|---|---|---|---|
update_topo 设备标识 | 含 domain、type、sub_type | 设备管理页含 domain;Topic 定义页示例仅 type、sub_type | 缺 domain 时无法区分部分设备 |
| 物模型版本字段 | thing_version(text,如 1.1.2) | Topic 定义页为 version(int),设备管理页为 thing_version | 按 DJI 解析取不到版本 |
property/set 用途 | 只设置属性表中 accessMode=rw 的属性 | 另承载动作类指令与属性表外字段 | 无法用属性表做校验 |
accessMode | r / rw | 另有 w(只写、不上报) | 设为 w 的属性读不回 |
| 字段命名 | 统一 snake_case | set_nest_position 用 backupLat/backupLon/backupAlt | 风格混用 |
分模块
| 模块 | 项目 | DJI | Autel |
|---|---|---|---|
| 直播 | url_type | 0 Agora / 1 RTMP / 2 RTSP / 3 GB28181 / 4 WHIP | 另有 101(4G_RTMP) |
| 直播 | video_type | normal / wide / zoom / ir | 另有 thermal、NightVision |
| 直播 | live_stop_push | video_id 必填 | video_id 为空时停止全部推流 |
| 媒体 | file_upload_callback.result | 非 0 表示失败 | 当前固定为 0 |
| 媒体 | ext.event_id | 事件标识 | 当前拼写为 even_id |
| 媒体 | create_time | ISO 8601 | 约束声明 ISO 8601,示例为 YYYY-MM-DD HH:mm:ss |
| 媒体 | storage_config_get.provider | ali / aws / minio | 10 个取值,含互为同义的值 |
| 航线 | 航线文件 | KMZ(WPML) | 示例后缀为 .aut,与 WPML 的兼容程度见该模块说明 |
| 航线 | break_point.progress | float,0–1.0 | int,0–100(量纲相差 100 倍,断点续飞会算错位置) |
| 航线 | barrier_switch_state | 无 | Nest2 为固定语义:0=关闭避障,1=打开避障 |
| 航线 | flighttask_progress.ext | 含 wayline_mission_state、track_id、break_reason、attitude_head | 缺 wayline_mission_state、break_reason、attitude_head 三项(track_id 已支持) |
| 航线 | flight_task_poi | lat/lon 为浮点角度 | lat/lon/alt 为整数:纬度、经度 ×1E7,高度单位 mm |
| 负载 | 同名 method | camera_focus_mode_set、camera_screen_split、camera_exposure_set、ir_metering_*、hsi_info_push、joystick_invalid_notify、gimbal_reset | 参数结构或枚举与 DJI 不同 |
| 负载 | payload_index | 全部负载指令均带 | 部分 camera_* method 缺该参数 |
三、Autel 独有
以下能力 DJI 上云 API 无直接对应,已对接 DJI 的平台可直接使用:
- AI 目标识别:机载识别接口(含跟踪、AI 安防、区域搜索、自动变焦),结果经视频流 SEI 输出
- 媒体扩展:
file_upload_status、file_delete、file_reupload、file_cancel - 航线扩展:
flighttask_stop、flighttask_progress_get、return_specific_home - 负载扩展:抛投器、喊话器、Tracer、PSDK 探照灯等
- 自定义飞行区:Nest2 机巢支持
- UOM 实名状态:可上报
- 基站上云:龙鱼基站接入
四、不支持
| 项目 | 说明 |
|---|---|
| 条件任务 | task_type 仅 0 立即 / 1 定时,无“2 条件” |
simulate_mission | 无任务模拟器 |
| 任务就绪与返航信息 | 无 flighttask_ready、return_home_info、flight_setup_exception_notify、device_exit_homing_notify |
| DRC 高频 OSD 与链路状态 | 无 drc_status_notify(osd_info_push 已支持) |
| 远程解禁 | 无 |
| AirSense | 无 |
flighttask_progress.status | 无 sent、rejected、timeout(Autel 另有 pending、return) |
五、能力矩阵
| 能力 | DJI | Autel |
|---|---|---|
| 航线任务 | 支持(含条件任务、模拟器) | 支持(不含条件任务与模拟器) |
| 自定义飞行区 | 支持(GeoJSON) | 支持(fence.yaml) |
| 远程解禁 | 支持 | 不支持 |
| AirSense | 支持 | 不支持 |
| UOM 实名状态 | — | 支持 |
| 强制降落等 DRC 指令 | 支持 | 部分未覆盖 |
| 机载 AI 识别 | 无 | 支持 |
六、迁移提示
- 先核对第二类字段差异:同名不同义的接口按 DJI 逻辑复用会静默出错,建议逐项比对后再上线。
payload_index建议尽早补齐:Autel 部分负载指令当前不带该参数,单负载可用;接入多负载前需确认。- 断点续飞的量纲:
break_point.progress与 DJI 量纲不同,迁移时须换算。 - 属性表校验:Autel 的
property/set除属性外还承载动作类指令,不能完全依赖属性表做校验。