一文详解CAPL如何发送节点报文-实现节点DTC的丢失与恢复自动化测试

基于14229+15765的UDS或Bootloader培训
一、培训内容:14229服务含义,功能应用场景,正响应,负响应,优先级等;15765传输层测试;Capl help常用的函数讲解,最后用CAPL函数做一个完整的UDS自动化测试或Bootloader刷写测试,也可指定培训内容。
二、收费标准:按课时收费+测试用例收费(也可只线上培训不买测试用例,只按课时收费,一般培训周期一周)。
三、培训时间:时间为晚上或周末,线上远程讲解。
四、培训方案:如果你懂协议,看你是否需要买用例,按照用例讲解或者边写边讲函数搭建;如果你不懂协议,先培训协议了解服务,在培训用例编写。
五、其他培训:Autosar网络管理,Osek网络管理,通信测试等。
下面是我搭配的CANoe CAPL脚本,无diva也能做的UDS自动化测试脚本。
前言
新的一年,新的开始,新的征程;虽说天天大鱼大肉补人,也不能少了知识养分。
今天带来的是用CAPL如何发送节点报文来实现节点DTC的丢失与恢复自动化测试。
————————————————
故障类型很多,不探讨其他,只说节点报文丢失与恢复,直接进入干货区。
关于节点如何丢失与恢复,诊断问卷都有描述,大概长这样:
在这里插入图片描述
重点在于故障成熟条件和解除条件
*我相信大多数同行都在发送节点报文这一步止步不前,毕竟每个项目的报文ID不一定相同,有很多办法:

  • 用IG模块手动发节点报文(累啊)
  • CAPL里写了N个定时器,每个定时器发相同周期节点报文(累啊)
  • 加载数据库发送信号(累啊)

这些方法效率底下且达不到想要的结果,最主要的是不通用啊!所以一个通用的代码是很有必要的,用我这代码,无数个ID都可以按照规定周期发。

*我的思路是只需要一个1ms的定时器:

  • 在定时器里设置一个数组,来记录当前节点报文的历史发送时刻。
  • 判断 节点报文周期 <= (当前时刻 - 当前节点报文的历史发送时刻)?
  • 若真,发送当前节点报文,若假,则继续下一个节点报文检测。
  • 代码量少,寥寥几行,实现全部ID周期发送,指谁谁发,指谁谁停,所有项目通用!

且往下看。
在这里插入图片描述

1、CAPL发送节点报文
  • 模拟三个节点0x01/0x02/0x03(存进txmsg[3]),分别以100ms/200ms/300ms(存进txmsg_cycle[3])发送。
  • 只需1个定时器+几行CAPL代码。
  • 适用网关互发

完整代码请关注公众号【总线网络】私信好友领取
效果图如下:
在这里插入图片描述
在这里插入图片描述

部分代码:完整代码请关注公众号【总线网络】私信好友领取
on timer Ttx{
    int Tempi;
    for(Tempi = 0; Tempi < elCount(txmsg); Tempi++){
        if(timeNow()/100.0 - current[Tempi] >= (txmsg_cycle[Tempi]) || current[Tempi] == 0){
            g_app.id = txmsg[Tempi];g_app.dlc = 8;
            output(g_app);current[Tempi] = timeNow()/100.0;
        }
    }setTimer(Ttx,1);
}
2、CAPL发送节点报文
  • 声明要检测节点DTC(hex)数组元素15个
  • 声明要检测节点报文ID数组元素15个
  • 声明要检测节点报文周期数组元素15个
  • 通过19 02读取到的数据,解析出来比对之前填好的节点DTC(hex)以及状态掩码,给出结果。

效果图如下:
在这里插入图片描述

3、延申

以下DTC测试需求,该如何来测试丢失与恢复呢?

  • 一个DTC需要多个节点报文发送,并且是 & 的关系
  • 一个DTC需要多个节点报文发送,并且是 || 的关系
  • 一个DTC需要多个节点报文发送,并且有数据检测
  • 待完善…
4、总结

完整代码请关注公众号【总线网络】私信好友领取
选择合适自己的写脚本的方式,能事半功倍!祝福各位学习CANoe的同学能早日毕业!
有不完善的地方欢迎留言或加我vx补充。
请输入公众号:总线网络。关注我,获取汽车网络开发及测试方面资料,更新干货!
分享总线开发知识
分享CAN/CANFDLIN/ETH等网络资料
分享CANoe/TSMaster/PCAN等设备工具使用
分享UDS/NM/Bootloader测试用例等
一起来学习,进步,交流吧!
在这里插入图片描述

  • 3
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值