核心内容摘要
甘雨白水洒一地,潮
CANoe仿真工程 全套项目转让 适合于用CANoe做仿真、车载测试的朋友。
内含全套工程对应所有资料dbccapl源代码全部打包转让。
可以作为学习资料或工作中的参考资料使用。
另外如果有VECTOR 工具链相关问题的朋友也可以一起学习提升。
图1trace仿真窗口 图2配置工程文件窗口 图3仿真分析窗口 图4操作面板Panel窗口 图56CAPL源代码展示 图7该工程全部文件显示 图8该工程全部dbc显示 图9该工程全部CAPL源代码展示 另外是发该工程的压缩包哈最近整理硬盘发现了一个压箱底的CANoe仿真工程包直接打包转让给需要的朋友。
这个工程特别适合刚接触车载总线开发的小伙伴或者想快速搭建测试环境但没时间从头造轮子的工程师。
先说说这个包里到底藏着什么宝贝——全套工程文件解压后能看到完整仿真环境图7从DBC定义图8到CAPL脚本图9全齐活儿。
重点说几个硬核部分DBC里把整车网络拓扑定义得明明白白比如这个车门控制节点的报文定义BO_ 1024 DoorStatus: 8 BodyControl SG_ LockState : 7|21 (1,
[0|3] Locked Vector__XXX SG_ WindowPosition : 15|120 (
1,
[0|4095] mm DoorMotor这种带物理量纲的信号定义对自动化测试特别有用配合下面这段CAPL代码就能实现车窗自动升降仿真on key w // 面板按键触发图4 { static int position 0; position (position
? position10 : 0; setSignal(DoorStatus::WindowPosition, position); write(当前车窗位置%dmm, position); }代码里有个骚操作——用静态变量做状态保持第3行比全局变量更安全。
仿真运行时在Trace窗口图1能看到车窗位置信号线性变化配合Panel窗口图4的滑块可视化调试体验直接拉满。
CANoe仿真工程 全套项目转让 适合于用CANoe做仿真、车载测试的朋友。
内含全套工程对应所有资料dbccapl源代码全部打包转让。
可以作为学习资料或工作中的参考资料使用。
另外如果有VECTOR 工具链相关问题的朋友也可以一起学习提升。
图1trace仿真窗口 图2配置工程文件窗口 图3仿真分析窗口 图4操作面板Panel窗口 图56CAPL源代码展示 图7该工程全部文件显示 图8该工程全部dbc显示 图9该工程全部CAPL源代码展示 另外是发该工程的压缩包哈工程里还藏了个彩蛋ECU唤醒逻辑。
这个CAPL函数堪称教科书级的超时检测实现checkWakeup(int ecuID) { timer t; setTarget(ecuID); TestAddCondition(wakeup_timeout); t.timeout 500; // 500ms超时检测 start t; } on timer t { if(getSignal(ECUStatus::WakeUp)
TestStepFail(唤醒超时); // 测试报告直接标红图3 }这种带超时机制的状态检测在真实项目里特别实用改改参数就能套用到各种总线唤醒测试场景。
配置文件图2也值得细品比如这个仿真节点绑定设置SimulationNode NameBCM_Sim Script Path.\CAPL\BodyControl.can / Interface TypeCAN Channel1 / /SimulationNode通道绑定和脚本路径的配置方式比在CANoe里手动拖拽节点更利于版本管理。
整个工程目录结构清晰CAPL脚本按模块分在不同子文件夹图9找代码比在迷宫般的项目里瞎逛高效得多。
需要的小伙伴直接私信发你完整压缩包。
用Vector工具链遇到坑的比如CANoe闪退/标定数据对不上/诊断服务抽风咱们可以组队打怪——毕竟这个工程里踩过的雷比某些教程里的完美Demo更有实战价值。