4.5 KiB
mqtt 工具使用
工具下载
MQTT Explorer | An all-round MQTT client that provides a structured topic overview (mqtt-explorer.com)
各环境mqtt服务器地址
- 云南蒙自地址 112.116.71.17:1883
- 测试地址 121.40.120.163:1883
- 正式地址 39.174.88.210:12468
按照下图输入IP和端口,暂时不需要用户名和密码可以直接登录
订阅消息 /ah/# 订阅所有消息 /ah/uav/# 只订阅全部无人机消息 /ah/hangar/# 只订阅全部机库消息 /ah/设备类型/设备序列号/# 订阅指定设备的全部消息
按照下面步骤新增订阅并连接到服务器
app 日志查看
日志目前都存储在自己部署的minio 云存储。 下面是地址和账号 ”/“之前的是账号,后面是密码 云南 http://112.116.71.17:9000/ device-application/s&F4dGN9Q1taErBOuBPVrd3hXhMNhsCt 正式服务器 http://39.174.88.210:12490/login device-application/s&F4dGN9Q1taErBOuBPVrd3hXhMNhsCt 测试服务器 http://39.174.88.209:10790/buckets/aihang/browse device-application/s&F4dGN9Q1taErBOuBPVrd3hXhMNhsCt
查问题流程
- 当有人反馈问题时,先初步判断是否为app 相关问题,一般涉及到飞机相关的操作都有可能是app 端的问题。
- 然后根据提供的任务ID去查日志,日志文件名称为飞机序列号+任务名称+任务ID+ 时间戳+时间戳转换出来的日期和时间。如果查不到任务ID 就需要根据问题反馈人反馈时间去找附近时间段的日志文件。
- 找到日志文件之后一般需要解析日志文件,我用这个也可以用别的 在线JSON转Excel工具 - UU在线工具 (uutool.cn)
!
一般只需要看actioninfo 这个字段的东西就行,里面都是关键信息。
任务整个流程为,流程为同步任务,一步出错则后续都不执行:
- 前端页面用户下发任务
- 后端对任务数据、天气、设备状态等进行校验
- 后端下发开库开机 机库端返回成功
- 后端下发遥控器开机 app 返回成功
- 后端下发自检,app 返回自检成功
- 后端下发任务执行,app 返回执行成功
- 后端关闭机库
- 任务中 就正常飞行,也可能会收到远程控制指令这时候会暂停任务,响应远程控制的指令
- 任务结束app调用任务结束接口,接口返回成功飞机返航,三次失败就飞机前往备降点
- 任务结束接口调用成功,后端执行开库动作
- 开库成功后后端发送降落请求这时app 控制无人机进行降落流程
- 降落请求长时间未响应,后端会在降落请求发送后的30分钟执行关库指令
- 降落成功后,app进行图片传输,后端操作机库执行关库夹紧推杆动作
- app图片传输结束后app 调用后端的飞机关机接口,整个任务流程结束
当用户判断出现问题时,先查对应的指令,首先看对应设备有没有收到指令,未收到则为后端或者前端问题。 app 这边对每次收到的指令都会做出响应,无响应说明app有问题。 app 响应且响应为成功结果,则后端或者前端有问题。如果响应结果为错误则根据报错信息查问题
暂存已知问题
执行任务起飞后不关库 后端偶发性问题暂未定位到问题 机库开库无人机不开机 后端偶发性问题暂未定位到问题 降落后关库,但是关机失败,已解决,但是测试量不够不确定是否会复现 开库开机后,app 显示传输数据完成,关闭无人机 已解决待测试
app 指令接收和响应
指令接收
接收执行的 mqtt topic为 /ah/uav/无人机序列号/command/ 指令消息体如下,app 日志会保存下 code 和requestId的内容
{
"code": "task_stop",
"data":"",
"sdkType": "msdk",
"deviceId": "1ZNDH8500B72MM",
"requestId": "1111",
"time": 1667467817551
}
指令响应
接收执行的 mqtt topic为 /ah/uav/无人机序列号/commandResponse/ 消息结构如下,当code 不为0是属于指令执行异常,msg 字段会加上原因
{
"code": 0,
"data": "camera_vertical",
"msg": "on",
"requestId": "1111"
}







