From db7438b207d946fe0238faf1b6923d1faac88225 Mon Sep 17 00:00:00 2001 From: Marianpol Date: Sun, 23 Feb 2020 23:45:51 +0100 Subject: [PATCH] Fixes --- pyren/mod_ecu.py | 2 ++ pyren/mod_ecu_mnemonic.py | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pyren/mod_ecu.py b/pyren/mod_ecu.py index 2d682a3..64bd795 100755 --- a/pyren/mod_ecu.py +++ b/pyren/mod_ecu.py @@ -540,6 +540,8 @@ class ECU: kb.set_normal_term() if mod_globals.opt_csv and csvf!=0: csvf.close() + if "DTC" in path: + mod_globals.ext_cur_DTC = "000000" return def add_favourite(self): diff --git a/pyren/mod_ecu_mnemonic.py b/pyren/mod_ecu_mnemonic.py index a6af076..278c54c 100755 --- a/pyren/mod_ecu_mnemonic.py +++ b/pyren/mod_ecu_mnemonic.py @@ -35,7 +35,7 @@ def get_mnemonicDTC( m, resp ): def get_mnemonic( m, se, elm, raw = 0 ): - if not m.serviceID and mod_globals.ext_cur_DTC: + if not m.serviceID and mod_globals.ext_cur_DTC != "000000": for sid in se.keys(): if se[sid].startReq == "120004"+ mod_globals.ext_cur_DTC[:4]: m.startByte = se[sid].responces[se[sid].responces.keys()[0]].mnemolocations[m.name].startByte @@ -58,7 +58,7 @@ def get_mnemonic( m, se, elm, raw = 0 ): resp = ' '.join(a+b for a,b in zip(resp[::2], resp[1::2])) if len(m.startByte)==0: m.startByte = u'01' - hexval = getHexVal(m.startByte, m.bitsLength, m.startBit, m.littleEndian, resp) + hexval = getHexVal(m.startByte, m.bitsLength, m.startBit, m.littleEndian, resp, raw) return hexval def get_SnapShotMnemonic(m, se, elm, dataids): @@ -100,7 +100,7 @@ def get_SnapShotMnemonic(m, se, elm, dataids): hexval = getHexVal(startByte, m.bitsLength, startBit, m.littleEndian, didDict[dataId]) return hexval -def getHexVal(startByte, bitsLength, startBit, littleEndian, resp): +def getHexVal(startByte, bitsLength, startBit, littleEndian, resp, raw = 0): #prepare local variables sb = int(startByte) - 1 bits = int(bitsLength) @@ -116,6 +116,12 @@ def getHexVal(startByte, bitsLength, startBit, littleEndian, resp): hexval = resp[sb*3:(sb+bytes)*3-1] hexval = hexval.replace(" ","") + if raw: + if resp.startswith(m.positive): + return hexval + else: + return 'ERROR' + #shift and mask val = (int(hexval,16)>>rshift)&(2**bits-1)