【CAPL实战】LIN校验和测试
文章目录
- 前言
- 1、lingetchecksum()函数
- 2、报文校验和自动化测试
前言
在【LIN校验和:数据完整性的最后防线】文章中我们介绍了LIN校验和基础知识,包括校验和的作用、经典型和增强型两种校验方式对比以及校验和算法翻转八位和的实现,还不清楚的小伙伴可以回看一下原文。在了解这些基础之后,针对LIN校验和我们怎么去做测试呢?
1、lingetchecksum()函数
LIN校验和测试主要是对LIN报文的经典型、增强型校验和字段进行正确性验证。Trace窗口报文如下图,Checksum列给出了每条报文的checksum值及其校验和类型。自动化测试实现上使用lingetchecksum()函数。
函数功能:计算得出的校验和。
函数定义:
byte linGetChecksum(linFrame linFrame); form 1
byte linGetChecksum(linCSError linCsError); // form 2
2、报文校验和自动化测试
如上图红框,0x05报文的校验和为0x6B。报文校验和计算脚本如下:
/*@!Encoding:65001*/
includes
{}variables
{byte checksumValue;
}on linFrame 0x05
{checksumValue = linGetChecksum(this);write("0x05报文的checksum值为0x%x", checksumValue);
}
write窗口打印:
结合翻转八位和的CAPL脚本(前文链接有,不再赘述)来得到实际发送报文字节计算出的校验和值与之对比:如果一致,则说明报文检验和正确;反之报文校验和有误。