2060 element_type = PLCOpenParser.CreateElement("type", "variable") |
2060 element_type = PLCOpenParser.CreateElement("type", "variable") |
2061 if isinstance(element_infos["Type"], TupleType): |
2061 if isinstance(element_infos["Type"], TupleType): |
2062 if element_infos["Type"][0] == "array": |
2062 if element_infos["Type"][0] == "array": |
2063 array_type, base_type_name, dimensions = element_infos["Type"] |
2063 array_type, base_type_name, dimensions = element_infos["Type"] |
2064 array = PLCOpenParser.CreateElement("array", "dataType") |
2064 array = PLCOpenParser.CreateElement("array", "dataType") |
|
2065 baseType = PLCOpenParser.CreateElement("baseType", "array") |
|
2066 array.setbaseType(baseType) |
2065 element_type.setcontent(array) |
2067 element_type.setcontent(array) |
2066 for j, dimension in enumerate(dimensions): |
2068 for j, dimension in enumerate(dimensions): |
2067 dimension_range = PLCOpenParser.CreateElement("dimension", "array") |
2069 dimension_range = PLCOpenParser.CreateElement("dimension", "array") |
2068 dimension_range.setlower(dimension[0]) |
2070 dimension_range.setlower(dimension[0]) |
2069 dimension_range.setupper(dimension[1]) |
2071 dimension_range.setupper(dimension[1]) |
2070 if j == 0: |
2072 if j == 0: |
2071 array.setdimension([dimension_range]) |
2073 array.setdimension([dimension_range]) |
2072 else: |
2074 else: |
2073 array.appenddimension(dimension_range) |
2075 array.appenddimension(dimension_range) |
2074 if base_type_name in self.GetBaseTypes(): |
2076 if base_type_name in self.GetBaseTypes(): |
2075 array.baseType.setcontent(PLCOpenParser.CreateElement( |
2077 baseType.setcontent(PLCOpenParser.CreateElement( |
2076 base_type_name.lower() |
2078 base_type_name.lower() |
2077 if base_type_name in ["STRING", "WSTRING"] |
2079 if base_type_name in ["STRING", "WSTRING"] |
2078 else base_type_name, "dataType")) |
2080 else base_type_name, "dataType")) |
2079 else: |
2081 else: |
2080 derived_datatype = PLCOpenParser.CreateElement("derived", "dataType") |
2082 derived_datatype = PLCOpenParser.CreateElement("derived", "dataType") |