From e8ef5254e8cd01d2eef2cc941cbbb390df688830 Mon Sep 17 00:00:00 2001 From: shrlnm Date: Sun, 3 Feb 2019 22:28:31 +0300 Subject: [PATCH] 9n fix #8 --- pyren/mod_ddt.py | 3 +- pyren/mod_ecu.py | 3 +- pyren/mod_elm.py | 8 ++- pyren/mod_optfile.py | 21 ++++++- pyren/mod_scan_ecus.py | 8 +-- pyren/mod_term.py | 125 +++++++++++++++++++++++++++++++++++++---- 6 files changed, 145 insertions(+), 23 deletions(-) diff --git a/pyren/mod_ddt.py b/pyren/mod_ddt.py index adbe32b..3e54962 100755 --- a/pyren/mod_ddt.py +++ b/pyren/mod_ddt.py @@ -7,7 +7,6 @@ import pickle os.chdir(os.path.dirname(os.path.realpath(sys.argv[0]))) import mod_globals -import mod_ecu import mod_scan_ecus import mod_elm @@ -296,6 +295,8 @@ def get_addr_from_xml( xmlfile ): def main(): '''Main function''' + import mod_ecu + optParser() print 'Opening ELM' diff --git a/pyren/mod_ecu.py b/pyren/mod_ecu.py index df046e3..ddbd2c4 100755 --- a/pyren/mod_ecu.py +++ b/pyren/mod_ecu.py @@ -351,6 +351,7 @@ class ECU: if mod_globals.opt_csv: # prepare to csv save + self.minimumrefreshrate = 0 csvline = u"Time" nparams = 0 for dr in datarefs: @@ -443,7 +444,7 @@ class ECU: if not (mod_globals.opt_csv and mod_globals.opt_csv_only): newScreen = initScreen - header = "ECU : "+self.ecudata['ecuname']+' '+self.ecudata['doc']+'\n' + header = 'ECU : '+self.ecudata['ecuname']+' (RT:'+'{0:.4f}'.format(self.elm.response_time)+') '+self.ecudata['doc']+'\n' header = header + "Screen : "+path newScreen = newScreen + pyren_encode( header ) + '\n' diff --git a/pyren/mod_elm.py b/pyren/mod_elm.py index 2586583..90e0e06 100755 --- a/pyren/mod_elm.py +++ b/pyren/mod_elm.py @@ -663,10 +663,14 @@ class ELM: if byte == '\r' or byte == '\n': - line = buff.strip () + line = buff.strip() buff = "" - if len (line) < 6: continue + if len (line) < 6: + continue + + if ':' in line: + line = line.split(':')[-1].strip() if ord (line[4:5]) < 0x31 or ord (line[4:5]) > 0x38: continue diff --git a/pyren/mod_optfile.py b/pyren/mod_optfile.py index ef262d6..5905184 100755 --- a/pyren/mod_optfile.py +++ b/pyren/mod_optfile.py @@ -116,6 +116,7 @@ if __name__ == "__main__": if len(sys.argv)==1: print "Usage: mod_optfile.py [key]" print " mod_optfile.py ALLSG" + print " mod_optfile.py HEX " print "Example:" print " mod_optfile.py ../Location/DiagOnCan_RU.bqm" print " mod_optfile.py ../EcuRenault/Sessions/SG0110016.XML P001" @@ -144,9 +145,23 @@ if __name__ == "__main__": f = open(ugFileName,'wt') f.write( rf ) f.close() - exit(0) - - + exit(0) + + if sys.argv[1]=='HEX': + lf = open(sys.argv[2], "rb") + of = open(sys.argv[3], "wb") + + while(1): + i = lf.tell() + bytes = lf.read(2) + if len(bytes)<2: + exit() + + x = 0 + x = struct.unpack('0: + f = open(fname, 'rt') + cmd_lines = f.readlines() + f.close() + + if auto_macro != '': if auto_macro in macro.keys(): play_macro( auto_macro, elm ) else: print 'Error: unknown macro mane:', auto_macro - + + while True: - l = raw_input(var['$addr']+':'+var['$txa']+':'+var['$prompt'] + '#').lower() - + print var['$addr']+':'+var['$txa']+':'+var['$prompt'] + '#', + if len(cmd_lines)==0: + l = raw_input().lower() + else: + if cmd_ref0 and l_parts[0] in ['wait','sleep']: + try: + time.sleep(int(l_parts[1])) + continue + except: + pass + if l in macro.keys(): play_macro( l, elm ) continue + m = re.search('\$\S+\s*=\s*\S+', l) if m: - #variable definition + # variable definition r = m.group(0).replace(' ', '').replace('\t', '') rl = r.split('=') var[rl[0]]=rl[1] @@ -318,7 +419,7 @@ def main(): print elm.cmd(l) -if __name__ == '__main__': +if __name__ == '__main__': main()