## 2 任务服务接口文档 SimOne Web Task Server ### 2.1 服务状态接口 #### 2.1.1 获取服务健康状态 **Path:** /api-task/health **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 无 ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | version | 版本 | Yes | string | | current | 当前状态 | Yes | number | | maximum | 最大状态 | No | number | | message | 当前状态信息 | No | string | | level | 服务当前等级 | No | "info" \| "error" \| "warning" | | code | 服务错误代码 | No | number |
### 2.2 任务接口 #### 2.2.1 获取运行的任务或回放的任务id **Path:** /api-task/sessions/isPlay **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 无 ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | testingSessionIds | 运行的任务id | Yes | string[] | | replaySessionIds | 回放的任务id | Yes | string[] |
#### 2.2.2 获取回放任务状态 **Path:** /api-task/sessions/replayTasks **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 无 ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | replayTasks | 回放任务状态 | Yes | Record |
#### 2.2.3 获取任务队列 **Path:** /api-task/sessions/queue **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 无 ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | queue | 排队信息 | Yes | Record |
#### 2.2.4 恢复暂停任务集 **Path:** /api-task/sessions/:id/resume **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.2.5 暂停任务 **Path:** /api-task/sessions/:id/pause **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.2.6 获取任务报告 **Path:** /api-task/sessions/:id/report **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务集id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | success | 是否成功 | Yes | boolean | ##### 备注 返回 success true 之后使用/report/:id_zh-Hans.pdf地址进行下载,例sessionId为123456,下载地址为:原网页网址/report/123456_zh-Hans.pdf
#### 2.2.7 任务下一帧 **Path:** /api-task/sessions/step **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | body | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.2.8 修改仿真速度 **Path:** /api-task/sessions/speed **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | body | 任务id | Yes | string | | speed | body | 任务速度 | Yes | number | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.2.9 任务跳转 **Path:** /api-task/sessions/skipTo **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | body | 任务id | Yes | string | | seconds | body | 任务时间 | Yes | number | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 无
#### 2.2.10 更新主车控制 **Path:** /api-task/sessions/updateVehicleControl **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | body | 任务id | Yes | string | | egoId | body | 主车id | Yes | string | | vehicleControl | body | 主车控制 | Yes | [VehicleControl](#vehicleControl) | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 无
#### 2.2.11 获取回放任务数据 **Path:** /api-task/sessions/:id/replayChartData **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | timestamp | 时间戳 | Yes | string | | taskId | 任务id | Yes | string | | caseId | 案例id | Yes | string | | taskUuid | 任务uuid | No | string | | timeMs | 时间 | No | number | | durationMs | 持续时间 | No | number | | fps | 帧率 | No | number | | speed | 速度 | No | number | | mainvehicles | 主车 | No | [MainVehicleUIData](#mainVehicleUIData) |
#### 2.2.12 获取回放任务状态 **Path:** /api-task/sessions/:id/taskState **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | taskId | 任务id | Yes | string | | isPlay | 是否是回放 | Yes | number |
#### 2.2.13 停止任务集 **Path:** /api-task/sessions/stop **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | ids | body | 任务集id | Yes | string[] | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.2.14 删除任务集 **Path:** /api-task/sessions/delete **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | ids | body | 任务集id | Yes | string[] | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
### 2.3 任务运行时接口 #### 2.3.1 获取任务列表 **Path:** /api-task/tasks/ **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | finished | query | 是否已完成 | Yes | boolean | | page | query | 页数 | Yes | string | | pageSize | query | 每页数量 | Yes | string | | own | query | 是否是自己的任务 | Yes | boolean | | expandedIds | query | 展开的任务id | Yes | string[] | | filters | query | 筛选 | No | string[] | | searchFilter | query | 搜索 | No | string | | startTime | query | 开始时间 | No | number | | endTime | query | 结束时间 | No | number | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | list | 任务列表 | Yes | [TaskListItem](#tasklistitem) | | page | 页数 | Yes | number | | total | 总页数 | Yes | number | | pageSize | 每页数量 | Yes | number |
#### 2.3.2 获取任务详情 **Path:** /api-task/tasks/task **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | taskIds | query | 展开的任务id | Yes | string[] | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | tasks | 任务列表 | Yes | [TaskListItem](#taskListItem)[] |
#### 2.3.3 获取任务数量 **Path:** /api-task/tasks/count **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | own | query | 是否是自己的任务 | Yes | boolean | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | count | 任务数量 | Yes | number |
#### 2.3.4 获取任务队列 **Path:** /api-task/tasks/queue **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | own | query | 是否是自己的任务 | Yes | boolean | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | total | 任务总数 | Yes | number | | running | 运行任务数量 | Yes | number | | pending | 即将运行任务数量 | Yes | number | | waiting | 等待任务数量 | Yes | number | | finished | 结束任务数量 | Yes | number | | estimatedTaskDuration | 预计任务时间 | Yes | number |
#### 2.3.5 清除全部任务(需要管理员权限) **Path:** /api-task/tasks/clean **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | ids | body | 任务id集合 | Yes | string[] | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.3.6 获取指定id的任务 **Path:** /api-task/tasks/:id/task **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.3.7 创建任务 **Path:** /api-task/tasks/ **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | caseIds | body | 案例id | Yes | string[] | | taskName | body | 任务名称 | Yes | string | | overrideVehicleId | body | 覆盖主车id | No | string | | overrideJudgementId | body | 覆盖判定id | No | string | | evaluationPresetId | body | 评价id | No | string | | withEvaluation | body | 是否评价 | No | boolean | | algorithmName | body | 算法名称 | No | string | | algorithmVersion | body | 算法版本 | No | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | sessionId | sessionId | Yes | string | | taskIds | 任务id | Yes | string[] |
#### 2.3.8 回放指定任务 **Path:** /api-task/tasks/:id/replay **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | | RTC | query | 是否RTC任务 | No | boolean | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | taskId | 任务id | Yes | string |
#### 2.3.9 查看任务运行可视化 **Path:** /api-task/tasks/:id/observe **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.3.10 dump任务 **Path:** /api-task/tasks/:id/dump **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | | vizConfig | body | 每页数量 | Yes | [VizConfig](#vizConfig) | | outputConfig | body | 每页数量 | Yes | [OutputConfig](#outputConfig) | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.3.11 获取任务数据 **Path:** /api-task/tasks/:id/data **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | success | 是否成功 | Yes | boolean |
#### 2.3.12 创建回放案例 **Path:** /api-task/tasks/convert2case **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | name | path | 案例名 | Yes | string | | categoryId | body | 保存目录id | Yes | string | | opponent | body | 保存类型,回放案例或标准案例 | No | "record" \| "openscenario" | | ego2npc | body | 选择保存为标准案例时,主车是否转换为对手车 | No | boolean | | tags | body | 标签 | No | string[] | | notes | body | 案例备注 | No | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | | 404 | Not Found | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | id | id | Yes | string |
#### 2.3.12 停止任务 **Path:** /api-task/tasks/stop **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | all | query | 是否停止全部任务 | No | boolean | | ids | body | 任务id | Yes | string[] | | isReplay | body | 是否是回放 | No | boolean | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.3.13 停止回放任务 **Path:** /api-task/tasks/stopReplay **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | ids | body | 任务id | Yes | string[] | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.3.14 删除任务 **Path:** /api-task/tasks/delete **Method:** POST **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | taskIds | body | 任务id | Yes | string[] | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 202 | Ok | ##### 返回数据 无
#### 2.3.15 获取任务是否结束 **Path:** /api-task/tasks/:id/hasFinished **Method:** GET **Headers:**[Headers](#headers) ##### 请求参数 | 字段名 | 传参格式 | 说明 | 是否必填 | 类型 | | -------- | ---------- | ----------- | -------- | ------ | | id | path | 任务id | Yes | string | ##### 返回码 | Code | 说明 | | ---- | ----------- | | 200 | Ok | ##### 返回数据 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | hasFinished | 任务是否结束 | Yes | boolean |

