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 |