【CANoe/CANalyzer脚本】通过CAPL发送NM帧报文测试网络管理

30 篇文章 137 订阅
8 篇文章 25 订阅

优质博文推荐阅读(单击下方链接,即可跳转):

Vector工具链

CAN Matrix DBC

CAN Matrix Arxml

一、在CANoe/CANalyzer中创建Program Node

Measurement Setup中,创建Program Node;

接着导入下面的Demo:NM_Frame.can;(替换需要的CANID,以及数据段的字节值即可

/*@!Encoding:936*/
includes
{
  
}

variables
{
  message 0x211 Message_211 = {dlc=8}; //定义要发送的报文

  msTimer Message_211_timer;          // 报文发送周期 
  msTimer Cycle_Start_timer;          // 发送窗口:允许报文在该时段发送 
  msTimer Cycle_End_timer;            // 完成一次循环的时间
  
  byte Cycle_Start_timer_Flg = 0;
}

on start
{
  setTimer(Message_211_timer,100);   // 启动报文周期发送定时器
  setTimer(Cycle_Start_timer,10000); // 启动报文发送的窗口定时器
  setTimer(Cycle_End_timer,30000);   // 启动发送的循环定时器
}

on timer Message_211_timer
{
  Message_211.byte(0)=0x00;  
  Message_211.byte(1)=0x01;
  Message_211.byte(2)=0x02;  
  Message_211.byte(3)=0x03;
  Message_211.byte(4)=0x04;  
  Message_211.byte(5)=0x05;
  Message_211.byte(6)=0x06;  
  Message_211.byte(7)=0x07;
  
  output(Message_211);                  // 输出报文到CAN总线
  
  if(Cycle_Start_timer_Flg == 0)
  {
      setTimer(Message_211_timer,100);  // 重置报文周期发送定时器
  }
}

on timer Cycle_Start_timer
{
  if(Cycle_Start_timer_Flg == 0)
  {
      Cycle_Start_timer_Flg = 1;  
  }
}
 
on timer Cycle_End_timer         // 完成一个循环后,重置所有定时器
{
  Cycle_Start_timer_Flg = 0;
  
  setTimer(Message_211_timer,100);
  setTimer(Cycle_Start_timer,10000);
  setTimer(Cycle_End_timer,30000);
}

CANoe/CANalyzer配置完成后的效果如下图:

二、运行效果

您会看到NM帧发送10秒,停20秒,如此循环往复。

END

获取更多“汽车电子资讯”和“工具链使用”,

请关注“汽车电子助手”,做您的好助手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值