981 "VAR": "%(type)s_ENUM" |
981 "VAR": "%(type)s_ENUM" |
982 }[v["vartype"]] % v + |
982 }[v["vartype"]] % v + |
983 "}"] |
983 "}"] |
984 bofs += sz |
984 bofs += sz |
985 debug_code = targets.GetCode("plc_debug.c") % { |
985 debug_code = targets.GetCode("plc_debug.c") % { |
986 "buffer_size": bofs, |
986 "buffer_size": bofs, |
987 "programs_declarations": |
987 "programs_declarations": "\n".join(["extern %(type)s %(C_path)s;" % |
988 "\n".join(["extern %(type)s %(C_path)s;" % p for p in self._ProgramList]), |
988 p for p in self._ProgramList]), |
989 "extern_variables_declarations": "\n".join([ |
989 "extern_variables_declarations": "\n".join([ |
990 { |
990 { |
991 "EXT": "extern __IEC_%(type)s_p %(C_path)s;", |
991 "EXT": "extern __IEC_%(type)s_p %(C_path)s;", |
992 "IN": "extern __IEC_%(type)s_p %(C_path)s;", |
992 "IN": "extern __IEC_%(type)s_p %(C_path)s;", |
993 "MEM": "extern __IEC_%(type)s_p %(C_path)s;", |
993 "MEM": "extern __IEC_%(type)s_p %(C_path)s;", |
994 "OUT": "extern __IEC_%(type)s_p %(C_path)s;", |
994 "OUT": "extern __IEC_%(type)s_p %(C_path)s;", |
995 "VAR": "extern __IEC_%(type)s_t %(C_path)s;", |
995 "VAR": "extern __IEC_%(type)s_t %(C_path)s;", |
996 "FB": "extern %(type)s %(C_path)s;" |
996 "FB": "extern %(type)s %(C_path)s;" |
997 }[v["vartype"]] % v |
997 }[v["vartype"]] % v |
998 for v in self._VariablesList if v["C_path"].find('.') < 0]), |
998 for v in self._VariablesList if v["C_path"].find('.') < 0]), |
999 "variable_decl_array": ",\n".join(variable_decl_array) |
999 "variable_decl_array": ",\n".join(variable_decl_array) |
1000 } |
1000 } |
1001 |
1001 |
1002 return debug_code |
1002 return debug_code |
1003 |
1003 |
1004 def Generate_plc_main(self): |
1004 def Generate_plc_main(self): |
1005 """ |
1005 """ |