在CAN&CANFD测试中,我们经常需要获取到CAN总线的负载、错误帧、过载帧、发送错误等等CAN总线上面的信息,这些信息如此重要,但是如果真的要写代码去实现也是相当不易的,那我们该如何去获取到的呢?下面我们就来一起看下相关的实现函数。
目录
canResetStatistics -- 重置CAN统计信息
代码示例
BusLoad -- 总线负载
代码示例
ChipState -- CAN芯片状态(CANoe)
代码示例
PeakLoad -- 峰值负载
代码示例
TxChipErrorCount -- 芯片发送错误数量
代码示例
RxChipErrorCount -- 芯片接收错误数量
代码示例
canResetStatistics -- 重置CAN统计信息
功能: 重置CAN通道统计信息。
说明:
1、只有通过模拟/测试设置中定义的CAPL程序才能在没有显式通道的情况下调用此函数。由当前总线上下文确定的通道的统计信息将被重置。
2、具有显式通道的函数只能从测量设置中定义的CAPL程序中调用。
channel:CAN通道,对应CANoe使用通道
代码示例
on key 'r'
{
// 重置CAN1通道统计信息
canResetStatistics(1);
}
BusLoad -- 总线负载
功能:获取当前某路CAN总线的总线负载;返回通道x的当前总线负载。
x的取值范围:01 - 32
用法:CAN x. BusLoad;CAN x代表的是CANoe上面的第x路CAN通道
返回值:通道x的当前总线负载(百分比)。
代码示例
void Get_CAN1_BusLoad()
{
busload = CAN1.BusLoad
write ("CAN1 busload = %d", busload);
}
ChipState -- CAN芯片状态(CANoe)
功能:返回CAN控制器的当前芯片状态。
x的有效值:1 - 32
返回值:当前CAN芯片状态说明;
0:当前值不可用
1:CAN芯片处于仿真状态
2:未使用
3:错误激活状态
4:警告级别
5:CAN芯片处于被动错误
6:CAN芯片处于总线关闭
代码示例
void Get_CAN1_chipState()
{
chip_state = CAN1.ChipState
write ("CAN1 chip state = %d", chip_state );
}
PeakLoad -- 峰值负载
功能:返回通道的峰值负载。
x的有效值范围:1 - 32
返回值:通道x的峰值负载(百分比)。
代码示例
void Get_CAN1_PeakLoad()
{
PeakLoad= CAN1.PeakLoad
write ("CAN1 Peak Load = %d", PeakLoad);
}
TxChipErrorCount -- 芯片发送错误数量
功能:返回通道接收器中的当前芯片发送错误计数。
x的有效值范围:1 - 32
返回值:自开始测量以来,通道x上的芯片发送错误消息数
代码示例
void Get_CAN1_TxChipErrorCount()
{
TxChipErrorCount= CAN1.TxChipErrorCount
write ("CAN1 Tx Chip Error Count = %d", TxChipErrorCount);
}
RxChipErrorCount -- 芯片接收错误数量
功能:返回通道接收器中的当前芯片接收错误计数。
x的有效值范围:1 - 32
返回值:自开始测量以来,通道x上的芯片接收错误消息数
代码示例
void Get_CAN1_RxChipErrorCount()
{
RxChipErrorCount= CAN1.RxChipErrorCount
write ("CAN1 Rx Chip Error Count = %d", RxChipErrorCount);
}