在CAN&CANFD测试中,我们经常需要获取到CAN总线的负载、错误帧、过载帧、发送错误等等CAN总线上面的信息,这些信息如此重要,但是如果真的要写代码去实现也是相当不易的,那我们该如何去获取到的呢?下面我们就来一起看下相关的实现函数。

目录
canResetStatistics -- 重置CAN统计信息
代码示例
BusLoad -- 总线负载
代码示例
ChipState -- CAN芯片状态(CANoe)
代码示例
PeakLoad -- 峰值负载
代码示例
TxChipErrorCount -- 芯片发送错误数量
代码示例
RxChipErrorCount -- 芯片接收错误数量
代码示例
canResetStatistics -- 重置CAN统计信息
 功能: 重置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);
}
















![[架构之路-167]-《软考-系统分析师》-4-据通信与计算机网络-3- 常见局域网与广域网](https://img-blog.csdnimg.cn/img_convert/50cbbe243a6580139ee4951c8573b843.png)

