汽车DTC故障内码与标准故障码的解析与转换

news2024/11/16 5:36:08

目录

一、故障内码与标准故障码的解析

(1)故障内码的信息格式与解析

(2)故障内码中DTC状态的解析

(3)故障内码与标准故障码之间的对应关系

二、故障内码与标准故障码的转换代码


一、故障内码与标准故障码的解析

(1)故障内码的信息格式与解析

通过UDS读出来的DTC信息格式:

 例如:

TX:03 19 02 09 00 00 00 00 

RX:11 CF 59 02 FF 31 54 06

RX:21 AF 30 3C 13 AF 30 3D

其中:31 54 06 AF对应上述DTC故障内码的格式

  • DTC High Byte:31
  • DTC Middle Byte:54
  • DTC Low Byte:06 
  • DTC Status:AF

注:DTC Low Byte用于描述故障种类与子类型

(2)故障内码中DTC状态的解析

当DTC Status = 0x24时候的对应位解释:

(3)故障内码与标准故障码之间的对应关系

  • 标准故障码中的第一位表示所属系统:

  •  标准故障码的第二位表示故障类型:

  • 标准故障码的第三位表示故障所属子系统
  • 标准故障码的第四、五位表示具体故障对象和类型

例如:

标准故障码:U10BD 83 

转换成故障内码:0xD0BD83

二、故障内码与标准故障码的转换代码

用Python根据上述规则写的转换代码

dtc_hex2str_15_14_bit= {
    "00" : "P", # Powertrain  动力系统故障
    "01" : "C", # Chassis     底盘故障
    "10" : "B", # Body        车身故障
    "11" : "U", # Network     网络故障
}

dtc_str2hex_15_14_bit= {
   "P" : "00",  
   "C" : "01",
   "B" : "10",
   "U" : "11",
}


class DtcAnalyser(object):
    def __init__(self):
        pass

    def str2hex(self, dtc_code : str) -> str:
        # DTC High Byte   
        bit15_14_str = dtc_str2hex_15_14_bit.get(dtc_code[0])            # 故障所属系统
        bit13_12_str = bin(int(dtc_code[1], 16))[2:].zfill(2)            # 故障类型:0:ISO/SAE标准故障, 1:制造商自定义故障码, 2:ISO/SAE预留, 3:ISO/SAE预留
        bit11_8_str =  bin(int(dtc_code[2], 16))[2:].zfill(4)            # 故障所属子系统 

        # DTC Middle Byte
        bit7_0_str =   bin(int(dtc_code[3:5], 16))[2:].zfill(8)          # 故障对象和类型

        # DTC Low Byte
        dtc_low_byte_str = bin(int(dtc_code[5:], 16))[2:].zfill(8)

        # Decode to Binarary
        dtc_bin_str = bit15_14_str + bit13_12_str + bit11_8_str  + bit7_0_str + dtc_low_byte_str

        return hex(int(dtc_bin_str, 2))

    def hex2str(self, dtc_hex : str) -> str:
        # Str filter
        dtc_hex_str = dtc_hex.replace('0x', '') if '0x' in dtc_hex else dtc_hex

        # To Binarary
        dtc_bin_str = bin(int(dtc_hex_str, 16))[2:].zfill(24)            # 故障码一般由3个字节组成

        # Decode to DTC
        dtc_bit1_str = dtc_hex2str_15_14_bit.get(dtc_bin_str[0:2])
        dtc_bit2_str = str(int(dtc_bin_str[2:4], 2))
        dtc_bit3_str = str(int(dtc_bin_str[4:8], 2))
        dtc_middle_low_str = dtc_hex_str[2:]


        dtc_code_str = dtc_bit1_str + dtc_bit2_str + dtc_bit3_str  + dtc_middle_low_str
        
        return dtc_code_str

if __name__ == "__main__":
    dtc_code_str = "U10BD83"
    dtc_hex_str = "0x318F13"
    
    dtc_analyser = DtcAnalyser()                                                                                                                                                                                                                             
    print("new:%s"%(dtc_analyser.str2hex(dtc_code_str)))
    print(dtc_analyser.hex2str(dtc_hex_str))

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

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

相关文章

数字化项目管理如何推动项目快速上市?【洞见6】

AIGC时代的到来,标志着互联网从信息化的轻工业时代正式进入了互联网数字化的重工业时代。随之迎来的是人工智能技术的广泛引用,如何在项目管理中应用也是一个挑战,因为的项目本身的特点就是变化、复杂。笔者在为了进行突破,开始不…

vue父子组件传值不能实时更新

最近做项目,遇到个大坑,这会爬出来了,写个总结,避免下次掉坑。 vue父子组件传值不能实时更新问题,父组件将值传给了子组件,但子组件显示的值还是原来的初始值,并没有实时更新,为什么…

基于TCP协议的文件传输系统

最简单的一对一的服务端网络端通信(socket) Socket(IP地址:端口号),例如:如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23) socket可以理解成计算机提供给程序员的接…

R语言实现常用的5种分析方法(主成分+因子+多维标度+判别+聚类

R语言多元分析系列之一:主成分分析 主成分分析(principal components analysis, PCA)是一种分析、简化数据集的技术。它把原始数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为…

Android Application启动流程

详细流程分析 从 ActivityThread.java 的main方法开始看; public static void main(String[] args) {...ActivityThread thread new ActivityThread();thread.attach(systemfalse, startSeq);//1... }进入attach方法; if(!system){final IActivityMa…

flask配置https协议

感谢https://blog.csdn.net/qq_33934427/article/details/127456673,文中多有参考再实践一、要用https协议需要有ca证书,在windows10先下载windows版本openssl,地址如下https://share.weiyun.com/vfjVrMAb我是64位的选择下载完毕安装后配置环…

vmvare NAT模式设置

一、前言 这里为什么会写关于设置vmvare NAT模式的笔记呢,以前使用linux虚拟机都是使用桥接模式获取IP地址。最近出差仙林医院,发现使用无线网络,虚拟机桥接获取不到IP地址,所以使用NAT模式。 二、设置步骤 1.设置网络适配器 …

hudi系列-文件布局(file layout)

概念 hudi的文件布局是能实现增量查询、数据更新等特性的基础,每个hudi表有一个固定的目录,存放元数据(.hoodie)以及数据文件,其中数据文件可以以分区方式进行划分,每个分区有多个数据文件(基础文件和日志文件),这些数…

数据处理时代,有关数据的这些事

数据处理对于现在的企业来说已经是很平常的事,这主要是因为对数据的认识随时间的推移不断增加,企业用到数据的地方也越来越多。不过企业真正大规模利用的其实是数据资产,而非企业活动产生的所有数据,这两者并不互相统一。海量复杂…

WSH:一款功能强大的Web Shell生成器和命令行接口工具

关于WSH WSH是一款功能强大的Web Shell生成器和命令行接口工具。我们考虑到只用一个HTTP客户端来跟Webshell交互其实是一件很痛苦的事,我们需要在表格中输入命令,然后再点各种按钮。因此,我们开发出了WSH,我们可以轻松将其嵌入到…

代码随想录【Day16】| 104. 二叉树的最大深度、111. 二叉树的最小深度、222. 完全二叉树的节点个数

104. 二叉树的最大深度 题目链接 题目描述: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7]&#xff0c…

在vscode中使用Typescript并运行

首先呢,我们在学习ts之前,需要先安装ts 1、安装 typescript npm install -g typescript //检查是否安装tsc -v ​ 2、生成配置文件,cd进入该文件夹,在控制台输 tsc --init ​ 此时我们就可以看到在ts文件夹下面出现了 一个tsco…

搞清品牌策划第一性原理

【班门弄斧】一个科技男的妄想~~ ………搞懂品牌营销的深层逻辑 马斯克说,搞清第一性原理 国内有学科理论支撑的品牌营销大咖 趣讲大白话:我读书多,别骗我 *********** 【国内品牌营销大咖们的理论支撑】 1、王志纲 -中国智慧(时…

C++——类和对象3

目录 1. 运算符重载 1.1 "" 的重载 1.2 前置 "" 和后置 "" 重载 1.3 流插入 "<<" 和流提取 ">>" 重载 1.4 运算符重载注意事项 2. const成员和static成员 2.1 const成员 2.2 static成员 3. 友元 …

C++递推基础知识

文章目录一、递推的概念二、递推和递归的区别三、递推的实例1、最基础的&#xff1a;斐波那契数列2、变形版斐波那契数列3、较复杂的递推式求解&#xff1a;昆虫繁殖4、经典逆推问题&#xff1a;题目数量一、递推的概念 1、什么是递推算法&#xff1f; 递推算法&#xff1a;是…

剑指 Offer 60. n个骰子的点数

题目 把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为s。输入n&#xff0c;打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案&#xff0c;其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。 思路 动态规划&#xff1…

九龙证券|“股神”也做短线?巴菲特减仓逾八成台积电

美东时间2月14日盘后&#xff0c;“股神”巴菲特旗下公司伯克希尔哈撒韦&#xff08;下称“伯克希尔”&#xff09;发表的13F陈述引发商场热议。13F陈述被誉为“股市风向标”&#xff0c;出资者可藉此得以一窥华尔街大佬的最新出资思路。 根据美国证券交易委员会&#xff08;SE…

Vulnhub 渗透练习(三)—— Bulldog

环境搭建 下载链接 在 virtuallBox 中打开靶机。 virtuallBox 网络连接方式设置为仅主机。 vmware 设置桥接模式的网卡为 VirtualBox Host-Only Ethernet Adapter。 kail 网络适配设置为 NAT 和 桥接。 来自&#xff1a;https://blog.csdn.net/LYJ20010728/article/details/1…

JavaEE|文件操作·上

文章目录一、认识文件文件的概念文件的管理相关概念相对路径写法♋文件的分类Java中文件的操作二、File类的使用构造方法获得文件元信息判断的相关方法删除的方法与目录有关的方法修改名字三、流对象的使用什么是流文件内容操作涉及内容字节流对象InputStreamOutputStream字符流…

Bug bounty学习笔记20230213-0216(searching for Target)

www.bugcrowd.com Bug bounty program website 寻找email address Hunter.io Phonebook.cz www.voilanorbert.com – clearbit connect 在chrome里使用 Tools.verifyemailaddress.io Email-checker.net/validate 确定邮箱地址是不是真的 Dehashed.com Search for personal …