objdictgen/gen_cfile.py
changeset 527 7d5c74cc8f91
parent 526 1607d4afce20
child 547 79a24eb3ba28
equal deleted inserted replaced
526:1607d4afce20 527:7d5c74cc8f91
    65                     size = max(size, len(item))
    65                     size = max(size, len(item))
    66                 if values[1] != "":
    66                 if values[1] != "":
    67                     size = max(size, int(values[1]))
    67                     size = max(size, int(values[1]))
    68                 typeinfos = ("UNS8", size, "visible_string", False)
    68                 typeinfos = ("UNS8", size, "visible_string", False)
    69             elif values[0] == "DOMAIN":
    69             elif values[0] == "DOMAIN":
    70                 size = default_string_size
    70                 size = 0
    71                 for item in items:
    71                 for item in items:
    72                     size = max(size, len(item))
    72                     size = max(size, len(item))
    73                 typeinfos = ("UNS8", size, "domain", False)
    73                 typeinfos = ("UNS8", size, "domain", False)
    74             elif values[0] == "BOOLEAN":
    74             elif values[0] == "BOOLEAN":
    75                 typeinfos = ("UNS8", None, "boolean", False)
    75                 typeinfos = ("UNS8", None, "boolean", False)
   186         # Entry type is VAR
   186         # Entry type is VAR
   187         if not isinstance(values, ListType):
   187         if not isinstance(values, ListType):
   188             subentry_infos = Node.GetSubentryInfos(index, 0)
   188             subentry_infos = Node.GetSubentryInfos(index, 0)
   189             typename = Node.GetTypeName(subentry_infos["type"])
   189             typename = Node.GetTypeName(subentry_infos["type"])
   190             typeinfos = GetValidTypeInfos(typename, [values])
   190             typeinfos = GetValidTypeInfos(typename, [values])
       
   191             if typename is "DOMAIN" and index in variablelist:
       
   192                 if not typeinfos[1]:
       
   193                     raise ValueError("\nDomain variable not initialized\nindex : 0x%04X\nsubindex 0x00"%index)
   191             texts["subIndexType"] = typeinfos[0]
   194             texts["subIndexType"] = typeinfos[0]
   192             if typeinfos[1] is not None:
   195             if typeinfos[1] is not None:
   193                 texts["suffixe"] = "[%d]"%typeinfos[1]
   196                 texts["suffixe"] = "[%d]"%typeinfos[1]
   194             else:
   197             else:
   195                 texts["suffixe"] = ""
   198                 texts["suffixe"] = ""
   233                         sep = ","
   236                         sep = ","
   234                         if subIndex > 0:
   237                         if subIndex > 0:
   235                             if subIndex == len(values)-1:
   238                             if subIndex == len(values)-1:
   236                                 sep = ""
   239                                 sep = ""
   237                             value, comment = ComputeValue(typeinfos[2], value)
   240                             value, comment = ComputeValue(typeinfos[2], value)
       
   241                             if len(value) is 2 and typename is "DOMAIN":
       
   242                                 raise ValueError("\nDomain variable not initialized\nindex : 0x%04X\nsubindex 0x%02X"%(index, subIndex))
   238                             mappedVariableContent += "    %s%s%s\n"%(value, sep, comment)
   243                             mappedVariableContent += "    %s%s%s\n"%(value, sep, comment)
   239                     mappedVariableContent += "  };\n"
   244                     mappedVariableContent += "  };\n"
   240                 else:
   245                 else:
   241                     strIndex += "                    %(subIndexType)s%(type_suffixe)s %(NodeName)s_obj%(index)04X[] = \n                    {\n"%texts
   246                     strIndex += "                    %(subIndexType)s%(type_suffixe)s %(NodeName)s_obj%(index)04X[] = \n                    {\n"%texts
   242                     for subIndex, value in enumerate(values):
   247                     for subIndex, value in enumerate(values):