餐饮加盟网站建设方案,响应式旅游网站模板,学校网站建设价格明细表,营业执照几年不审自动注销目录
一、故障内码与标准故障码的解析
#xff08;1#xff09;故障内码的信息格式与解析
#xff08;2#xff09;故障内码中DTC状态的解析
#xff08;3#xff09;故障内码与标准故障码之间的对应关系
二、故障内码与标准故障码的转换代码 一、故障内码与标准故障…目录
一、故障内码与标准故障码的解析
1故障内码的信息格式与解析
2故障内码中DTC状态的解析
3故障内码与标准故障码之间的对应关系
二、故障内码与标准故障码的转换代码 一、故障内码与标准故障码的解析
1故障内码的信息格式与解析
通过UDS读出来的DTC信息格式 例如
TX03 19 02 09 00 00 00 00
RX11 CF 59 02 FF 31 54 06
RX21 AF 30 3C 13 AF 30 3D
其中31 54 06 AF对应上述DTC故障内码的格式
DTC High Byte31DTC Middle Byte54DTC Low Byte06 DTC StatusAF
注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):passdef 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) # 故障类型0ISO/SAE标准故障, 1制造商自定义故障码, 2ISO/SAE预留, 3ISO/SAE预留bit11_8_str bin(int(dtc_code[2], 16))[2:].zfill(4) # 故障所属子系统 # DTC Middle Bytebit7_0_str bin(int(dtc_code[3:5], 16))[2:].zfill(8) # 故障对象和类型# DTC Low Bytedtc_low_byte_str bin(int(dtc_code[5:], 16))[2:].zfill(8)# Decode to Binararydtc_bin_str bit15_14_str bit13_12_str bit11_8_str bit7_0_str dtc_low_byte_strreturn hex(int(dtc_bin_str, 2))def hex2str(self, dtc_hex : str) - str:# Str filterdtc_hex_str dtc_hex.replace(0x, ) if 0x in dtc_hex else dtc_hex# To Binararydtc_bin_str bin(int(dtc_hex_str, 16))[2:].zfill(24) # 故障码一般由3个字节组成# Decode to DTCdtc_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_strreturn dtc_code_strif __name__ __main__:dtc_code_str U10BD83dtc_hex_str 0x318F13dtc_analyser DtcAnalyser() print(new:%s%(dtc_analyser.str2hex(dtc_code_str)))print(dtc_analyser.hex2str(dtc_hex_str))