前言:
CAPL中循环包括For循环和while循环。
循环主要是将重复的代码精简化
如常用的报文的CheckSum的计算。
现在来计算报文的CheckSum并将其放在最后一个字节
代码如下图:
重新打开CANOE并运行。如下图:
有没有发现异常?同样的数据为什么算了来的CheckSum不一样?
这个就是上一节讲的,在CAPL中临时变量表现和其他高级语言中静态变量一样。
导致nChkSum在下一次循环中不会被清除,而是沿用了上一次的计算结果参与到了本次计算。
所以代码要对nChkSum在每一次循环时主动清零。
修改之后可以看到CheckSum就保持一致了。
除了用For也可以用While, do{}while;来完成上面的逻辑。
具体写法如下:
Write窗口中打印出来的数据,说明其它两个循环算出的值是一致的。