objdictgen/eds_utils.py
changeset 513 f0343a7457b8
parent 509 88c2ea321049
child 542 4328444b039b
equal deleted inserted replaced
512:e84806c0ada4 513:f0343a7457b8
   389                     attributes = "Attributes %s are"%", ".join(["\"%s\""%attribute for attribute in unsupported])
   389                     attributes = "Attributes %s are"%", ".join(["\"%s\""%attribute for attribute in unsupported])
   390                 else:
   390                 else:
   391                     attributes = "Attribute \"%s\" is"%unsupported[0]
   391                     attributes = "Attribute \"%s\" is"%unsupported[0]
   392                 raise SyntaxError, "Error on section \"[%s]\":\n%s unsupported for a%s entry"%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"])
   392                 raise SyntaxError, "Error on section \"[%s]\":\n%s unsupported for a%s entry"%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"])
   393             
   393             
   394             VerifyValue(values, "ParameterValue")
   394             VerifyValue(values, section_name, "ParameterValue")
   395             VerifyValue(values, "DefaultValue")
   395             VerifyValue(values, section_name, "DefaultValue")
   396             
   396             
   397     return eds_dict
   397     return eds_dict
   398 
   398 
   399 def VerifyValue(values, param):
   399 def VerifyValue(values, section_name, param):
   400     if param.upper() in values:
   400     if param.upper() in values:
   401         try:
   401         try:
   402             if values["DATATYPE"] in (0x09, 0x0A, 0x0B, 0x0F):
   402             if values["DATATYPE"] in (0x09, 0x0A, 0x0B, 0x0F):
   403                 values[param.upper()] = str(values[param.upper()])
   403                 values[param.upper()] = str(values[param.upper()])
   404             elif values["DATATYPE"] in (0x08, 0x11):
   404             elif values["DATATYPE"] in (0x08, 0x11):
   405                 values[param.upper()] = float(values[param.upper()])
   405                 values[param.upper()] = float(values[param.upper()])
   406             elif values["DATATYPE"] == 0x01:
   406             elif values["DATATYPE"] == 0x01:
   407                 values[param.upper()] = {0 : False, 1 : True}[values[param.upper()]]
   407                 values[param.upper()] = {0 : False, 1 : True}[values[param.upper()]]
   408             else:
   408             else:
   409                 if type(values[param.upper()]) != IntType and values[param.upper()].find("$NODEID") == -1:
   409                 if not isinstance(values[param.upper()], (IntType, LongType)) and values[param.upper()].upper().find("$NODEID") == -1:
   410                     raise
   410                     raise
   411         except:
   411         except:
   412             raise SyntaxError, "Error on section \"[%s]\":\n%s incompatible with DataType"%(section_name, param)
   412             raise SyntaxError, "Error on section \"[%s]\":\n%s incompatible with DataType"%(section_name, param)
   413 
   413 
   414 
   414