我对TraeCode的未来愿景## 介绍自己
我是新能源汽车行业的嵌入式软件工程师,负责 BMS(电池管理系统)ECU 开发,日常打交道的是 AUTOSAR 架构的 C 代码、MC33774/BQ7971X 这类 AFE 采集芯片、Keil MDK 工程,以及整车 CAN 总线上的测试报文。工作模式很典型:白天写代码和改测试软件,晚上抱着 CANoe 抓回来的 ASC/BLF 日志一行行对十六进制字节做人工解 frame。
我对 TraeCode 的愿景
1. 希望新增什么功能:CAN 报文智能解析与代码级回溯
把一份 CAN 日志(ASC/BLF)直接拖给 TraeCode,它能:
- 自动统计报文族(ID、周期、帧数),识别周期轮询报文和事件触发报文
- 结合当前代码工程,自动匹配每条报文的组包函数(如
ComIPdu_xxx_CallOut的 SduDataPtr 逐字节赋值逻辑),给出每个 Byte 的字段名、缩放、有效值域 - 自动生成分芯片/分通道的解析报告(Excel/CSV),故障帧颜色标注
为什么需要:这个场景我们每周都在做,但全程人工。真实例子:排查故障上报问题时拿到一份 77 秒、9 万多帧的 ASC 日志,需人工确认 4 条测试报文每个 Byte 的含义,最坑的是日志来自另一个固件版本、报文布局和当前代码不一样,人工对错版本后整个解析结论全部作废。如果 TraeCode 能自动比对"日志特征 ↔ 组包代码 ↔ 多版本固件差异",这种错误根本不会发生。
能解决什么:把每次 2~4 小时的人工解 frame 压缩到分钟级,且杜绝版本误判,在实车问题闭环里是实打实的效率。
2. 希望优化什么场景:嵌入式"代码-硬件-数据"三角调试
当前最大卡点:嵌入式项目的上下文有一半在代码之外——芯片寄存器语义在 PDF 手册里(比如 MC33774 的 FaultSTAT 寄存器每个 bit 的含义),报文布局定义散在 DBC、组包代码、测试规范三处经常不一致,故障注入的预期值又在测试用例文档里。希望 TraeCode 能把这些外围知识纳入解析上下文:喂一份芯片手册 PDF + 一份 DBC,就能把日志里的原始字节直接翻译成"chip3 的 AIN0 通道温感原始 ADC 值,对应手册 XX 寄存器,当前值异常偏低"。
3. 希望如何融入我的工作流
- 与 CANoe/CANalyzer 打通:日志直接投喂解析,结果一键回填 Graphics/Trace 可视化比对
- 与 Keil MDK 打通:解析报告里的异常值直接跳转到对应的组包/诊断函数源码行
- 与测试流程结合:故障注入前自动生成"预期报文快照",测试后自动 diff 实测 vs 预期,输出带结论的测试报告(合格/异常/疑似接线问题)
你希望它以什么形态出现
- 一步完成:拖日志 → 选工程 → 出报告,适合日常快速排查
- 解析引擎拆成可复用命令(如
/canparse),支持写进自动化测试脚本批处理 - 字段级"数据词典"面板:Byte→字段→源码位置→芯片手册章节,四向跳转
对应用软件工程师来说,AI 编程助手改的是"写"的效率;对嵌入式工程师来说,谁先解决"跨代码/硬件/实测数据三方对齐"的诊断闭环,谁就真正改变了我们的工作方式。TraeCode 已经是离这一步最近的。