diff --git a/pyren3/mod_ddt_ecu.py b/pyren3/mod_ddt_ecu.py index 7b23265..7d86a8b 100644 --- a/pyren3/mod_ddt_ecu.py +++ b/pyren3/mod_ddt_ecu.py @@ -339,6 +339,16 @@ class DDTECU(): #print et.dump(root) + try: + funcs = root.findall('ns0:Target/ns0:Function', ns) + if funcs: + for fun in funcs: + self.Addr = can.attrib["Address"] + if len(self.Addr): + self.Addr = hex(int(self.Addr))[2:] + except: + self.Addr = None + cans = root.findall('ns0:Target/ns0:CAN', ns) #xdoc.findall("CAN") if cans: for can in cans: diff --git a/pyren3/mod_ddt_screen.py b/pyren3/mod_ddt_screen.py index 9911c72..95b0823 100644 --- a/pyren3/mod_ddt_screen.py +++ b/pyren3/mod_ddt_screen.py @@ -730,17 +730,18 @@ class DDTScreen (tk.Frame): # show confirmation dialog if approve is True confirmed = True xText = f'#The macro made by mod_ddt from file {fname}\n\n' - xText += f'$addr = {self.decu.cecu["dst"]}\n\n' - if self.decu.cecu["pin"] == 'can' and self.decu.cecu["brp"] == '0': - xText += f'can500 # init can macro\n\n' - elif self.decu.cecu["pin"] == 'can' and self.decu.cecu["brp"] == '1': - xText += f'can250 # init can macro\n\n' - else: - xText += f'fast # init iso macro\n\n' - xText += f'delay 1\n\n' - xText += f'# open session\n\n' - xText += f'session {self.decu.cecu["startDiagReq"]}\n\n' - xText += f'# configuration\n\n' + if self.decu.cecu != None: + xText += f'$addr = {self.decu.cecu["dst"]}\n\n' + if self.decu.cecu["pin"] == 'can' and self.decu.cecu["brp"] == '0': + xText += f'can500 # init can macro\n\n' + elif self.decu.cecu["pin"] == 'can' and self.decu.cecu["brp"] == '1': + xText += f'can250 # init can macro\n\n' + else: + xText += f'fast # init iso macro\n\n' + xText += f'delay 1\n\n' + xText += f'# open session\n\n' + xText += f'session {self.decu.cecu["startDiagReq"]}\n\n' + xText += f'# configuration\n\n' for i in conf_1: xText += f'{i}\n'