# 车辆信息接口文档 ## 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" } ```