5.2 KiB
停机引导远程控制协议
版本信息
| 项目 | 内容 |
|---|---|
| 文档版本 | V1.1 |
| 更新日期 | 2026-09-09 |
| 适用范围 | ParkingSpaceGuideView 远程发现、控制和状态订阅 |
| 说明 | 控制端协议。引导结果字段见《停机引导对接协议》。 |
远程协议名称为 ParkingSpaceGuideRemote,版本 1.1。
1. 协议概述
ParkingSpaceGuideApp 提供远程服务。ParkingSpaceGuideView 通过 UDP 发现服务端,通过 ZeroMQ REQ/REP 发送控制命令,通过 ZeroMQ PUB/SUB 接收实时引导结果。
状态数据与《停机引导对接协议》中的 ParkingSpaceGuideResult 相同。
默认参数:
| 参数 | 默认值 | 传输方式 | 用途 |
|---|---|---|---|
| discoveryPort | 5555 | UDP | 控制端广播搜索,服务端单播响应。 |
| controlPort | 15655 | ZeroMQ REQ/REP | 选择机型、开始/停止、维护模式、轮挡时间、历史回放。 |
| publishPort | 15656 | ZeroMQ PUB/SUB | 发布完整引导状态。 |
| topic | parking_guide | ZeroMQ topic | 状态订阅主题。 |
2. UDP 发现
请求:
{"cmd":"discover","service":"ParkingSpaceGuide","protocol":"ParkingSpaceGuideRemote"}
响应:
{
"ok": true,
"code": 0,
"cmd": "discover",
"protocol": "ParkingSpaceGuideRemote",
"version": "1.1",
"service": "ParkingSpaceGuide",
"deviceName": "ParkingSpaceGuideApp",
"deviceId": "设备唯一标识",
"controlPort": 15655,
"publishPort": 15656,
"topic": "parking_guide",
"activated": false,
"workMode": "normal",
"timestamp": 1783339200000
}
须校验 ok、cmd、protocol、service,并确认端口和主题有效。
3. ZeroMQ 控制
请求和应答均为单个紧凑 JSON。请求包含 cmd、protocol(固定 ParkingSpaceGuideRemote)。
| cmd | 请求字段 | 说明 |
|---|---|---|
| select_model | modelType |
选择机型,须为当前配置中的可选机型。此处 modelType 为选择值,不是检测结果。 |
| start | modelType,可空 |
开始引导。空表示不选机型、不校验。 |
| stop | 无 | 停止引导。 |
| set_maintenance | enabled |
true 进入维护模式,false 退出。 |
| chock_on / chock_off | 无 | 记录上/下轮挡时间。 |
| get_panel_config | 无 | 获取机型表和当前运行状态。 |
| list_sessions | limit |
列出历史会话,默认 50 条。 |
| get_session_samples | sessionUuid |
获取会话引导明细,按时间排序,用于还原该次引导过程。 |
| get_status | 无 | 获取当前完整 ParkingSpaceGuideResult。 |
| get_info | 无 | 获取服务信息,字段同发现响应。 |
| ping | 无 | 心跳。 |
成功:ok=true,code=0。失败:
{
"ok": false,
"code": -3,
"cmd": "start",
"message": "服务端拒绝启动停机引导,请检查设备或安全状态",
"protocol": "ParkingSpaceGuideRemote",
"version": "1.1"
}
| code | 含义 |
|---|---|
| 0 | 成功 |
| -1 | 请求不是有效 JSON |
| -2 | 参数错误 |
| -3 | 服务端拒绝执行 |
| -4 | 不支持的命令 |
| -5 | 协议名称不匹配 |
开始(modelType 须为当前配置中的机型名称,下面 C919 仅为示例):
{"cmd":"start","protocol":"ParkingSpaceGuideRemote","modelType":"C919"}
不选机型开始:
{"cmd":"start","protocol":"ParkingSpaceGuideRemote","modelType":""}
开始成功时返回 activated=true、workMode。停止成功时 activated=false。
get_status 的 status 为《停机引导对接协议》定义的完整结果对象。
get_panel_config 的 panel:models 为当前配置的可选机型,不是协议写死的清单。C919 仅为示例。
{
"models": [
{ "name": "A320", "verifiable": true },
{ "name": "B737", "verifiable": true },
{ "name": "C919", "verifiable": false }
],
"workMode": "normal",
"activated": false
}
verifiable=true 表示选择名称包含 A320 或 B737,按检测家族匹配,例如 A320-200 对应检测 A320。其余配置机型为 false。
list_sessions 返回 sessions 数组。字段与《停机引导对接协议》第 7 节对齐,另含 sessionUuid、startTime、endTime。sessionUuid 仅用于回放关联,不是结果协议字段。startTime、endTime 及轮挡时间为设备本地 yyyy-MM-dd HH:mm:ss;未记录或进行中的时间为空。
get_session_samples 返回 samples 数组,按 timestamp 升序。元素为当时完整 ParkingSpaceGuideResult,字段与《停机引导对接协议》第 7 节一致,不含点云和图像。
历史数据来自本机 MariaDB 三张表,表间关系见《停机引导对接协议》第 11 节。list_sessions 读 guide_session,get_session_samples 按 sessionUuid 读该会话的 guide_detail。guide_event 只在记录库中,本协议不提供事件查询。
4. ZeroMQ 状态订阅
发布为双帧消息:第一帧为主题 parking_guide,第二帧为完整 ParkingSpaceGuideResult JSON。客户端须按完整主题匹配。