【CAPL】循环码的创建和校验
需求分析
- 在trace报文中,发送在0-15范围内循环更新数据值的报文
运行环境设置
节点网络
DBC设置
创建循环码
CAPL代码设置
-
on signal_update XXX: 每一帧都触发
- 不同于on signal XXX: 只有信号量变化的时候才触发
- on signal:
- 当每次信号值发生变化时调用该事件
- 对于周期型信号的变化可以使用该function。
- on signal_update:
- 当每次接收到该信号时都会调用该事件
- 对于非周期型信号on signal和on signal_update没什么区别(如有错误请大神指出)
-
temp = temp % 16
- 循环码的取值范围:0-15
- 取余:可以保证temp的值始终在小于16的范围内
-
开关控件:管理sysvar CheckCycle
-
注:代码在light.can中
运行效果
- 按下开关,可以看到报文中循环变化的值,如图
校验循环码
CAPL代码
-
思路:另外设置一个在16个元素的范围内循环递增的值,不停对比
-
注:在switch.can中
运行效果
-
开始时是fail
-
按下开关后变为pass (下图为按下瞬间,fail和pass切换)