feat: complete dual-seat whole-vehicle orchestration

This commit is contained in:
vee
2026-08-12 15:12:40 +08:00
parent 32379a1573
commit 9ce64b3a01
62 changed files with 9741 additions and 3950 deletions
@@ -8,6 +8,7 @@ execution:
seat_firmware_probe_timeout_ms: 3500
can_adapter:
backend: zlgcan
runtime_backend: standalone-zlg
device: USBCANFD-200U
device_type: 41
device_index: 0
@@ -0,0 +1,61 @@
id: k-c78dff
name: K歌模式
aliases:
- K歌模式
- K歌
description: 用户固化的长期模式配置。
icon: bookmark
scope:
vehicle_ids:
- denza_n7
operations:
- domain: ambient_light
capability: ambient_light.set_power
target_scope: vehicle
operation: activate
parameters:
state: 'on'
reason: 开启氛围灯以营造K歌场景。
- domain: ambient_light
capability: ambient_light.set_illumination
target_scope: vehicle
operation: set
parameters:
color_hex: '#B84DFF'
brightness_pct: 65
reason: 使用明快紫色和中高亮度营造活跃舞台氛围。
- domain: climate
capability: climate.set_power
target_scope: vehicle
operation: activate
parameters:
state: 'on'
reason: 空调当前关闭,需先开启以维持K歌时的座舱舒适度。
- domain: climate
capability: climate.set_temperature
target_scope: driver
operation: set
parameters:
temperature_c: 24
reason: 采用舒适且保守的座舱温度。
- domain: climate
capability: climate.set_fan_level
target_scope: vehicle
operation: set
parameters:
level: 2
reason: 采用低风量,兼顾通风并减少对歌声的干扰。
- domain: climate
capability: climate.set_ac
target_scope: vehicle
operation: activate
parameters:
state: 'on'
reason: 启用制冷除湿以维持多人演唱时的舒适度。
- domain: climate
capability: climate.set_cycle_mode
target_scope: vehicle
operation: set
parameters:
mode: internal
reason: 采用内循环以稳定座舱温度并减少外部噪声和气味。
+16 -8
View File
@@ -1,15 +1,15 @@
# 自修复本机配置
自修复业务代码、诊断规则和固件工程随仓库交付。服务会自动识别仓库内固件、
标准安装位置的 IAR Embedded Workbench 9.2/9.4 与 ZCANPRO;非标准安装位置仍可
标准安装位置的 IAR Embedded Workbench 9.2/9.4 与 ZLG 驱动运行时;非标准安装位置仍可
通过下列环境变量覆盖。未识别到工具时,影子自修复与硬件规则自检可正常使用,
所有依赖实物或烧录工具的操作保持不可用。
| 环境变量 | 用途 | 未配置时的行为 |
| --- | --- | --- |
| `SELF_REPAIR_RUNTIME_DIR` | bridge 心跳和请求队列 | 使用 `artifacts/tmp/self-repair/runtime` |
| `SELF_REPAIR_BRIDGE_STATUS_PATH` | ZCANPRO bridge 状态 JSON | 使用 runtime 目录下的 `bridge_status.json` |
| `SELF_REPAIR_BRIDGE_SCRIPT_PATH` | ZCANPRO 扩展脚本 | 使用仓库内 `tools/zcan/seat_self_repair_bridge.py` |
| `SELF_REPAIR_BRIDGE_STATUS_PATH` | 共享 CAN Runtime 状态 JSON | 使用 runtime 目录下的 `bridge_status.json` |
| `SELF_REPAIR_BRIDGE_SCRIPT_PATH` | 传输无关的座椅协议引擎 | 使用仓库内 `tools/zcan/seat_self_repair_bridge.py` |
| `SELF_REPAIR_DIAGNOSTIC_CONFIG` | 电流、Hall 和超时阈值 | 使用本目录 `signal_diagnostic_config.json` |
| `SELF_REPAIR_LOG_DIR` | 软件闭环报告 | 使用 `artifacts/self-repair/software` |
| `SELF_REPAIR_HARDWARE_LOG_DIR` | 硬件诊断报告 | 使用 `artifacts/self-repair/hardware` |
@@ -19,8 +19,12 @@
| `SELF_REPAIR_CSPY_BAT_PATH` | IAR `cspybat.exe` | 尝试识别标准 9.2/9.4 安装,失败则烧录不可用 |
| `SELF_REPAIR_CSPY_GENERAL_PATH` | C-SPY general `.xcl` | 默认从固件工程推导 |
| `SELF_REPAIR_CSPY_DRIVER_PATH` | C-SPY driver `.xcl` | 默认从固件工程推导 |
| `SELF_REPAIR_ZCANPRO_EXE` | `ZCANPRO.exe` | 尝试识别标准安装,失败则实物 CAN bridge 不可自动启动 |
| `SELF_REPAIR_ZCANPRO_SCRIPT_CONFIG` | ZCANPRO 扩展脚本配置文件 | 使用标准安装目录下 `config/extend_script.ini` |
| `COGNITIVE_AGENT_CAN_RUNTIME_BACKEND` | `standalone-zlg` 或兼容回退 `zcanpro` | 默认 `standalone-zlg`,无需启动 ZCANPRO 界面 |
| `COGNITIVE_AGENT_SHARED_CAN_RUNTIME_ENABLED` | 自编排与自修复共享同一设备所有者 | 默认 `true` |
| `COGNITIVE_AGENT_ZLGCAN_PYTHON` | 可加载当前 ZLG DLL 的 Python | 默认使用已安装工具中的 32 位 Python |
| `COGNITIVE_AGENT_ZLGCAN_DLL` | ZLG 官方驱动 DLL | 默认使用标准安装目录下的 `zlgcan.dll` |
| `SELF_REPAIR_ZCANPRO_EXE` | 兼容回退模式的 `ZCANPRO.exe` | 仅 `COGNITIVE_AGENT_CAN_RUNTIME_BACKEND=zcanpro` 时使用 |
| `SELF_REPAIR_ZCANPRO_SCRIPT_CONFIG` | 兼容回退模式扩展脚本配置 | 仅 ZCANPRO backend 使用 |
| `SELF_REPAIR_AUTO_START_BRIDGE` | 服务启动后允许一次 bridge 拉起 | 默认 `false` |
PowerShell 示例(路径按本机安装位置填写):
@@ -29,11 +33,15 @@ PowerShell 示例(路径按本机安装位置填写):
$env:SELF_REPAIR_FIRMWARE_ROOT = 'D:\firmware\Seat_Controller_demo'
$env:SELF_REPAIR_IAR_BUILD_PATH = 'C:\Program Files\IAR Systems\Embedded Workbench 9.4\common\bin\IarBuild.exe'
$env:SELF_REPAIR_CSPY_BAT_PATH = 'C:\Program Files\IAR Systems\Embedded Workbench 9.4\common\bin\cspybat.exe'
$env:SELF_REPAIR_ZCANPRO_EXE = 'C:\Program Files (x86)\ZCANPRO\ZCANPRO.exe'
$env:SELF_REPAIR_ZCANPRO_SCRIPT_CONFIG = 'C:\path\to\zcanpro_script.ini'
$env:COGNITIVE_AGENT_CAN_RUNTIME_BACKEND = 'standalone-zlg'
$env:COGNITIVE_AGENT_SHARED_CAN_RUNTIME_ENABLED = 'true'
$env:COGNITIVE_AGENT_ZLGCAN_PYTHON = 'C:\Program Files (x86)\ZCANPRO\python38\python.exe'
$env:COGNITIVE_AGENT_ZLGCAN_DLL = 'C:\Program Files (x86)\ZCANPRO\zlgcan.dll'
$env:SELF_REPAIR_AUTO_START_BRIDGE = 'false'
python -m cognitive_agent.server
```
建议先保持 `SELF_REPAIR_AUTO_START_BRIDGE=false` 完成影子验证。在已清空的本机
HIL 台架上确认固件、CAN 通道和针脚配置后,再通过 admin 页面显式启动实物流程。
HIL 台架上确认固件、CH0/CH1 参数和针脚配置后,再通过 admin 页面显式启动实物流程。
默认 Runtime 在第一次硬件请求时打开设备一次并保持在线;座椅 CH0 和车端 CH1
由同一所有者管理。不要同时启动 ZCANPRO,否则厂商驱动会拒绝第二个设备所有者。