【车载开发系列】UDS诊断---基于事件响应($0x86)

news2024/11/17 10:50:29

【车载开发系列】UDS诊断—基于事件响应($0x86)

诊断---基于事件响应($0x86)

  • 【车载开发系列】UDS诊断---基于事件响应($0x86)
    • 一.概念定义
    • 二.注意事项
    • 三.报文格式
      • 1)请求报文
      • 2)肯定响应
      • 3)否定响应

一.概念定义

  1. 基于事件响应(ResponseOnEvent)服务(0x86)顾名思义就是当ECU发生了某个事件或满足了某个条件的时候发送响应,这和以往我们介绍的一条请求一条响应的诊断通信方式有所不同。
  2. 该服务是请求服务器启动或停止传输对特定事件的响应。
  3. 由客户端规定事件发生时将要执行的事件(包括可选的事件参数)和服务(包括服务参数)
  4. 首先诊断仪要先向ECU发送请求,设置一个事件逻辑,之后再向ECU发送指令控制该事件逻辑的启动,指令中附带eventWindowTime参数,即事件有效持续时间。当事件逻辑启动时,如果发生了指定的事件,ECU就会返回一条响应。
  5. 该服务的原理类似于设计模式当中的命令模式,因为有满足了条件之后就执行回调的思想在里面。

二.注意事项

  1. 0x86服务可以在任何诊断会话下被执行,包括默认会话,并且不需要诊断工具在线(0x3E)服务来维持状态
  2. 当指定时间发生时,如果当前有其它诊断指令正在被处理并即将返回一个诊断响应(包括返回0x78的情况),那么86服务的响应应该被推迟发送,在当前诊断响应发送完毕后再发送。所以在这种情况下可能会导致86响应中的数据不是实时的最准确的数据。

三.报文格式

1)请求报文

  1. eventTypeRecord
    此参数记录包含指定的eventType的其他参数。
  2. serviceToRespondToRecord
    该参数记录包含每次在eventTypeRecord中定义的指定事件发生时要在服务器中执行的服务的服务参数(服务ID和服务参数)。
  3. 当指定事件发生时,将评估serviceToRespondToRecord参数,该事件将触发serviceToRespondToRecord中包含的服务的执行。在事件发生时,应执行serviceToRespondToRecord(诊断服务请求消息)。
  4. Subfunction服务器应在接收时评估ResponseOnEvent请求消息的子功能和数据内容。 这包括以下子功能和参数:eventType,eventWindowTime和eventTypeRecord。具体的见下表。
HexNameDescriptioneventTypeRecord的长度
0x00tstopResponseOnEvent停止服务器发送事件响应0字节
0x01onDTCStatusChange检测到与为此事件指定的DTCStatusMask匹配的新DTC1字节
0x02onTimerInterrupt计时器中断1个字节
0x03onChangeOfDataIdentifierDataIdentifier标识的新内部数据2个字节
0x04reportActivatedEvents报告已在服务器中使用ResponseOnEvent服务激活的所有事件0字节
0x05startResponseOnEvent指示服务器激活已设置的事件逻辑并开始发送事件响应0字节
0x06startResponseOnEvent指示服务器激活已设置的事件逻辑并开始发送事件响应0字节
0x07onComparisonOfValuesDataIdentifier标识的特定记录中定义的数据值更改10字节
0x08-0x1FISOSAEReservedISO 保留,暂未定义-
0x20-0x2FVehicleManufacturerSpecific整车厂定义-
0x30-0x3ESystemSupplierSpecific供应商定义

在这里插入图片描述

2)肯定响应

  1. everyWindowsTime这个参数一般都是定义为0x02。在这里只是用来回显用,和请求报文时使用同样的值。
  2. 对于参数eventTypeRecord与serviceToRespondToRecord则是指在诊断请求要求的情况下才会被记录发出。如果出现多个符合定义的事件发生,则会逐一进行记录。
