上次的解析没有描述清楚消息(message)、信号(signal)在这个xml格式中具体是如何定义的。
下面来详细分析一下。在这个路径下面有详细说明Test Feature Set » XML » Parameters
翻译过来就是:在checks定义中,变量(variable)、测试函数(test function)、控制函数(control function)、各种消息(message)、信号(signal)、环境变量(environment variable)是需要的。但是他们基本都是一样定义的。
<cansignal name="Signal name" msg="Message name" node="Node name" bus="Bus name">Value</cansignal> <linsignal name="Signal name" msg="Message name" node="Node name" bus="Bus name">Value</linsignal>
相关消息的名称(name)、节点名称(node)、或总线名称(bus name)只有当无法唯一解析的时候才需要。即这些信息在相关联的dbc中只要有一个或两个就可以定位到这个 消息的时候,就不用把全部的信息列出来。
这个信号定义的Value可以使数字,变量或枚举值。还可以增加xml格式的元素来定义的更清楚。相应的语法见下面:
1、
<eq>number</eq>
信号的值(Value)必须等于这个值(number),浮点值不能用这个来进行测试。
2、
<ne>number</ne>
信号的值(Value)必须不等于这个值(number)
3、
<lt>number</lt>
信号的值(Value)必须小于这个值(number)
4、
<gt>number</gt>
信号的值(Value)必须大于这个值(number)
5、
<le>number</le>
信号的值(Value)必须小于等于这个值(number)
6、
<ge>number</ge>
信号的值(Value)必须大于等于这个值(number)
7、
<range> <from>number</from> <to>number</to> </range>
信号的值(Value)必须在这两个值之间(number)
8、
<range> <base>...</base> <down_tolerance mode="absolute|relative">...</down_tolerance> <up_tolerance mode="absolute|relative">...</up_tolerance> </range>
信号的值(value)必须在这个范围内(base - down_tolerance) <= value <= (base + up_tolerance).
mode为absolute时,就直接是值;mode为relative时,里面写的就是因数,不过当value是整数型时,base乘上因数后,要被cut掉小数点后的值。
9、
<one_of> Set of <eq> or <range> conditions </one_of>
信号的值必须是满足下面条件(conditions)里的任何一数值。