问题背景:

在诊断会话层,从发送诊断到响应答复都规定了定时参数,其中有两个P2 server的时间:

  • P2CAN_SERVER :俗称短时间,在接受到请求信息后,服务器开始答复信息的运行要求,一般是50ms.
  • P2*CAN_SERVER :俗称长时间,服务器在传递了0x78的否定应答码,服务器开始答复信息的运行时间,一般是5000ms.

CANoe 默认状态下,把0x78当成特殊负响应应答码,收到NRC78的时候,会自动将等待应答的时间填充为P2*~CAN_SERVER 时间。

现在我想实现的是,当收服务器返回的0x78时,把它当成一般的NRC处理。

diagSetP2Extended ()

选择 form3 ,下面的解释是:
如果“响应等待”处理被停用,CANoe 将0x78 响应转发到CAPL作为一般消极的响应。否则,P2ex计时器将自动启动,并报告最终响应或超时。

忽视 NRC0x78的响应

req_Reset_All_Parameters_Start 这个服务的响应时间大约在10s,左右,我们这里代码中设置 TestWaitForDiagResponse(req_Reset_All_Parameters_Start,3000); 肯定是不够的,如果禁用掉diagSetP2Extended (),看下输出结果:

     // write("DiagSetP2Extended(-1):%d",DiagSetP2Extended(-1));TestReportWriteDiagObject(req_Reset_All_Parameters_Start); DiagSendRequest(req_Reset_All_Parameters_Start);TestWaitForDiagRequestSent(req_Reset_All_Parameters_Start, 150);retVal = TestWaitForDiagResponse(req_Reset_All_Parameters_Start,3000); write("TestWaitForDiagResponse():%d",retVal);write("response size:%ld",diagGetRespPrimitiveSize(req_Reset_All_Parameters_Start));// write("DiagSetP2Extended(-1):%d",DiagSetP2Extended(0));

输出结果:
TestWaitForDiagResponse():0 //返回结果为0,说明3000ms超时时间到了,但是没有收到 积极或者消极的响应
response size :-98 //也时说明没收到响应

下面的Trace中可以看出,31 01 DC 10的响应时间大概为10s, 当时间戳2.733 s发送了31诊断请求后,服务器在50ms 内也就是在2.788s无法给出积极或者消极响应,于是就给客户端响应了NRC78,告诉客户端你在给我5000ms的时间,但是由于我们的代码是TestWaitForDiagResponse(req_Reset_All_Parameters_Start,3000)也就是不管短时间长时间我最多只给你3000ms,在这时间有积极或者消极响应(客户端忽略NRC78),就返回值为1,否则为0;即使服务器后面时间给出了响应,我也不会等待了。

将NRC0x78 当成普通的 NRC

我们 使能DiagSetP2Extended(-1) 代码。

      write("DiagSetP2Extended(-1):%d",DiagSetP2Extended(-1));TestReportWriteDiagObject(req_Reset_All_Parameters_Start); DiagSendRequest(req_Reset_All_Parameters_Start);TestWaitForDiagRequestSent(req_Reset_All_Parameters_Start, 150);retVal = TestWaitForDiagResponse(req_Reset_All_Parameters_Start,3000); write("TestWaitForDiagResponse():%d",retVal);write("response size:%ld",diagGetRespPrimitiveSize(req_Reset_All_Parameters_Start));write("DiagSetP2Extended(-1):%d",DiagSetP2Extended(0));

输出结果:
DiagSetP2Extended(-1):0 // 返回值为0 说明设置成功的;
TestWaitForDiagResponse():1 //返回值为 1 ,说明 在3000ms内收到了积极或者消极的响应。
response size :3 //响应的数据长度是3,说明是消极响应,即返回的 7F 31 78
DiagSetP2Extended(0):0

