CollisionAvoidance/docs/official_api.md

226 lines
8.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 数据接口对接方案
## 第1章 位置数据接口对接方案
### 1.1 登录认证
1. 登录接口:<http://IP:端口/login>
2. 请求方式post
3. 参数username、password
4. 示例:<http://127.0.0.1:8080/login?username=XXXX&password=XXXX>
5、返回值 data 为返回的鉴权token后续接口需要再header中携带data所有的数据是一个token不要截断
示例:{
    "status": 200,
    "msg": "登入成功",
    "data": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MzI3ODMwOTAsInVzZXJuYW1lIjoiYWRtaW4ifQ.y9feEL_9NT8UzED9NNkb0Ln6C-PBoufiSHWobWe5vWY"
}
### 1.2 航空器位置数据接入
数据来源:接入并转发从空管接收到的融合数据
1. 接口地址:<http://IP:端口/openApi/getCurrentFlightPositions>
2. 请求方式get需要在 Header 中携带认证信息,字段名为 Authorization值为认证接口返回的token
3. 返回格式:以 JSON 格式返回数据一次请求返回List集合对象
4. 数据结构:
| 序号 | 字段 | 描述 | 字段类型 | 是否必填 |
|-----|------|------|----------|----------|
| 1 | flightNo | 航班号 | String | 是 |
| 2 | longitude | 经度 | double | 是 |
| 3 | latitude | 纬度 | double | 是 |
| 4 | time | 时间戳UTC 时间) | long | 是 |
| 5 | altitude | 海拔高度 | double | 否 |
| 6 | trackNumber | 航迹号 | long | 否 |
### 1.3 车辆位置数据接入
数据来源:仅传递目前机场已接入的车辆位置数据
1. 接口地址:<http://IP:端口/openApi/getCurrentVehiclePositions>
2. 请求方式get需要在 Header 中携带认证信息,字段名为 Authorization值为认证接口返回的token
3. 返回格式:以 JSON 格式返回数据一次请求返回List集合对象
4. 数据结构:
| 序号 | 字段 | 描述 | 字段类型 | 是否必填 |
|-----|------|------|----------|----------|
| 1 | vehicleNo | 车牌号 | String | 是 |
| 2 | longitude | 经度 | double | 是 |
| 3 | latitude | 纬度 | double | 是 |
| 4 | time | 时间戳 | long | 是 |
| 5 | direction | 方向 | double | 否 |
| 6 | speed | 速度 | double | 否 |
## 第2章 无人车控制接口对接方案
### 2.1 无人车控制指令
2.1.1 接口地址: <http://127.0.0.1:31140/api/VehicleCommandInfo>
2.1.2 请求方法POST
2.1.3 请求参数:
| 字段名称 | 类型 | 是否必填 | 说明 |
|---------|------|----------|------|
| transId | string | 是 | 消息唯一 id消息的唯一标识符 |
| timestamp | long | 是 | 时间戳 |
| vehicleID | string | 是 | 车辆 ID |
| commandType | string | 是 | 指令类型ALERT告警指令SIGNAL信号灯指令WARNING预警指令RESUME恢复指令 |
| commandReason | string | 是 | 指令原因TRAFFIC_LIGHT红绿灯控制AIRCRAFT_CROSSING航空器交叉SPECIAL_VEHICLE特勤车辆AIRCRAFT_PUSH航空器推出RESUME_TRAFFIC恢复通行 |
| signalState | string | 否 | 信号灯状态(仅当 commandType 为 SIGNAL 时有效RED红灯GREEN绿灯YELLOW黄灯 |
| intersectionId | string | 否 | 路口 ID仅当 commandType 为 SIGNAL 时有效) |
| latitude | double | 是 | 目标位置纬度(路口/航空器/特勤车) |
| longitude | double | 是 | 目标位置经度(路口/航空器/特勤车) |
| relativeSpeed | double | 否 | 相对速度(仅当 commandType 为 ALERT/WARNING 时有效) |
| relativeMotionX | double | 否 | 相对运动 X 分量(仅当 commandType 为 ALERT/WARNING 时有效) |
| relativeMotionY | double | 否 | 相对运动 Y 分量(仅当 commandType 为 ALERT/WARNING 时有效) |
| minDistance | double | 否 | 最小距离(仅当 commandType 为 ALERT/WARNING 时有效) |
示例:
requestData:
{
"messageUniqueId": "68f79d1a-e27f-11ed-b28c-2cf05d9c2649",
"timestamp": 1736175610000,
"vehicleID": "A001",
"commandType": "SIGNAL",
"commandReason": "TRAFFIC_LIGHT",
"signalState":"RED",
"intersectionId":"002",
"latitude": 343.23,
"longitude": 343.23,
"relativeSpeed": 3,
"relativeMotionX": 2002.12,
"relativeMotionY":100.12,
"minDistance":10.5
}
返回值:
| 字段名 | 类型 | 是否必须 | 描述 |
|---------|------|----------|------|
| transId | string | 是 | 消息唯一id消息的唯一标识符与请求id一致 |
| timestamp | long | 是 | 时间戳 |
| code | int | 是 | 接口返回的状态码200 请求成功400 请求失败并在msg内返回原因 |
| msg | string | 是 | 接口成功/失败的原因或者附加提示信息 |
示例:
responseData:
{
"code": 200,
"msg": "success",
"transId": "68f79d1a-e27f-11ed-b28c-2cf05d9c2649",
"timestamp": 1736175610
}
### 2.2 无人车位置上报
1. 接口地址: <http://127.0.0.1:31140/api/VehicleLocationInfo>
2. 请求方法GET
3. 返回值(以 List 数据返回,一次请求返回集合对象):
| 字段名称 | 类型 | 是否必填 | 说明 |
|---------|------|----------|------|
| transId | string | 是 | 消息唯一 id消息的唯一标识符 |
| timestamp | long | 是 | 时间戳UTC 时间,单位:毫秒) |
| vehicleID | string | 是 | 车辆 ID |
| latitude | double | 是 | 纬度 |
| longitude | double | 是 | 经度 |
| speed | double | 是 | 速度单位m/s |
| direction | double | 是 | 车头航向角,正东为 0 度(弧度) |
示例:
requestData:
[
{
"transId": "68f79d1a-e27f-11ed-b28c-2cf05d9c2649",
"timestamp": 1736175610000,
"vehicleID": "AT001",
"latitude": 123.112,
"longitude": 78.331,
"speed": 3.2,
"direction": 1.57
}
]
### 2.3 无人车状态上报
1. 接口地址: <http://127.0.0.1:31140/api/VehicleStateInfo>
2. 请求方法POST
3. 请求参数:
| 字段名称 | 类型 | 是否必填 | 说明 |
|---------|------|----------|------|
| transId | string | 是 | 消息唯一 id消息的唯一标识符 |
| timestamp | long | 是 | 时间戳UTC 时间,单位:毫秒) |
| vehicleID | string | 是 | 车辆 ID |
| isSingle | boolean | 是 | True单个车辆False所有车辆 |
示例:
requestData:
{
"transId": "68f79d1a-e27f-11ed-b28c-2cf05d9c2649",
"timestamp": 1736175610000,
"vehicleID": "AT001",
"isSingle": true
}
4. 返回值(以 List 数据返回,一次请求返回集合对象):
| 字段名称 | 类型 | 是否必填 | 说明 |
|---------|------|----------|------|
| transId | string | 是 | 消息唯一 id消息的唯一标识符 |
| timestamp | long | 是 | 时间戳UTC 时间,单位:毫秒) |
| vehicleID | string | 是 | 车辆 ID |
| loginState | boolean | 是 | 登录状态True登录False未登录 |
| faultInfo | list | 是 | 故障信息,以列表返回,可能存在多个 |
| activeSafety | boolean | 是 | 车辆最小风险策略触发主动安全True触发False未触发 |
| RC | boolean | 是 | 被接管或干预相关信息是否被远控RemoteControlTrue车辆在遥控器远控模式False车辆处于自动驾驶模式 |
| Command | int | 是 | 接收的远程指令信息0恢复1急停2缓停 |
| airportInfo | list | 否 | 机场特殊要求的其他信息 |
| vehicleMode | int | 是 | 无人设备控制模式底盘控制模式1:手动司机驾驶2:自动3:遥控器4:远程5故障等待 |
| gearState | int | 是 | 车辆当前档位1:N2:D3:P4:R, 5: 未知 |
| chassisReady | boolean | 是 | 底盘是否准备就绪True车辆发控制指令就可以走false: 其他 |
| collisionStatus | boolean | 否 | 防撞梁是否触发true触发false未触发 |
| clearance | int | 是 | 0关闭1开启示廓灯 |
| turnSignalStstus | int | 是 | 转向灯状态0off , 1 : trun left , 2 : trun right, 3: 双闪 |
| pointCloud | list | 否 | 点云数据字节流每个点的长度现在是12每个坐标为float长度4|
示例:
responseData:
[
{
"transId": "68f79d1a-e27f-11ed-b28c-2cf05d9c2649",
"timestamp": 1736175610000,
"vehicleID": "AT001",
"loginStatus":true,
"faultInfo":[],
"activeSafety":false,
"RC":false,
"Command":0,
"airportInfo":[],
"vehicleMode": 2,
"gearState": 2,
"chassisRaedy":true,
"collisionStatus":false,
"clearance":0,
"turnSignalStstus":0,
"pointCloud":[]
}
]