免责协议
终止协议-不要在Vector之外的产品中使用该数据格式
数据格式的访问函数应该遵守下文提供的限制条件
Vector不对使用下面的函数的操作负任何法律责任
Vector不保证下面的函数中有Bug
Vector不负责您的软件集成,也不支持客户端软件出现的任何问题
除此之外,Vector公司保留更改blf和asc数据格式的权利,如果格式有更改,我不会通知,因此数据的格式不是一成不变的
概览
该文档定义了CANoe和CANAlyzer的一般性的数据格式,所使用的的数据结构可以使用binlog.dll,可以在用户数据文件格式中找到:
\Programming\BLF_Logging
格式描述
3.1 常见的数据类型
3.1.1 CAN Message 的标志位
下面的位适用于 CAN 对象中的 mFlags成员
#define CAN_MSG_DIR( f) ( BYTE)( f & 0x0F)
#define CAN_MSG_RTR( f) ( BYTE)( ( f & 0x80) >> 7)
#define CAN_MSG_WU( f) ( BYTE)( ( f & 0x80) >> 6)
#define CAN_MSG_NERR( f) ( BYTE)( ( f & 0x80) >> 5)
使用下面的“宏”来设置RTR和DIR的值
#define CAN_MSG_FLAGS( dir, rtr) ( BYTE)( ( ( BYTE)( rtr & 0x01) << 7) | \
( BYTE)( dir & 0x0F))
使用下面的“宏”来设置RTR, WU, NERR和DIR的值
#define CAN_MSG_FLAGS_EXT( dir, rtr, wu, nerr) \
( BYTE)( ( ( BYTE)( rtr & 0x01) << 7) | \
( ( BYTE)( wu & 0x01) << 6) | \
( ( BYTE)( nerr & 0x01) << 5) | \
( BYTE)( dir & 0x0F))
将RTR标志设置为true,将帧方向设置为send帧,使用如下代码
BYTE flags = CAN_MSG_FLAGS( 1, 1)
将RTR标志设置为true, WU标志设置为true, NERR标志设置为true,帧方向设置为
发送帧,执行:
BYTE flags = CAN_MSG_FLAGS_EXT( 1, 1, 1, 1)
3.1.2 驱动故障代码
以下值是对CAN驱动程序错误信息有效的错误代码
值 | 描述 |
---|---|
0 | 板初始化期间的超时 |
1 | rx队列中没有事件/ dvGetEvent没有可用的事件 |
2 | tx队列已满,tx请求被拒绝 |
3 | 未知的Controller-Nr |