NRC 0x78 在CAPL中如何打开和关闭相关推荐

  1. win10计算机管理没有蓝牙,win10系统中缺少打开或关闭蓝牙选项的解决方法

    在win10系统中,自带有蓝牙功能,但是有时候在使用蓝牙的时候,发现设置应用程序或操作中心中缺少打开蓝牙的选项,遇到这样的问题该怎么办呢,本文就给大家讲解一下win10系统中缺少打开或关闭蓝牙选项的解 ...

  2. 计算机管理服务中没有ANSYS,WIN7:ANSYS12.0时,出现:必须使用控制面板中的打开或关闭windows功能安装或配置...

    ect to any license serber. The server is down or is not responsive. ANSYSLI_SERVERS:2325@jianpengli ...

  3. python中文件打开与关闭操作命令

    1.文件打开与关闭 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式). f = open('test.txt', 'w') 文件打开模式: ...

  4. 【已解决】谷歌Chrome浏览器中如何打开或关闭网页的自动翻译功能?

    对于经常查阅各种外文资料的人来说,谷 歌翻译插件 必不可少.但是今天小编要跟大家说的不是 chrome插件 ,而是chrome自带的网页翻译功能.Chrome有自带整页翻译的功能,这个我相信很 对于经 ...

  5. 谷歌Chrome浏览器中如何打开或关闭网页的自动翻译功能?

    对于经常查阅各种外文资料的人来说,谷 歌翻译插件 必不可少.但是今天小编要跟大家说的不是 chrome插件 ,而是chrome自带的网页翻译功能.Chrome有自带整页翻译的功能,这个我相信很 对于经 ...

  6. 谷歌Chrome浏览器中如何打开或关闭网页的自动翻译功能

    目录 阅读源 阅读源 https://blog.csdn.net/jamie0515/article/details/76596179

  7. 打开计算机无法关闭窗口,电脑中“打开或关闭Windows功能”窗口出错无法显示怎么解决...

    ‍ 当我们想要开启或删除电脑系统中的某些应用时,需要打开控制面板中的"打开或关闭Windows功能"窗口来进行设置.但是,有的用户可能由于某些原因导致打开该窗口出错,无法显示里面 ...

  8. win10 更新后右下角 网络图标没有了,并且打开或关闭系统图标中的网络为灰色

    问题描述: 1.各个网口驱动正常,能够上网,只是需要进入设置中的"网络和Internet" 中去连接和设置网络 2.WLAN AutoConfig 服务已在运行 3.任务栏设置中的 ...

  9. 打开文件位置在计算机游戏里面,Win7电脑“打开或关闭windows功能”里面没有游戏文件夹的修复方法...

    平时系统中可以使用"打开或关闭windows功能"来删除或安装系统默认的游戏.但是最近有雨林木风win7系统的用户打开"打开或关闭windows功能"却发现里面 ...

最新文章

  1. 巨杉数据库:金融级数据库是怎样炼成的
  2. WIN32 _WIN32 _WIN64宏定义
  3. 【HNOI模拟By YMD】move
  4. 提高.NET性能的最佳实践
  5. 从零点五开始用Unity做半个2D战棋小游戏(二)
  6. 判断目录是否存在并创建mkdir
  7. python 知乎接口_Python采用Django制作简易的知乎日报API
  8. matlab之norm函数
  9. centos mysql jar 驱动包_JDBC连接MySQL的数据库
  10. iptables规则书写总结
  11. jsp连接mysql----------第一篇技术类文章
  12. 汇总一下那几个常用定理 高斯定理 泊松方程 亚阈值电流 跨导
  13. window 脚本文件.bat获取最高权限拷贝文件及c++调用.bat文件示例
  14. Carplay车载语音通讯测试(Vehicle Communication Terminals Test)
  15. Glove模型的原理与代码
  16. 例7.6有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁。
  17. 谈IT大学生的竞争优势
  18. 为啥黑客都人手一台笔记本电脑?
  19. idea的下载、安装和破解
  20. android自定义app图标下载,安卓换图标

热门文章

  1. 《ASP.NET AJAX 应用剖析立即上手》推荐序!
  2. Allegro174版本新功能介绍之和172版本兼容设置
  3. Linux:解压bz2文件
  4. 电脑硬盘中文件丢失怎样才能找回?硬盘数据丢失能恢复吗
  5. Zotero使用GB/T7714 2005模板插入参考文献出现 作者名全部大写问题、et al.变成汉字‘等‘、多出参考文章的doi 问题 的解决方案
  6. 读书笔记:收敛性 ← 随机过程
  7. python语言初学
  8. 专访中科创达软件工程师龙辉:Idea赋予实践的演进之路
  9. HM二次开发 - 外部程序采用socket与HM实现通信
  10. 启动tomcat报错:StandardEngine[Catalina].StandardHost[localhost].StandardContext