HexNameDescription
0x00-0x01ISOSAEReservedISO保留
0x02infiniteTimeToResponse响应时间无限
0x03-0x7FvehicleManufacturerSpecific车厂自行定义
0x80-0xFFISOSAEReservedISO保留

在这里插入图片描述

3)否定响应

常见的86服务的否定响应码如下
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java+MySQL基于ssm家教服务平台

随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用SSM框架建设家教服务平台。 本毕业设计主…

11个案例讲透 Python 函数参数

今天给大家分享一下自己整理的一篇 Python 参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上 80% 的文章讲的都要明白,如果你是入门不久的 python 新手,相信本篇文章应该对你会有不小的帮助。 接…

第5章 高级SQL

第5章 高级SQL 考试范围: 5.2 -5.3 考试题型: 计算题 考试内容: 函数、过程和触发器的概念 会定义和调用函数、过程 会定义触发器 函数、过程和触发器的概念 函数&&过程 存储过程和函数是一组为了完成特定功能的SQL语句集&…

如何用pgloader将Zabbix的MySQL数据库迁移到PostgreSQL数据库?

感谢本文作者 董玉凡 ,Zabbix工程师 摘 要 ►今天我们使用一款工具pgloader来进行从Zabbix的MySQL数据库将数据迁移到PostgreSQL数据库。 ►pgloader是一款开源软件项目,可以将各种来源的数据加载到PostgreSQL当中,可以支持动态读取的数据…

