【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切换)

    图片
    图片

END

posted @ 2025-08-13 17:10  anliux  阅读(30)  评论(0)    收藏  举报