前言:在软件开发过程中,想要测试报文发送周期是否稳定,一方面可以通过cycletime_abs/cycletime_rel,也可以以其中的一个报文为基准,监控另外一帧报文的同期是否正常。如报文A的周期是10ms,报文B的周期是100ms.那么理论上它们最小的间隔是0最大的间隔应该是90。但是由于报文同期并不是稳定的,所以会有2%左右的误差。所以在设置最大值时要将偏差考虑进去。
如报文的0x141的周期是10ms,报文0x37D的周期是100ms,所以最小间隔是0,最大间隔是92ms。
Xml代码如下:
<testcase title="Message Distance" ident="Message Distance">
<conditions>
<distance title="Message Distance" min="0" max="92">
<reference>
<canmsg id="0x141"/>
</reference>
<observed>
<canmsg id="0x37D"/>
</observed>
</distance>
</conditions>
<wait title="Wait" time="5s"/>
</testcase>
测试结果如下:
可以看到测试结果是通过的。
如果严格按照90ms的最大间隔来检测,结果如下: