DTC 19服务学习2

紧跟上篇
0x04 reportDTCSnapshotRecordByDTCNumber
通过DTC和快照序列来获取DTC快照记录。

适用以下假设:
— 服务器支持存储给定 DTC 的两个 DTCSnapshot 记录的能力。
— 此示例假定是上一个示例的延续。
— 假设服务器请求服务器存储的 DTC 编号 123456 的两个 DTCSnapshot 记录中的第二个(请参阅前面的示例,其中将 02 的 DTCSnapshotRecordCount 返回给客户端)。
— 假设 DTC 123456 的 statusOfDTC 为 24,并且每次出现 DTC 时都会捕获以下环境数据。
— DTCSnapshot 记录数据通过数据标识符 4711 引用。
直接看例子

  • 本例中同样假设DTCSnapshotRecordNumber对服务端来说是唯一的(这里唯一的意思是说对于任何DTC,只要有Snapshotrecord,则DTCSnapshotRecordNumber就会累加一个)。 实际情况中可能有不同的定义方式,比如可以对每一个DTC都有一个DTCSnapshotRecordNumber序列,或者对某几个DTC有一个DTCSnapshotRecordNumber的序列。
  • 上图响应信息中,byte 7 (DTCSnapshotRecordNumber)为DTCSnapshot的序号, 当DTCSnapshotRecordNumber为全局唯一时, reportDTCSnapshotRecordByDTCNumber以及下一节要介绍的reportDTCStoredDataByRecordNumber都可用,但是当DTCSnapshotRecordNumber不是全局唯一时, 下一节要介绍的reportDTCStoredDataByRecordNumber功能就不可用,因为这时候给定一个DTCSnapshotRecordNumber不能唯一的确定是哪一个DTC的DTCSnapshotRecord。
  • 响应信息中,byte 8 (DTCSnapshotRecordNumberOfIdentifiers)为 dataIdentifier的序号,此例中只有一个dataIdentifier (0x4711), 所以DTCSnapshotRecordNumberOfIdentifiers的值为0x01,若有多个dataIdentifier,其值会继续增加下去。
  • dataIdentifier是数据ID,dataIdentifer 与 Snapshot record的内容相关联:一个dataIdentifier对应一组Snapshot record content。 当一个dataIdentifier 只涉及到所有数据中的一部分数据,而又需要所有数据时,就需要多个dataIdentifier。
  • ISO14229中并没有对dataidentifier的长度(本例中2个字节)以及DTCSnapshotRecord内容的长度(本例中5个字节)做强制规定。

0x06 reportDTCExtDataRecordByDTCNumber
reportDTCExtendedDataRecordByDTCNumber,它的功能是根据客户端请求的DTC,返回一个DTCExtendedDataRecord。 其功能与reportDTCSnapshotRecordByDTCNumber类似, 区别只是reportDTCSnapshotRecordByDTCNumber返回的是DTCSnapshotRecord 而reportDTCExtDataRecordByDTCNumber返回的是DTCExtendedDataRecord。 与reportDTCSnapshotRecordByDTCNumber一样,客户端请求是发送的DTCNumber叫做DTCMaskRecord,实际并没有”Mask”的功能,服务端会查找与DTCMaskRecord完全匹配的DTC。

通常情况下(客户端请求时的DTCExtDataRecordNumber不等于0xFE或0xFF,注意这点ISO14229(2013)与ISO14229(2006)不同,ISO14229(2006)只有不等于0xFF这一个例外), 服务端只会返回客户端1条预定义的DTCExtendedData 记录,否则服务端会返回存储的所有DTCExtendedData records。 DTCExtDataRecord(ISO14229(2006)此处名称为DTCExtendedDataRecord)的格式与内容由整车厂定义, DTCExtDataRecord中的数据结构由DTCExtDataRecordNumber定义,定义方式与reportDTCSnapshotRecordByDTCNumber中的dataIdentifier相似。

如果客户端请求的DTCMaskRecord 或者 DTCExtDataRecordNumber不可用或者服务端不支持,服务端会否定响应。关于否定响应ISO14229(2006)与ISO14229(2013)也有不同, ISO14229(2013)中规定,如果客户端请求DTCExtDataRecordNumber为0xFE,但是服务端不支持OBD相关的扩展数据(0x90-0xEF)时同样会产生否定响应。

使用ISO14229中的例子,做如下假设:

对于某个给定的DTC,服务端最多只能存储2个DTCExtendedData。
假设客户端请求DTC(0x123456)所有可用的DTCExtendedData。
假设DTC(0x123456)的statusOfDTC 为0x24,且随后的扩展数据是可用的。
DTCExtendedData通过DTCExtDataRecordNumbers 0x05 和0x10引用,这两个

客户端请求信息中DTCExtDataRecordNumber的值为0xFF,表示请求所有符合条件的记录,服务端将返回所有可用的(本例子中2个)DTCExtendedData。

与reportDTCSnapshotRecordByDTCNumber中的DTCSnapshotRecord类似,ISO14229中也未对reportDTCExtDataRecordByDTCNumber中的DTCExtDataRecord长度做强制规定, 虽然本例中的长度为1个字节,但是具体长度整车厂可以自行定义,更加灵活的是,不同的DTCExtDataRecord的长度也不必完全一致(本例中都为1个字节)。

0x0A reportSupportedDTCs
这个相对比较好理解,报告所有支持的DTC,用于获取ECU支持的所有DTC


DTC有0x123456 状态码是0x24,0x234505,status:0, 0xABCD01,status:0x2F。

0x42 reportWWHOBDDTCByStatusMask
WWHOBDDTC是一种车辆故障码的标准格式,它的全称是:

World-Wide Harmonized On-Board Diagnostic Diagnostic Trouble Code

可以翻译为:全球统一的车载诊断故障码。

WWHOBDDTC规定了车辆故障码的标准化格式,目的是为了实现不同车型和不同车辆制造商之间故障码的统一和兼容。

具体来说,WWHOBDDTC格式的故障码由五个部分组成:

P - 表示故障码系统,如P0xxx表示引擎系统故障码。

B - 表示故障码种类,如P0101表示燃油系统故障码。

X - 表示故障码具体代码,如P0101表示燃油系统稀释度传感器故障。

Y - 表示故障次序,如重复故障则编号增加。

Z - 表示车系或发动机型号,如丰田卡罗拉则填写TMC。

采用这个标准格式后,无论什么车型出现什么故障码,它的含义和定位都将是统一和通用的。这对维修技术人员和故障诊断工具来说都很重要,有利于快速准确地诊断问题。WWHOBDDTC目前已成为车辆故障码的国际标准。

此示例演示了用于确认 DTC(DTC 状态掩码 08)的 reportWWWHOBDDTCByMaskRecord SubFunction 参数的用法。该车辆使用 CAN 总线连接两个排放相关服务端(ECU)。
客户端使用以下请求参数设置:
—FunctionalGroupIdentifier = 33(排放系统组),
—DTCSeverityMaskRecord.DTCSeverityMask = FF(报告具有任何严重性和类别状态的 DTC)
—DTCSeverityMaskRecord.DTCStatusMask = 08(报告已确认 DTC 状态 = ’ 的 DTC) 1’)。
服务器支持以下设置:
— FunctionGroupIdentifier = 3316(排放系统组)
— DTCStatusAvailabilityMask = FF16
— DTCSeverityAvailabilityMask = FF16
— DTCFormatIdentifier = SAE_J2012-DA_DTCFormat_04 = 04。

在以下示例中,服务器 #1 仅报告 DTC P2522-1F A/C 请求“B” - 电路间歇性 (25221F),因为 2F (0010 1111) 的 statusOfDTC 与客户端定义的状态掩码 08(0000 1000) 匹配。服务器 #2 报告 DTC P0235-12 涡轮增压器/增压器升压传感器“A”电路对电池短路,因为 2E(0010 1110) 的 statusOfDTC 与客户端定义的状态掩码 08(0000 1000)匹配。

参考:https://blog.whatsroot.xyz/2019/03/02/UDS-DTC-introduction/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

攻防世界-backup

原题 解题思路 备份文件后缀大多是bak、git、svn、swp等,尝试index.php.bak就有文件下载了:

1、攻防世界第一天

1、网站目录下会有一个robots.txt文件,规定爬虫可以/不可以爬取的网站。 2、URL编码细则:URL栏中字符若出现非ASCII字符,则对其进行URL编码,浏览器将该请求发给服务端;服务端会可能会先对收到的url进行解码&#xff0…

【HBZ分享】java中的BitSet 与 Redis中的BitMap 与 布隆过滤器

BitMap的存储原理 bitMap他会标识出某个整数是否存在,存在即为1,不存在对应位即为0bitMap是存储int类型的,int 4byte, 1byte 8bit,因此bitMap数组中的每个下标可以标识出32个数字是否存在bitMap相当于一个个小格子&…

解决方案:如何在 Amazon EMR Serverless 上执行纯 SQL 文件?

《大数据平台架构与原型实现:数据中台建设实战》一书由博主历时三年精心创作,现已通过知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详…

IP 地址监控工具

地址监控实用程序是一套 IP 工具,包括 IP 地址监控工具、流氓检测工具和 MAC 地址解析器,用于日常监控和管理 DNS 名称、IP和 MAC 地址。地址监控工具用于 IP监控,用于管理 DNS 名称、网络的 IP 和 MAC 地址,并跟踪 IP 地址。 IP…

uniapp配置添加阿里巴巴图标icon流程步骤

文章目录 下载复制文件到项目文件夹里项目配置目录结构显示图标 下载 阿里巴巴icon官网 https://www.iconfont.cn/ 复制文件到项目文件夹里 项目配置目录结构 显示图标

智能监控系统的守护者:人工智能行为识别技术的崛起与发展

人工智能助力监控系统:行为识别在安全监控中的应用与挑战 摘要: 随着人工智能技术的快速发展,行为识别在监控系统中的应用逐渐成为安全监控领域的重要工具。本文将详细探讨人工智能行为识别技术在监控系统中的应用,以及在实际应用…

JVM中分代回收机制

为什么要分为新生代和老年代? 分为新生代(Young Generation)和老年代(Old Generation)是为了更有效地管理和优化内存的使用。 新生代主要存放生命周期较短的对象,例如方法的局部变量、临时变量等。由于这…

数据结构-二叉树

在学习二叉树之前.必须先要掌握一些树的重要概念: 结点的度:一个结点含有的子树个数称为该结点的度.树的度:一棵树中,所有节点度的最大值称为树的度.叶子结点:度为0的结点称为叶子节点.(也叫终端结点)双亲结点:若一个结点含有子结点,则这个结点称为其子结点的双亲结点(也叫父节…

Egg.js构建一个stream流式接口服务

经常需要用到 stream 流式接口服务,比如:大文件下载、日志实时输出等等。本文将介绍如何使用Egg.js构建一个 stream 流式接口服务。 一、准备工作 目录结构: app//controllerindex.jstest.txttest.shindex.js 控制器test.txt 测试文件,最好…

申请部署阿里云SSL免费证书

使用宝塔自动创建的证书有时候会报NET::ERR_CERT_COMMON_NAME_INVALID,并且每次只能三个月,需要点击续期非常麻烦,容易遗忘。 阿里云免费SSL证书 前往阿里云管理控制台【数字证书管理服务】【SSL证书】,每年20个额度,一…

17.HPA和rancher

文章目录 HPA部署 metrics-server部署HPA Rancher部署Rancherrancher添加集群仪表盘创建 namespace仪表盘创建 Deployments仪表盘创建 service 总结 HPA HPA(Horizontal Pod Autoscaling)Pod 水平自动伸缩,Kubernetes 有一个 HPA 的资源&…

docker+haror

docker 2013年诞生,推荐单容器只运行一个程序或进程,形成一个分布式的应用模型。 总结下来就是:docker带来启动流程更快,运行效率较高、资源损耗较小,属于轻量级的服务。 docker的安装 推荐的一键化安装的脚本&#…

STM8遇坑[EEPROM读取debug不正常release正常][ STVP下载成功单运行不成功][定时器消抖莫名其妙的跑不通流程]

EEPROM读取debug不正常release正常 这个超级无语,研究和半天,突然发现调到release就正常了,表现为写入看起来正常读取不正常,这个无语了,不想研究了 STVP下载不能够成功运行 本文摘录于:https://blog.csdn.net/qlexcel/article/details/71270780只是做学习备份之…

Python面向对象植物大战僵尸

先来一波效果图 来看看如何设计游戏架构 import sysimport pygameclass BaseSprite(pygame.sprite.Sprite):def __init__(self, name):super().__init__()self.image pygame.image.load(name)self.rect self.image.get_rect()class AnimateSprite(BaseSprite):def __init__(…

Vue 2 处理边界情况

访问元素和组件 通过Vue 2 组件基础一文的学习,我们知道组件之间可以通过传递props或事件来进行通信。 但在一些情况下,我们使用下面的方法将更有用。 1.访问根实例 根实例可通过this.$root获取。 我们在所有子组件中都可以像上面那样访问根实例&…

什么文件传输协议才能保障跨国文件传输安全又稳定

在当今的全球化时代,跨国文件传输是一种常见而又重要的需求,无论是个人还是企业,都需要通过网络来分享和交换各种类型和大小的文件。但是,跨国文件传输也面临着许多挑战和风险,如何选择一个合适的文件传输协议&#xf…

2023国赛数学建模C题思路模型代码 高教社杯

本次比赛我们将会全程更新思路模型及代码,大家查看文末名片获取 之前国赛相关的资料和助攻可以查看 2022数学建模国赛C题思路分析_2022国赛c题matlab_UST数模社_的博客-CSDN博客 2022国赛数学建模A题B题C题D题资料思路汇总 高教社杯_2022国赛c题matlab_UST数模社…

【LeetCode-中等题】15. 三数之和

题目 题解一&#xff1a;双指针法 图解参考链接&#xff1a;画解算法&#xff1a;15. 三数之和 详解参考代码随想录讲的非常好 梦破碎的地方&#xff01;| LeetCode&#xff1a;15.三数之和 代码&#xff1a; class Solution {public List<List<Integer>> thre…

使用 PyTorch 进行高效图像分割:第 2 部分

一、说明 这是由 4 部分组成的系列的第二部分&#xff0c;旨在使用 PyTorch 中的深度学习技术从头开始逐步实现图像分割。本部分将重点介绍如何实现基线图像分割卷积神经网络&#xff08;CNN&#xff09;模型。 图 1&#xff1a;使用 CNN 运行图像分割的结果。按从上到下的顺序…