在CAPL脚本开发的CAN相关测试中,message关键字永远是我们避不开的话题,然而它到底都包含哪些信息呢?今天我们来介绍一下,让它方便我们脚本开发的使用;今天本篇文章主要来介绍它到底都有什么信息。
定义message变量
message * ownerMsg;
1、ownerMsg.id = can_id
can_id:ownerMsg报文的CAN ID信息,用于发送或者接收。
变量类型:word
2、ownerMsg.can = can_channel
can_channel:ownerMsg报文发送的通道,发送到CANoe硬件通道的CAN1、CAN2 ..... CAN32
变量类型:word
3、ownerMsg.MsgChannel = can_channel
can_channel:ownerMsg报文发送的通道,发送到CANoe硬件通道的CAN1、CAN2 ..... CAN32
变量类型:word
4、ownerMsg.name = msg_diag_Request_MyECU
msg_diag_Request_MyECU:报文名称,这个只能读取,并且在CANoe工程中添加有dbc文件方可
变量类型:dword
5、ownerMsg.DIR = Tx||Rx||TXREQUEST
Tx||Rx||TXREQUEST:主要用在on message中,指明报文的发送或者接收方向
变量类型:byte
6、ownerMsg.RTR = rtr_value
rtr_value:远程传输请求;可能的值:0(无RTR),1(RTR)
变量类型:byte
7、ownerMsg.TYPE = can_type
can_type:结合DIR和RTR进行有效评估(类型=(RTR<<8)|目录)
变量类型:word
8、ownerMsg.DLC = can_dlc
can_dlc:
消息的数据字段长度用数据长度代码(DLC)进行编码。
取值范围:0..15
数据字段长度:
CAN消息:0..8
CAN FD消息:0..64
变量类型:byte
DLC |
Length |
|||
DLC3 |
DLC2 |
DLC1 |
DLC0 |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
2 |
0 |
0 |
1 |
1 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
0 |
1 |
5 |
0 |
1 |
1 |
0 |
6 |
0 |
1 |
1 |
1 |
7 |
1 |
0 |
0 |
0 |
8 |
CAN: |
||||
1 |
x |
x |
x |
8 |
CAN FD: |
||||
1 |
0 |
0 |
1 |
12 |
1 |
0 |
1 |
0 |
16 |
1 |
0 |
1 |
1 |
20 |
1 |
1 |
0 |
0 |
24 |
1 |
1 |
0 |
1 |
32 |
1 |
1 |
1 |
0 |
48 |
1 |
1 |
1 |
1 |
64 |
9、ownerMsg.DataLength = can_datalength
can_datalength:CAN报文数据长度
变量类型:byte
10、ownerMsg.byte(0) ownerMsg.byte(1) ······ ownerMsg.byte(n)
ownerMsg.byte:数据段数据
变量类型:byte
11、ownerMsg.FDF = can_fdf
can_fdf:CANFD报文指示位
0:经典CAN报文
1:CANFD报文
12、ownerMsg.BRS = can_brs
can_brs:比特率开关,仅适用于CAN FD消息。
0:对数据段使用仲裁比特率
1:数据段使用数据比特率
注意:使用使用output发送CANFD报文,需要将FDF和BRS均设置为1方可发送出CANFD报文
13、ownerMsg.ESI = can_esi
can_esi:错误状态指示器
读/写:
0:未设置ESI
1:ESI设置
写入:
2:CAN控制器根据控制器的状态自动设置ESI
14、ownerMsg.TxFailed = can_TxFailed
can_TxFailed:
发送消息时,您可以使用TxReqCount设置传输尝试次数(单次触发模式)。
如果无法发送消息,并且传输错误通知处于活动状态,则将在跟踪窗口和CAPL中通过TXReq消息和TxFailed消息选择器通知您。
值范围:0,1
15、ownerMsg.FrameCRC = can_framecrc
can_framecrc:CAN报文的校验和;只读字段
16、ownerMsg.TxReqCount = can_txreqcount
can_txreqcount:消息的传输尝试次数,默认值:0
0:消息将重复发送,直到成功发送一次为止。
值范围:0…15
以上介绍主要为我们在做CAN、CANFD自动化测试中,message消息中常用的字段信息介绍,了解这个有利于我们使用最简单的方法去解决我们常见的问题,大家可以作为了解,等到需要的时候直接查阅即可。
附录
组合字段的使用:
Rx |
接收的报文(DIR == Rx) |
Tx |
发送的报文(DIR == Tx) |
TXREQUEST |
设置发送的报文请求(DIR == TXREQUEST) |
RXREMOTE |
接收远程帧报文 ((DIR == RX) && RTR) |
TXREMOTE |
发送远程帧报文((DIR == Tx) && RTR) |
TXREQUESTREMOTE |
已为远程消息设置传输请求((DIR == TXREQUEST) && RTR) |
RXDATA |
收到的报文数据 ((DIR == Rx) && !RTR) |
TXDATA |
发送的报文数据 ((DIR == Tx) && !RTR) |
TXREQUESTDATA |
已为数据消息设置传输请求((DIR == TXREQUEST) && !RTR) |