diff -r 93ad018fb602 -r 8c8cb5c9ff38 ProjectController.py --- a/ProjectController.py Thu Dec 09 10:21:45 2021 +0100 +++ b/ProjectController.py Wed Dec 15 11:56:34 2021 +0100 @@ -972,7 +972,7 @@ # describes CSV columns ProgramsListAttributeName = ["num", "C_path", "type"] VariablesListAttributeName = [ - "num", "vartype", "IEC_path", "C_path", "type", "derived"] + "num", "vartype", "IEC_path", "C_path", "type", "derived", "retain"] self._ProgramList = [] self._VariablesList = [] self._DbgVariablesList = [] @@ -1053,8 +1053,9 @@ # prepare debug code variable_decl_array = [] - for v in self._DbgVariablesList: - variable_decl_array += [ + retain_indexes = [] + for i, v in enumerate(self._DbgVariablesList): + variable_decl_array.append( "{&(%(C_path)s), " % v + { "EXT": "%(type)s_P_ENUM", @@ -1063,7 +1064,11 @@ "OUT": "%(type)s_O_ENUM", "VAR": "%(type)s_ENUM" }[v["vartype"]] % v + - "}"] + "}") + + if v["retain"] == "1": + retain_indexes.append("/* "+v["C_path"]+" */ "+str(i)) + debug_code = targets.GetCode("plc_debug.c") % { "programs_declarations": "\n".join(["extern %(type)s %(C_path)s;" % p for p in self._ProgramList]), @@ -1078,6 +1083,7 @@ }[v["vartype"]] % v for v in self._VariablesList if v["C_path"].find('.') < 0]), "variable_decl_array": ",\n".join(variable_decl_array), + "retain_vardsc_index_array": ",\n".join(retain_indexes), "var_access_code": targets.GetCode("var_access.c") }