Appearance
1. 前言
所有消息体均采用json格式,结构如下:
| 字段 | 类型 | 备注 |
|---|---|---|
| msgId | string | 当前指令的唯一标识,非必填 |
| type | string | request 代表该服务接收的 response 代表该服务返回的 |
| data | json | 请求或者响应数据 |
| code | int | MQTT:200成功;400 失败; HTTP: 0 成功 -1 业务代码执行失败 -2 未成功连接飞控 -300 参数不合法 -400 代码抛异常 |
| msg | string | 接口调用失败时的一些错误消息 |
| id | string | 飞控编号 |
1.1. MQTT
plain
mqtt clientId使用"jopc-站点唯一标识", 以下所有消息topic前面都要加上"/jopc-站点唯一标识"; 比如获取文件列表:"/jopc-站点唯一标识/getFileList"。如果站点编号为空,则为"/jopc/getFileList"。
1.2. HTTP
plain
http接口的uri,均为"/index/api/data/站点唯一标识/",以下所有消息topic前面都要加上。比如获取文件列表的请求接口:http://127.0.0.1/index/api/data/站点唯一标识/getFileList;如果站点编号为空,则为"http://127.0.0.1/index/api/data/getFileList"。2. 文件回传模块
2.1. 概述
plain
下载机载图片、视频等文件到本地,再上传这些文件到OSS(对象存储服务)。2.1.1. fileType字段表
以下mqtt接口的fileType字段的值
| 值(全大写或者全小写) | 描述 | 文件列表的获取路径 |
|---|---|---|
| image | 吊舱图片:返回文件路径 | NX:/mnt/sdcard/VIDEO |
| image_sony | 索尼相机:返回目录路径 | 根据实际挂载的路径 |
| image_five | 五拼相机:返回目录路径 | 根据实际挂载的路径 |
| video | 机载视频:返回文件路径 | NX:/mnt/sdcard/VIDEO |
| lidar | 雷达数据:返回目录路径 | lidar1000:/ |
| ins | 惯导数据:返回文件路径 | /mnt/sdcard/jo_lidar |
| pos | 照片pos数据:返回文件名 | 二代飞控:http服务ip,端口(默认是9800),默认是飞控的ip,eg:http://10.0.0.1:9800 |
| 一代飞控 | ||
| rover | 机载rover数据:返回文件名 | 二代飞控http服务ip,端口(默认是9800),默认是飞控的ip,eg:http://10.0.0.1:9800 |
| 一代飞控:串口 | ||
| black_box | 黑匣子数据:返回文件名 | 二代飞控http服务ip,端口(默认是9800),默认是飞控的ip,eg:http://10.0.0.1:9800 |
| 一代飞控:串口 | ||
| pps_gcs1000 | 基站GCS1000 PPS数据 | 基站ip,eg:http://x.x.x. |
| dat | dat回放数据 |
2.2. 数据回传配置
主题:backhaulCfg
请求内容
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| endpoint | String | 否 | oss服务器的IP和端口,比如127.0.0.1:6888 |
| userName | String | 否 | oss服务器的用户名,使用base64加解密 |
| passwd | String | 否 | oss服务器的密码,使用base64加解密 |
| taskId | String | 否 | 任务ID |
| bucketName | String | 否 | oss桶名称 |
2.3. 回传数据
主题:noticeUploadFile
2.3.1. 请求内容
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| tryCount | int | 否 | 数据下载、回传失败时的重试次数,默认5次 |
| fileType | string | 是 | 数据类型(参考2.1.1) |
| lidarType | int | 否 | 雷达类型,需要获取雷达数据时,必填该值: lidar120:1 lidar1000:2 lidar1350:3 lidar1500:4 LR:5 LR22S:6 |
| vehicleModel | string | 否 | 飞机型号,英文字母大写:CW_007, CW_10, CW_15, CW_15II,(大写的i) CW_20, CW_25, CW_25E, CW_30, CW_100, PH_25 |
| pathPrefix | string | 否 | 保存到oss的路径前缀,不包含桶名称 |
| taskId | string | 否 | 任务ID |
| downloadPath | string | 是 | 下载路径,参考2.1.1 |
| serialPortName | string | 否 | 串口名称 |
| baud | int | 否 | 波特率 |
| http | |||
| fileName | string | 是 | 文件名 |
| mqtt | |||
| filePathLists | array[json] | 是 | 数据的绝对路径所组成的数组:获取数据列表时返回 |
| 单个json的内容 | |||
| isFile | int | 是 | 1文件,0目录 |
| path | string | 是 | 文件或目录的路径:根据获取文件列表时返回的数据;pos和rover数据,只需要传文件名 |
2.3.2. 返回内容
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| mqtt:异步返回数据 | |||
| fileType | String | 是 | 数据类型(参考2.1.1) |
| lidarType | int | 否 | 雷达类型,需要获取雷达数据时,必填该值: lidar120:1 lidar1000:2 lidar1350:3 lidar1500:4 LR:5 LR22S:6 |
| taskId | String | 否 | 任务ID,如果有传的话 |
| http:同步返回数据流 |
2.4. 设置文件上传结果
**主****题:setFileUploadResult**
主动返回内容:每回传一个文件都会返回
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| isSucceed | int | 是 | 是否下载或上传成功:0成功,1下载失败,2上传失败 |
| failedFilePath | string | 否,失败时必填 | 失败的文件的机载路径 |
| taskId | string | 否 | 任务ID |
| url | string | 是 | 上传文件后返回的地址 |
| type | string | 是 | 文件类型(参考2.1.1) |
2.5. 获取文件列表
主题:getFileList
2.5.1. 请求内容
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| fileType | string | 是 | 数据类型,参考2.1.1 |
| isFile | int | 是 | 1文件,0目录 |
| lidarType | int | 否,雷达类型必填 | 雷达类型,需要获取雷达数据时,传该值: lidar120:1 lidar1000:2 lidar1350:3 lidar1500:4 LR:5 LR22S:6 |
| taskId | string | 否 | 任务ID |
| downloadPath | string | 是 | 下载路径,参考2.1.1 |
| vehicleModel | string | 否 | 飞机型号,英文字母大写:CW_007, CW_10, CW_15, CW_15II,(大写的i) CW_20, CW_25, CW_25E, CW_30, CW_100, PH_25 |
| pageNo | int | 否 | 页码,默认为1 |
| pageSize | int | 否 | 单页文件数,默认为10 |
| sort | int | 否 | 文件时间排序方式 0 升序, 1-降序,默认为1 |
| serialPortName | string | 否 | 串口名称 |
| baud | int | 否 | 波特率 |
3.5.2. 返回内容
| 字段 | 类型 | 描述 |
|---|---|---|
| fileType | string | 数据类型(参考6.1.1),请求参数 |
| lidarType | int | 非必填,雷达类型才会返回 |
| taskId | String | 任务ID,请求参数 |
| count | int | filePathLists的大小 |
| downloadPath | string | 下载路径,传的什么就返回什么 |
| filePathLists | array[json] | 返回参数 |
| 文件或目录的信息 | ||
| filePath | string | 文件或目录的绝对路径 |
| fileName | string | 当获取pos、rover数据时,才有 |
| lastTime | string | 文件最近一次的修改时间 |
| fileSize | string | 文件大小,单位字节,只有是文件时才有 |
| isFile | int | 1文件,0目录 |
| fileTotal | int | 文件数量:当返回目录时,是每个目录内文件的数量 |
3.5.3. 示例
json
{"data":
{"fileType":
"iamge",
"taskId":
"xxx"},
"type":"request"}
{"data":
{"filePathLists":
["aaa","bbb"...],
"fileType":"iamge",
"taskId":"xxx"},
"type":"response",
"code":200}2.6. 请求回传进度
主题:getBackhaulProgress
内容
| 字段 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| progressVal | int | 是 | 回传进度值:0~100 |
| progressState | int | 是 | 当前数据回传处于哪个状态:0:当前不存在任务,1:下载数据,2:回传数据,3:回传完成 |
| fileType | string | 是 | 数据类型,参考2.1.1 |
| taskId | string | 否 | 任务ID |
| vehicleModel | string | 否 | 飞机型号,英文字母大写:CW_007 CW_10 CW_15 CW_15II,大写的i CW_20 CW_25 CW_25E CW_30 CW_100 PH_25 |
备注:请求pc当前这一组数据(通知pc上传数据时所传的那些数据)的回传进度
2.7. 主动上报数据回传当前状态
主题:noticeBackhaulState
内容
| 字段 | 类型 | 描述 |
|---|---|---|
| progressState | int | 当前数据回传处于哪个状态:1:下载数据,2:回传数据,3:回传完成 |
| fileType | String | 数据类型(参考2.1.1) |
| taskId | String | 非必填,任务ID |
备注:pc主动上报当前这一组数据(通知pc上传数据时所传的那些数据)的状态
2.8. 删除机载数据
主题:deleteBoardFile
内容
| 字段 | 类型 | 描述 |
|---|---|---|
| filePathLists | StringArray | 机载数据的绝对路径 |
| fileType | String | 数据类型(参考2.1.1) |
| taskId | String | 非必填,任务ID |

