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