DJI Cloud Tool 是一款专为大疆机场 (DJI Dock 1/2) 及经纬 M30/M300 等系列无人机设计的暗黑风格、高性能 MQTT 调试与监控客户端。该工具基于 WPF (.NET 8.0 / .NET 10.0) 构建,遵循大疆官方 DJI Cloud API 协议标准,旨在简化机场日常联调测试、数据监控、下发控制和故障排查。
- 支持标准 TCP 和 SSL/TLS 加密连接。
- 支持跳过证书链验证(适用于企业私有化部署、自签名证书测试环境)。
- 可配置的 Broker 地址、端口、用户名、密码、Client ID 及刷新间隔。
- 连接状态实时指示灯(绿色表示已连接,红色表示已断开)。
- 所有配置数据自动持久化到本地
dji_cloud_tool_config.json,再次启动无需重复填写。
- 智能后台发现:开机默认订阅
thing/product/+/events通配符主题。当收到任意在线设备的事件上报时,会自动提取 SN 码注册至设备列表,无需手动繁琐添加。 - 机场与无人机层级嵌套:解析 MQTT 载荷中的
gateway字段。若 Topic SN 与 Gateway 匹配,则划分为网关;若不同,则标记为无人机并自动归类嵌套至其所属的网关节点下。 - 类型自动升级:如果网关设备收到了
events(事件)消息,其类型会自动从通用“网关”升级为“设备”(代表大疆机场设备),界面展示更加精准。
- 适配两种遥测卡片,根据选定类型自动切换:
- 机场仪表盘:监测舱盖状态(打开/关闭/半开/异常)、空调模式、电量与充电状态、环境温度、舱内温湿度、风速估计、降雨等级、RTK 搜星档位与定位数量、工作电压与电流、以及急停按钮状态等。
- 无人机仪表盘:监测三维坐标(经纬度与高度、相对起飞高度)、偏航/横滚/俯仰姿态角、三维飞行速度、电量与保养电压、RTK 收敛和 GPS 搜星状态、以及运行状态原因。
- 模糊路径匹配 (Fuzzy Lookup):支持模糊后缀匹配。无论是直接平铺的物模型字段还是嵌套在特定组件标识(例如
data.52-0-0.latitude)底下的变量,均能完美识别并解析,具有优秀的模型兼容性。
- 调试模式快速开关:一键开启 (
debug_mode_open) 与关闭 (debug_mode_close) 机场远程调试模式,并实时展示调试权限指示徽章。 - 模块化控制卡片:
- 🚪 舱盖与推杆:控制舱盖打开/关闭/强制关闭,推杆展开与闭合。
- 🚁 飞行器联动:控制停机坪飞行器开机、关机及数据格式化。
- ⚡ 电源与辅助:控制开启/关闭充电,开启/关闭补光灯及警报开关。
- ❄️ 空调与环境:支持下发 5 种空调模式(关/自动/制冷/制热/除湿)及目标温度设置 (
air_conditioner_set)。 - 🛠️ 系统重置与诊断:支持机场重启 (
device_reboot)、数据格式化 (device_format)、一键起飞自检 (one_key_takeoff_check) 及远程日志上报 (remote_log_upload)。 - 🗺️ 自定义飞行区管理:支持一键清空机场飞行区 (
flight_areas_update),当机场发起flight_areas_get请求时自动回应files: []空列表,实现飞行区完整清空闭环,并实时追踪flight_areas_sync_progress同步状态。
- 自动化协议构建与实时状态追溯:自动填入
tid、bid随机 UUID 与timestamp毫秒时间戳,自动解析设备返回的services_reply与events进度,实时在调试面板展示执行状态(已下发、执行成功、执行中、失败)与进度百分比 (%)。
- 递归扁平化深层嵌套 of JSON 字典。
- 依据 DJI 官方云端物模型,自动将英文 Key 转换为其中文含义及分类(如:
cover_state->舱盖状态)。 - 提供搜索过滤栏,支持按 Key、中文含义、分类或数值进行模糊查询。
- 快捷复制:双击翻译表格中的任意行,即可直接复制干净的原始 JSON Key 路径(例如
data.cover_state)到剪贴板,极大方便代码编写。
- 分栏布局 (Split View):采用三栏式设计(左侧数据列表、中间可拖动分隔栏、右侧格式化文本框)。
- 实时 SN / Topic 过滤:可通过下拉菜单选择指定设备 SN 过滤,或输入自定义主题关键字过滤。
- 智能防滚动机制:当未选中行时,滚动条会自动下滚展示最新数据;一旦选中某行数据,日志面板自动停止滚动,使用户能够安逸阅读当前数据,而新数据依然会在后台静默追加至列表底部。
- JSON 美化展示:右侧文本框对选中行的 JSON 载荷进行自动缩进美化排版,并在后台更新时智能缓存,防止滚动条在更新 tick 时跳回第一行。
- 支持云端至设备的 MQTT 消息下发。
- 快捷下拉菜单提供常用动作模板:
- 属性设置 (Property Set):开空调制冷、开启静音模式。
- 服务调用 (Service Call):控制舱盖打开、控制舱盖关闭。
- 自动生成符合大疆云 API 要求的事务随机 UUID (
tid/bid) 和毫秒级时间戳。
- 开发语言与平台:C# 12 / WPF (.NET 8.0 / .NET 10.0)
- MQTT 客户端:MQTTnet v5.2.0.1603 (现代化高性能异步 MQTT 驱动)
- JSON 解析器:System.Text.Json (高效率底层读写)
- 渲染模式:强制指定软件渲染
RenderMode.SoftwareOnly,完美解决虚拟机、无GPU服务器和低端核显下的崩溃与闪烁问题。
dji_cloud_tool/
├── App.xaml / App.xaml.cs # 应用程序入口,配置软件渲染模式
├── MainWindow.xaml / MainWindow.xaml.cs # 主窗口 UI 及核心 UI 数据绑定与轮询分发逻辑
├── MqttManager.cs # MQTTnet 封装,负责高并发异步消息收发与重连
├── DeviceModels.cs # 设备项、主题项模型定义及遥测 VM 数据结构
├── TranslationDictionary.cs # 大疆云物模型 key 到中文含义、分类、单位的翻译字典
└── dji_cloud_tool.csproj # 项目文件与 NuGet 依赖声明
确保您的计算机上已安装 .NET 8.0 SDK 或更高版本。
在项目根目录下打开命令行/终端,执行以下命令:
dotnet restore
dotnet builddotnet run运行后,程序会在 bin\Debug\net8.0-windows\ 目录中生成 dji_cloud_tool.exe 可执行文件。
您可以使用大疆官方机场模拟器或编写测试脚本向所连接 of MQTT 代理发送以下格式的数据以检测联调:
- 系统状态上报 ( sys/product/{gateway_sn}/status )
- 机场属性/OSD上报 ( thing/product/{gateway_sn}/osd )
- 飞机OSD上报 ( thing/product/{aircraft_sn}/osd )
- 事件消息上报 ( thing/product/{gateway_sn}/events )
本工具采用 MIT 授权协议发布。可在商业或非商业环境中免费使用及二次修改。