SOME/IP 从 Excel 到车载代码:全链路 AI 提效实录
起因
车载 SOME/IP 服务设计到落地,传统流程要跨 Excel、FIDL/FDEPL、代码生成、手写 Stub/Client 多个环节,链路长、易错、难复用。目标是把它变成一条可重复的流水线。
全链路流水线
- 服务矩阵 JSON:所有服务的接口定义收敛成一份结构化数据,改一处全链路同步。
- FIDL/FDEPL 生成:从矩阵自动导出接口定义文件,统一枚举宽度(SomeIpEnumBitWidth=8)等规范。
- CommonAPI codegen:自动生成 Stub/Client 骨架。
- 7 服务 83 接口落地:48 R&R + 32 Getter SUCCESS + 140 条事件,全部编译运行通过。
- C API 封装:服务端回调注册 / 客户端调用订阅,纯 C 程序验证通过,方便非 C++ 环境集成。
- 多平台 CMake:local / 5522 / 7720 三套工具链,一次设计多处编译。
关键坑
- Stub initStubAdapter 必须存 stubAdapter_,否则 fire 事件静默失效(官方 demo 也有此 bug)。
- CommonAPI sendEvent 强制可靠通道 → 需配 reliable 端口。
- buildProxy 返回 nullptr = 缺 gen 代码链接(proxy 工厂静态注册在 gen .cpp 的 INITIALIZER 宏里,独立 C 程序必须链 GEN_SOURCES)。
沉淀
整套流程固化为可复用 SOP 技能(someip-full-chain),新项目直接照流程走。