关于CAN和BLF记录格式

  1. 免责协议
    终止协议-不要在Vector之外的产品中使用该数据格式
    数据格式的访问函数应该遵守下文提供的限制条件
    Vector不对使用下面的函数的操作负任何法律责任
    Vector不保证下面的函数中有Bug
    Vector不负责您的软件集成,也不支持客户端软件出现的任何问题
    除此之外,Vector公司保留更改blf和asc数据格式的权利,如果格式有更改,我不会通知,因此数据的格式不是一成不变的

  2. 概览
    该文档定义了CANoe和CANAlyzer的一般性的数据格式,所使用的的数据结构可以使用binlog.dll,可以在用户数据文件格式中找到:
    \Programming\BLF_Logging

  3. 格式描述
    3.1 常见的数据类型
    3.1.1 CAN Message 的标志位
    下面的位适用于 CAN 对象中的 mFlags成员

  • CAN数据场的方向(DIR)
  • 远程控制请求(RTR)
  • 单线操作(NERR)
  • 唤醒报文(高压)(WU)
    关于Flags的说明
    使用下面的“宏”来定义RTR, WU, NERR和DIR的值
#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

你可能感兴趣的:(C-CAPL-C++)