计算机毕设Python+Vue寻迹边境丹东旅游网站(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

2022中国产业数字化发展成熟度行业指数分析—— 重视差异,结合自身要素禀赋,推进产业精细化治理

易观分析:随着新一轮数字技术加速渗透到各行各业,发展壮大战略性新兴产业成为了现代化产业体系的新动力引擎。战略性新兴产业代表了新一轮科技革命和产业变革的方向,既是推进新型工业化的主要抓手,也是中国式现代化建设必不可少的…

【UE4 第一人称射击游戏】03-再生护甲和伤害功能

效果&#xff1a; 步骤&#xff1a; 1.打开“ThirdPersonCharacter”&#xff0c;添加如下节点&#xff1a; 如果护甲量<100%&#xff0c;就每秒1% 2.新建一个函数&#xff0c;命名为“TakeDamage5%” 每次执行该函数就减少5%的护甲量&#xff0c;如果护甲量<0&#…

NeurIPS'22 | GBA:面向搜推广模型的同步和异步自由切换的训练范式

丨目录&#xff1a; 搜推广增量迭代挑战 GBA的诞生 GBA的收敛性分析 GBA工程实现 GBA实验效果 未来展望近日&#xff0c;阿里巴巴在国际顶级机器学习会议NeurIPS 2022上发表了新的自研训练模式Gloabl Batch gradients Aggregation GBA&#xff08;论文链接&#xff1a;https://…

Maven导入sqlserver驱动jar包依赖包到本地仓库并引用

一、配置maven环境变量 (1)、找到此电脑右键---->点击属性---->选择高级系统设置---->点击环境变量---->新建系统变量 (2)、新建系统变量&#xff1a;MAVEN_HOME&#xff0c;变量值填你maven解压的路径&#xff0c;然后点击确定。 (3)、在已有的path系统变量里&…

Codeforces Round #703 (Div. 2) C2. Guessing the Greatest (hard version)

翻译&#xff1a; 简单版本和困难版本之间的唯一区别是查询数量的限制。 这是一个互动的问题。 有一个包含&#x1d45b;不同数字的数组&#x1d44e;。在一个查询中&#xff0c;您可以询问子段&#x1d44e;[&#x1d459;..&#x1d45f;]中第二个最大元素的位置。在不超过…

CUDA独立上下文模块加载

CUDA独立上下文模块加载 大多数 CUDA 开发人员都熟悉 cuModuleLoad API 及其对应项&#xff0c;用于将包含设备代码的模块加载到 CUDA 上下文中。 在大多数情况下&#xff0c;您希望在所有设备上加载相同的设备代码。 这需要将设备代码显式加载到每个 CUDA 上下文中。 此外&…

408总结-冲冲冲

数据结构 m阶B树除根节点外所有节点关键字范围⌈m/2⌉−1至m−1\lceil m/2\rceil-1至m-1⌈m/2⌉−1至m−1。所有叶节点都在同一层&#xff0c;且不带信息&#xff0c;代表查找失败的位置。是所有节点平衡因子都为0的多路平衡查找树完全二叉树的叶子结点只可能出现在最下面两层…

AndroidStudio使用maven-publish发布aar至mavencentral中央仓库

目录AndroidStudio使用maven-publish发布aar至mavencentral中央仓库1、注册[【sonatype】](https://issues.sonatype.org/secure/Signup!default.jspa)2、创建Group ID3、下载安装[gnupg](https://www.gnupg.org/download/index.html)4、创建生成密钥5. 配置maven-publish打包推…

设计模式之访问者模式

Visitor design pattern 访问者模式的概念、访问者模式的结构、访问者模式的优缺点、访问者模式的使用场景、访问者模式实现示例、访问者模式的源码分析、双分派 1、访问者模式的概念 访问者模式&#xff0c;即在不改变聚合对象内元素的前提下&#xff0c;为聚合对象内每个元素…

STM32F103VET6基于STM32CubeMX RTC时钟报警中断使用示例

STM32F103VET6基于STM32CubeMX RTC时钟报警中断使用示例&#x1f4fa;STM32CubeMX配置RTC时钟报警中断演示过程&#xff1a; &#x1f4cc;相关篇《STM32F103VET6基于STM32CubeMX RTC时钟秒更新中断使用示例》&#x1f4cc;《STM32F103VET6基于STM32CubeMX RTC时钟使用示例》&a…

VUE-router

七.Vue-router 1、什么是vue-router vue-router是vue.js官方路由管理器。vue的单页应用是基于路由和组件的&#xff0c;路由用于设定访问路径&#xff0c;并将路径和组件映射起来。 传统页面切换是用超链接a标签进行切换。但vue里是用路由&#xff0c;因为我们用Vue做的都是…

K8s 前世今生与架构组件简析

k8s 前世 k8s 的前世是google 内部的Borg 系统&#xff0c;是一个作业调度平台&#xff0c;调度的对象是一个个进程。 Borg 本身也利用了容器化技术比如 Cgroups, Namespace 实现应用的隔离。 运行在线上的业务主要分为在线业务&#xff08;prod&#xff09;和离线业务(non-…

Netty实战与源码剖析(二)——Netty线程模型

1 线程模型基本介绍 不同的线程模式&#xff0c;对于程序的性能有很大的影响&#xff0c;Netty为何具有如此高的性能&#xff0c;很大程度上是得益于Netty采用的线程模型。 目前主流存在的线程模型有两种&#xff1a; 传统阻塞IO模型Reactor模型 然而根据Reactor的数量和处理…

零基础转行程序员,有哪些经验可以借鉴?

随着互联网行业的迅速发展&#xff0c;市场对于程序员的需求增大&#xff0c;越来越多的人开始转行到IT领域&#xff0c;程序员也不再基于计算机科学或软件工程等个别专业的毕业生&#xff0c;其他非计算机相关专业的&#xff0c;像学物理、数学、自动化&#xff0c;甚至英语、…

云原生丨DataX在数据迁移中的应用与实践

文章目录一、前言二、准备工作三、安装工具与数据迁移Demo安装工具与数据迁移三、使用Datax抽取移动云上的gauss数据库四、Datax工具逻辑说明整体框架核心模板介绍流程调度数据库类型插件读、写说明五、Datax工具参数说明SettingReader& writerjdbcUrlusernamepasswordtabl…