### 通用请求头 #### Headers | 参数名称 | 类型 | 说明 | 是否必填 | | ------------- | ------ | ------------------- | -------- | | Authorization | string | 用于权限验证的token | Yes |
### 相关类型 #### 2.2 任务接口相关类型 ##### ReplayTaskInfo 回放任务信息 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | status | 任务状态 | Yes | string | | mode | 任务模式 | Yes | "replay" \| "dump" | | RTC | 是否RTC任务 | No | boolean | ##### VehicleControl 主车控制输入信息 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | -------- | ------ | ------ | | vehicleId | 主车id | No | number | | throttlepercentage | 油门百分比 | No | number | | steeringpercentage | 转向百分比 | No | number | | brakepercentage | 刹车百分比 | No | number | | handBrake | 手刹状态 | No | boolean | | isManualGear | 是否手动挡 | No | boolean | | manualGear | 手动挡位 | No | number | | gearImmediate | 立即换挡 | No | boolean | | activeInput | 活跃输入 | No | number | | acceleration | 加速度 | No | number | | speed | 速度 | No | number | | signalLights | 信号灯 | No | number | ##### MainVehicleUIData 热区主车信息 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | id | id | No | number \| null | | speed | 速度 | No | number \| null | | throttle | 油门 | No | number \| null | | steering | 转向 | No | number \| null | | brake | 刹车 | No | number \| null | | rpm | 转速 | No | number \| null | | gear | 档位 | No | number \| null | | velocityx | 速度x方向值 | No | number \| null | | velocityy | 速度y方向值 | No | number \| null | | velocityz | 速度z方向值 | No | number \| null | | accelerationx | 加速度x方向值 | No | number \| null | | accelerationy | 加速度y方向值 | No | number \| null | | accelerationz | 加速度z方向值 | No | number \| null | | posx | 位置x方向值 | No | number \| null | | posy | 位置y方向值 | No | number \| null | | posy | 位置z方向值 | No | number \| null | | rotationRate | 旋转比率 | No | number \| null | #### 2.3 任务时运行接口相关类型 ##### VizConfig 可视化配置 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | duration | 开始时间,结束时间 | Yes | [number, number] | | sensors | 传感器 | Yes | { [key: string]: boolean } | ##### OutputConfig dump输出配置 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | -------- | ------ | ------ | | dumpHz | dump频率 | Yes | number | | h264 | H.264编码 | Yes | boolean | | bitrate | 码率 | Yes | number | | bbox3D | 3D边界框 | Yes | boolean | ##### TaskListItem 任务项简要信息 | 字段名 | 说明 | 是否必填 | 类型 | | -------- | ----------- | -------- | ------ | | id | 任务id | Yes | string | | parentId | sessionId | Yes | string \| null | | loading | 是否加载中 | No | boolean | | userId | 用户名 | No | string | | userName | 用户姓名 | No | string |