Files
vision-anti-pinch/tests/ORIN_RISK_CHANGE_REPORT.md
T
2026-09-30 17:04:29 +08:00

2.9 KiB
Raw Blame History

CAN 风险变化触发发送(2026-09-28)

实时自动发送仍仅使用 CH0、标准 CAN 0x1F6、8 字节;首字节 clear=0x00,其余状态 0x11,后七字节清零。首个风险状态尝试发送一次,之后仅在报文的二值风险变化时发送。watch/warning/danger/unavailable 间切换不重复发送。

后台最多保留最新待发状态。发送 A 期间若状态 A→B→A,取消冗余的待发 A;短暂中间状态可能被合并。发送失败计入错误,不随后续相同状态重试,也无周期重发;发生新的二值变化才触发后续发送。显式按需 sendCan() / sendRisk() 保持调用即尝试发送的接口语义。摄像头采集、停止恢复和 0x391 解析未改动。

本机模拟回归

tests/run_can.sh 通过(模拟 SDK + UBSan)。新增首次 clear、首次非 clear、1000 次相同状态去重、不同非 clear 等级去重、0/1 往返、失败后相同状态不重试、新变化恢复发送、发送阻塞期间回到原状态不重复发帧,以及后续 clear 不丢失。原有收发、CH0 限制、过期恢复、最新状态合并和停止回归通过。构建与 git diff --check 通过。

真实硬件验证

使用 Orin 现有摄像头、TensorRT 引擎、USBCANFD 和原配置。12 秒产生 357 个推理结果,观测风险始终为 unavailable(二值 1),CH0 成功发送 1 帧,发送错误为 0;0x391 接收计数持续增长至 15。证明稳定风险不会随每个推理结果重复发送,推理与位置反馈接收持续工作。

本次未进行板端故障注入或物理拔插,未人为向实车注入伪造风险状态。实机场景没有发生风险 0/1 切换,变化载荷和失败路径由本机模拟回归覆盖;尚未以独立总线分析仪核验线上报文,未覆盖长期运行或接收端重启后状态重新同步。不能把模拟切换测试当作真实场景风险切换验证。

采样源码 /tmp/vap_risk_change_probe.cpp,原始日志 /tmp/vap_risk_change_probe.log。详细计数与版本见 实机结果。

部署核对

另按原命令 ./run_camera.sh 启动正式程序;SIGTERM 后约 0.919 秒退出,退出码 0。测试前无常驻 camera_risk,测试结束恢复无常驻进程状态,未修改启动参数。

运行中 /proc/<pid>/exe、源码构建 build/camera_risk、独立包 orin/build/camera_risk SHA256 一致:

5fa01c08baf73b1e044288b5e85f753c10f10d7cc9559ff25952bc4618f01899

独立包已更新并刷新 orin/SHA256SUMS。硬件验证时本机即 Orin,检出 inference-only,HEAD 为 f87e5aad40478824da16eb42c76b40383de3a9a1,当时修复位于未提交工作区。经用户要求,最终修改和验证记录纳入本报告所在本地提交。验证时联网核对远端 inference-only 为 0192fccbf06cb928eac098b3dfad32abf0fc370d,未推送本次修改。