416 lines
12 KiB
Markdown
416 lines
12 KiB
Markdown
|
||
|
||
# 车辆信息接口文档
|
||
|
||
## 1. 概述
|
||
* **连接方式**:WebSocket
|
||
* **数据格式**:JSON
|
||
* **交互逻辑**:客户端建立 WebSocket 连接成功后,服务端会自动推送数据。
|
||
|
||
---
|
||
|
||
## 2. 接口详情
|
||
|
||
### 2.1 VehicleOrderInfo - 任务信息
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager`
|
||
* **用途**:GUI 根据该消息刷新页面任务信息
|
||
* **推送频率**:数据变化推送
|
||
* **Message Name**:`VehicleOrderInfo`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `VehicleOrderInfo` |
|
||
| businessKey | 任务id | 是 | str | 任务的唯一标识 |
|
||
| vehicleId | 车号 | 是 | str | 车号 |
|
||
| jobStatus | 任务状态 | 是 | int | 0:未开始, 1:执行中, 4:终止, 9:完成 |
|
||
| abortBy | 取消来源 | 否 | str | 描述任务是被谁终止的 |
|
||
| cancelReason | 取消原因 | 否 | str | 描述任务取消的原因 |
|
||
| jobStage | 任务进度 | 是 | str | |
|
||
| jobStageTag | 任务进度标签 | 是 | str | |
|
||
| origin | 任务来源 | 是 | str | GUI客户端发送的任务 |
|
||
| jobType | 收送类型 | 是 | str | 作业类型 |
|
||
| passingLocation | 任务必经点 | 否 | str | |
|
||
| isNeedToTs | 是否经过锁站 | 否 | int | |
|
||
| movementType | 作业类型 | 否 | str | |
|
||
| offset | 引导值 | 否 | str | |
|
||
| vesselVisitID | 船id | 否 | str | |
|
||
| uniqueOrderIDOrigin | 原始任务ID | 否 | str | 重派的任务该字段为原始任务ID |
|
||
| **destination** | **目的位置** | **是** | **dict** | |
|
||
| └ logicalLocation | 目的位置 | 是 | dict | |
|
||
| ├ area | 目标区域类型 | 是 | str | 固定值 YARD |
|
||
| ├ block | 目标区域 | 是 | str | |
|
||
| ├ lane | 车道 | 是 | str | |
|
||
| ├ stack | 贝位 | 是 | str | |
|
||
| **points** | **指定点位** | **否** | **dict** | 该值不为空时系统使用该坐标导航(如GUI选点) |
|
||
| └ x | x坐标 | 否 | float | |
|
||
| └ y | y坐标 | 否 | float | |
|
||
| └ heading | 航向角 | 否 | float | |
|
||
| jobContent | 任务内容 | 否 | dict | 结构同 destination |
|
||
| **workflowNodes** | **流程节点记录** | **是** | **list** | |
|
||
| └ node | 节点名字 | 是 | str | |
|
||
| └ time | 记录时间戳 | 是 | float | |
|
||
| └ origin | 来源 | 是 | str | AUTO:系统, GUI:人工 |
|
||
| └ state | 节点状态 | 是 | bool | open:当前节点打开, close:已完成 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"data": {
|
||
"messageName": "VehicleOrderInfo",
|
||
"businessKey": "1767666776611",
|
||
"tenantId": "UpHang",
|
||
"processDefKey": "UpHang",
|
||
"vehicleId": "AET01",
|
||
"jobStatus": 1,
|
||
"abortBy": null,
|
||
"orderStatus": "",
|
||
"cancelReason": null,
|
||
"jobStage": "HANG_UP",
|
||
"jobStageTag": "WORKING",
|
||
"jobStageVehicle": 0,
|
||
"origin": "FMS",
|
||
"jobType": "UpHang",
|
||
"qctpCranId": "",
|
||
"craneID": null,
|
||
"passingLocation": "",
|
||
"isNeedToTs": -1,
|
||
"isNeedReshuffGate": 0,
|
||
"movementType": "ProcessTask",
|
||
"vesselVisitID": null,
|
||
"loadable": false,
|
||
"executeTogether": false,
|
||
"doubleYardSpecialStack": null,
|
||
"uniqueOrderIDOrigin": "",
|
||
"firstJobId": "",
|
||
"destination": {
|
||
"logicalLocation": {
|
||
"area": "BackUp",
|
||
"block": "BU01",
|
||
"lane": "01",
|
||
"stack": "001",
|
||
"tier": ""
|
||
},
|
||
"portLocation": {
|
||
"fmsX": null,
|
||
"fmsY": null,
|
||
"fmsZ": null,
|
||
"orientation": null
|
||
}
|
||
},
|
||
"points": {},
|
||
"isSecondBox": false,
|
||
"boxBelongsJob": null,
|
||
"trainId": "",
|
||
"mainId": 1134,
|
||
"createOn": "2026-01-06T02:32:56.685437+00:00",
|
||
"updateOn": "2026-01-06T02:32:56.685437+00:00",
|
||
"plannedContainerDestinationList": [],
|
||
"jobExtra": {
|
||
"hangType": "large",
|
||
"hangNum": "4",
|
||
"uploadNum": "0"
|
||
},
|
||
"jobAdd": [
|
||
{
|
||
"destPointType": "gateDestination",
|
||
"destination": {
|
||
"area": "GateCheck",
|
||
"block": "GC01",
|
||
"lane": "01",
|
||
"stack": "001"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.2 VehicleDetails - 车辆列表/类型
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager`
|
||
* **用途**:GUI 根据该数据展示车辆模型
|
||
* **推送频率**:数据发生变化推送
|
||
* **Message Name**:`VehicleDetails`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `VehicleDetails` |
|
||
| vehicleId | 车号 | 是 | str | |
|
||
| vehicleType | 车辆类型 | 是 | str | 例如:QTRUCK |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"messageName": "VehicleDetails",
|
||
"vehicleId": "AET01",
|
||
"vin": null,
|
||
"manufacturer": null,
|
||
"vehicleType": "QTRUCK",
|
||
"createAt": "2025-08-05T07:54:09.721537+00:00",
|
||
"updateAt": "2025-11-06T07:40:30.789366+00:00",
|
||
"color": null,
|
||
"engineType": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.3 VehicleLoginStatus - 车辆上线/下线消息
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager`
|
||
* **用途**:GUI 根据该数据展示上线/下线的车
|
||
* **推送频率**:数据发生变化推送
|
||
* **Message Name**:`VehicleLoginStatus`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `VehicleLoginStatus` |
|
||
| vehicleId | 车号 | 是 | str | |
|
||
| loginStatus | 上线下线状态 | 是 | str | `login`:在线, `logout`:离线 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"messageName": "VehicleLoginStatus",
|
||
"vehicleId": "AET01",
|
||
"loginStatus": "login"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.4 VehicleChassisInfo - 单车底盘信息
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager`
|
||
* **用途**:GUI 显示速度、电量、里程、底盘模式、胎压等
|
||
* **推送频率**:数据发生变化推送
|
||
* **Message Name**:`VehicleChassisInfo`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `VehicleChassisInfo` |
|
||
| vehicleId | 车号 | 是 | str | |
|
||
| **sys_info** | **系统信息** | **否** | **dict** | |
|
||
| └ i_driving_mode | 驾驶模式 | 否 | str | |
|
||
| └ **state_info** | **状态信息** | **否** | **dict** | |
|
||
| ├ d_speed_kmph | 速度 | 是 | Float | 单位: KM/小时 |
|
||
| ├ i_vehicle_miles_traveled | 里程表 | 否 | str | 底盘记录总路程,单位 m |
|
||
| ├ d_battery_available | 电量 | 否 | str | 剩余电量百分比 |
|
||
| ├ i_gear_position | 档位 | 否 | int | 1:N, 2:D, 3:P, 4:R, 5:未知 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"messageName": "VehicleChassisInfo",
|
||
"vehicleId": "AET01",
|
||
"reportAt": 1767667344.8743727,
|
||
"sys_info": {
|
||
"i_at_id": "AET01",
|
||
"i_driving_mode": "1",
|
||
"overweight_speed_limit": 0,
|
||
"state_info": {
|
||
"d_speed_kmph": 0,
|
||
"d_battery_available": "0.0",
|
||
"d_battery_soh": "0.0"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.5 VehicleSuspendReport - 车辆紧停状态
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager`
|
||
* **用途**:GUI 操作紧停/恢复按钮状态,或展示当前车辆是否紧停
|
||
* **推送频率**:数据发生变化推送
|
||
* **Message Name**:`VehicleSuspendReport`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `VehicleSuspendReport` |
|
||
| vehicleId | 车号 | 是 | str | |
|
||
| suspendStatus | 当前车辆状态 | 是 | int | 0:恢复行驶, 1:紧急急停, 2:缓停 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"messageName": "VehicleSuspendReport",
|
||
"vehicleId": "AET01",
|
||
"suspendStatus": 0,
|
||
"origin": "device"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.6 VehicleTailerNum - 拖挂数量
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager`
|
||
* **用途**:推送单车拖挂数量
|
||
* **推送频率**:N/A (通常为变化推送)
|
||
* **Message Name**:`VehicleTailerNum`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `VehicleTailerNum` |
|
||
| vehicleId | 车号 | 是 | str | |
|
||
| tailerNum | 拖挂数量 | 是 | str | 0或空表示无挂,其他数字表示有挂 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"messageName": "VehicleTailerNum",
|
||
"vehicleId": "AET01",
|
||
"tailerNum": "0"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.7 VehiclePositionInfo - 车辆位置信息
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager_bsm`
|
||
* **用途**:GUI 根据该数据展示车辆位置信息
|
||
* **推送频率**:数据发生变化推送
|
||
* **Message Name**:`VehiclePositionInfo`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `VehiclePositionInfo` |
|
||
| vehicleId | 车号 | 是 | str | |
|
||
| x | 车辆X坐标 | 是 | float | |
|
||
| y | 车辆Y坐标 | 是 | float | |
|
||
| theta | 车辆航向角 | 是 | float | 弧度:正东0, 正北1.57, 正西3.14, 正南-1.57 |
|
||
| direction | 行驶方向 | 是 | int | 1:正向行驶, 2:反向行驶 |
|
||
| **trailer** | **拖挂信息** | **是** | **dict** | |
|
||
| └ x | 拖挂x坐标 | 是 | float | 不准,是车头坐标 |
|
||
| └ y | 拖挂Y坐标 | 是 | float | 不准,是车头坐标 |
|
||
| └ theta | 拖挂角度 | 是 | float | 弧度定义同上 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"messageName": "VehiclePositionInfo",
|
||
"vehicleId": "AET01",
|
||
"updateAt": "20260106T024227963Z",
|
||
"update_at": "20260106T024227963Z",
|
||
"reportAt": 1767667348.1297243,
|
||
"report_at": 1767667348.1297243,
|
||
"action": 0,
|
||
"z": 0,
|
||
"x": 6.12613,
|
||
"y": 101.70456,
|
||
"direction": 0,
|
||
"v": 0,
|
||
"theta": -1.5224342,
|
||
"trailer": {
|
||
"x": 3.555143,
|
||
"y": 111.36841,
|
||
"theta": 100000
|
||
}
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.8 NaviShortPathReport - 车辆短路径信息
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager_path`
|
||
* **用途**:GUI 根据该数据展示车辆路径规划
|
||
* **推送频率**:数据发生变化推送
|
||
* **Message Name**:`NaviShortPathReport`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `NaviShortPathReport` |
|
||
| vehicleId | 车号 | 是 | str | |
|
||
| vehicleMissionId | 任务ID | 是 | str | (注:原文此处类型标注为float有误,示例为str) |
|
||
| destinationType | 目的地类型 | 是 | int | |
|
||
| **path** | **路径信息** | **是** | **list** | |
|
||
| └ x | 路径点x坐标 | 是 | float | UTM坐标 |
|
||
| └ y | 路径点y坐标 | 是 | float | UTM坐标 |
|
||
| └ theta | 路径点角度 | 是 | float | 弧度定义同上 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"vehicleId": "AET01",
|
||
"vehicleMissionId": "04078d1e-eaa8-11f0-8723-fa30eca52200",
|
||
"destinationType": "",
|
||
"shortNavi": false,
|
||
"path": [
|
||
{
|
||
"x": 6.126130111981183,
|
||
"y": 101.70455933734775,
|
||
"theta": -1.5224548170138026
|
||
},
|
||
{
|
||
"x": 6.138059945020359,
|
||
"y": 101.45796921849251,
|
||
"theta": -1.5224956618374788
|
||
},
|
||
{
|
||
"x": 6.650000399346166,
|
||
"y": 50.25839266739786,
|
||
"theta": -1.570796333683315
|
||
}
|
||
],
|
||
"messageName": "NaviShortPathReport"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2.9 GetFmsMessage - 系统和单车告警信息
|
||
|
||
* **接口地址**:`ws://ip:port/ws/at_manager`
|
||
* **用途**:推送系统和单车的告警信息
|
||
* **推送频率**:数据发生变化推送
|
||
* **Message Name**:`GetFmsMessage`
|
||
|
||
#### 输出参数
|
||
|
||
| 参数名 | 参数说明 | 是否必填 | 字段类型 | 备注说明 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| messageName | 消息名称 | 是 | str | 固定值 `GetFmsMessage` |
|
||
| vehicleID | 车号 | 是 | str | |
|
||
| description | 描述 | 否 | str | |
|
||
| code | 告警码 | 否 | str | |
|
||
| level | 告警等级 | 是 | int | |
|
||
| type | 来源 | 是 | int | 1:单车, 2:系统告警 |
|
||
| ts | 告警时间 | 是 | str | 时间戳 |
|
||
|
||
#### 代码示例
|
||
```json
|
||
{
|
||
"vehicleID": "AET01",
|
||
"code": "4119010",
|
||
"type": 1,
|
||
"level": 4,
|
||
"isActive": 1,
|
||
"longTermDisplayMessage": false,
|
||
"description": "里程计信息超时",
|
||
"ts": "2026-01-06T03:36:09.637195+00:00",
|
||
"messageName": "GetFmsMessage"
|
||
}
|
||
``` |