Skip to content

1 前言

当前文档既为任务回放微服务的协议文档,也为任务回放微服务的接口文档。

所有消息体(请求或响应)均采用,统一结构如下,以下所有接口的协议表格内容,均属于data部分:

字段名类型必填备注
msgIdstring当前指令的唯一标识
datajson数据
codeint0成功,其它失败
msgstring接口调用失败时的一些错误消息

1.1 mqtt

mqtt 请求url为“/joeap/mrp/”,以下所有消息topic前面都要加上。比如配置的请求接口:/joeap/mrp/mrpGetReplayData

1.2 http

http接口的url均为“/joeap/mrp/”,以下所有消息topic前面都要加上。比如配置的请求接口:http://127.0.0.1/joeap/mrp/mrpGetReplayData

1.3 调用示意图

2 接口协议

2.1 设置微服务的配置

接口名称:setConfig

请求内容:

字段名称类型必填描述

返回内容:

字段名称类型必填描述

2.2 获取微服务的配置

接口名称:setConfig

请求内容:

字段名称类型必填描述

返回内容:

字段名称类型必填描述

2.3 设置任务回放路径

接口名称:mrpSetRPFileDir

请求内容:

字段名称类型必填描述

返回内容:

字段名称类型必填描述

2.4 获取任务回放路径

接口名称:mrpGetRPFileDir

请求内容:无参数

返回内容:

字段名称类型必填描述

2.5 写入操作记录

接口名称:mrpAddRPRecord

请求内容:

字段名称类型必填描述
plan_id任务guid
topic记录数据的topic名字 (/index/api/mrp/mrpOpenReplay)
record
type飞行记录数据类型 (无人机控制:“pcservice” 载荷控制:“payloadservice”, 任务规划:“missionservice”, 流媒体:“mediaservice”)
time_stamp时间戳

其中jsonObject的主要内容为

序号字段名称类型必填描述

返回内容:

字段名称类型必填描述

2.6 读取操作记录

接口名称:mrpGetRPRecords

请求内容:

字段名称类型必填描述

返回内容:

字段名称类型必填描述
data当前指令的唯一标识

请求示例:

json
{
  "secret": "035c73f7-bb6b-4889-a715-d9eb2d1925ee",
  "path": "D:/code/jocpl-rcmsn/jomissionrpservice/bld/src/service/rpfile/23545235445.txt",
  "filter": { "time": { "timestamp": 1726295914008, "threshold": 16 } }
}

其中表示以时间来查询,可查询某个时间戳多少±ms内的记录。如上表示查询1726295914008时刻,前16ms和后16ms这个时间段的所有记录数据。

返回json示例:

json
{
  "code": 0,
  "data": {
    "records": [
      "{\"plan_id\":\"23545235445\",\"record\":{\"data\":{\"timestamp\":1726295914008}},\"time_stamp\":1726295914008,\"topic\":\"/index/pushTelemetry\",\"type\":\"pcservice\"}"
    ]
  },
  "msg": "success"
}

2.7 打开数据回放

接口名称:mrpOpenReplay

请求内容:

字段名称类型必填描述
plan_id任务guid

备注:当有视频流数据时,通过webrtc的视频流通道和datachanel通道;

没有视频时,则通过mqtt协议发送回放数据;

返回内容:

字段名称类型必填描述

接口名称:mrpGetReplayData

请求内容:无

返回内容:

字段名称类型必填描述
plan_id任务guid
topic记录数据的topic名字 (/index/api/mrp/mrpOpenReplay)
record
type飞行记录数据类型 (无人机控制:“pcservice” 载荷控制:“payloadservice”, 任务规划:“missionservice”, 流媒体:“mediaservice”)
time_stamp时间戳

其中record为各个微服务完整的操作接口记录数据。

如对于遥测接口的获取的记录:其中type可以区分是哪个微服务发送的接口。

2.9 暂停数据回放

接口名称:mrpPauseReplay

请求内容:

字段名称类型必填描述
plan_id任务guid

返回内容:

字段名称类型必填描述

2.10 停止回放

接口名称:mrpStopReplay

请求内容:

字段名称类型必填描述
plan_id

返回内容:

字段名称类型必填描述

2.11 获取回放当前位置

接口名称:mrpGetRPFilePos

请求内容:

字段名称类型必填描述
plan_id

返回内容:

字段名称类型必填描述
plan_id

2.12 设置回放位置

接口名称:mrpSetRPFilePos

请求内容:

字段名称类型必填描述
plan_id

返回内容:

字段名称类型必填描述

2.13 获取回放速率

接口名称:mrpGetRPSpeed

请求内容:

请求内容:

字段名称类型必填描述
plan_id

返回内容:

字段名称类型必填描述
plan_id

2.14 设置回放速率

接口名称:mrpSetRPSpeed

请求内容:

字段名称类型必填描述
plan_id

返回内容:

字段名称类型必填描述

2.15 获取回放任务的信息

接口名称:mrpGetPlanInfo

请求内容:

字段名称类型必填描述
plan_id

返回内容:

字段名称类型必填描述
plan_id任务guid

2.16 获取回放任务的列表

接口名称:mrpGetPlanList

请求内容:

字段名称类型必填描述

返回内容:

字段名称类型必填描述

其中data中的json数据格式如下,为一个数组,返回已经打开回放任务的基本数据。

json
{
  "code": 0,
  "data": [
    {
      "file_path": "E:/code/rpfile/test/235452354.txt",
      "plan_id": "235452354",
      "pull_url": "E:/project/test.mp4",
      "push_url": "webrtc://127.0.0.1:3456/test/mrp"
    }
  ]
}