PLCControler.py
changeset 207 b1144bb36605
parent 197 8023d02d78ed
child 208 c70aefcadf66
equal deleted inserted replaced
206:f7c85a5939dc 207:b1144bb36605
  1225                     infos["values"].append(value.getname())
  1225                     infos["values"].append(value.getname())
  1226             elif basetype_content["name"] == "array":
  1226             elif basetype_content["name"] == "array":
  1227                 infos["type"] = "Array"
  1227                 infos["type"] = "Array"
  1228                 infos["dimensions"] = []
  1228                 infos["dimensions"] = []
  1229                 for dimension in basetype_content["value"].getdimension():
  1229                 for dimension in basetype_content["value"].getdimension():
  1230                     infos["dimensions"].append(str(dimension.getupper()))
  1230                     infos["dimensions"].append((dimension.getlower(), dimension.getupper()))
  1231                 base_type = basetype_content["value"].baseType.getcontent()
  1231                 base_type = basetype_content["value"].baseType.getcontent()
  1232                 if base_type["value"] is None:
  1232                 if base_type["value"] is None:
  1233                     infos["base_type"] = base_type["name"]
  1233                     infos["base_type"] = base_type["name"]
  1234                 else:
  1234                 else:
  1235                     infos["base_type"] = base_type["value"].getname()
  1235                     infos["base_type"] = base_type["value"].getname()
  1282                     else:
  1282                     else:
  1283                         enumerated.values.appendvalue(value)
  1283                         enumerated.values.appendvalue(value)
  1284                 datatype.baseType.setcontent({"name" : "enum", "value" : enumerated})
  1284                 datatype.baseType.setcontent({"name" : "enum", "value" : enumerated})
  1285             elif infos["type"] == "Array":
  1285             elif infos["type"] == "Array":
  1286                 array = plcopen.derivedTypes_array()
  1286                 array = plcopen.derivedTypes_array()
  1287                 for dimension in infos["dimensions"]:
  1287                 for i, dimension in enumerate(infos["dimensions"]):
  1288                     dimension_range = plcopen.rangeSigned()
  1288                     dimension_range = plcopen.rangeSigned()
  1289                     dimension_range.setlower(1)
  1289                     dimension_range.setlower(dimension[0])
  1290                     dimension_range.setupper(int(dimension))
  1290                     dimension_range.setupper(dimension[1])
  1291                     array.appenddimension(dimension_range)
  1291                     if i == 0:
       
  1292                         array.setdimension([dimension_range])
       
  1293                     else:
       
  1294                         array.appenddimension(dimension_range)
  1292                 if infos["base_type"] in self.GetBaseTypes():
  1295                 if infos["base_type"] in self.GetBaseTypes():
  1293                     if infos["base_type"] == "STRING":
  1296                     if infos["base_type"] == "STRING":
  1294                         array.baseType.setcontent({"name" : "string", "value" : plcopen.elementaryTypes_string()})
  1297                         array.baseType.setcontent({"name" : "string", "value" : plcopen.elementaryTypes_string()})
  1295                     elif infos["base_type"] == "WSTRING":
  1298                     elif infos["base_type"] == "WSTRING":
  1296                         array.baseType.setcontent({"name" : "wstring", "value" : plcopen.wstring()})
  1299                         array.baseType.setcontent({"name" : "wstring", "value" : plcopen.wstring()})