351 raise ValueError, _("\"%s\" resource doesn't exist in \"%s\" configuration !!!")%(name, config_name) |
351 raise ValueError, _("\"%s\" resource doesn't exist in \"%s\" configuration !!!")%(name, config_name) |
352 setattr(cls, "removeconfigurationResource", removeconfigurationResource) |
352 setattr(cls, "removeconfigurationResource", removeconfigurationResource) |
353 |
353 |
354 def updateElementName(self, old_name, new_name): |
354 def updateElementName(self, old_name, new_name): |
355 for datatype in self.types.getdataTypeElements(): |
355 for datatype in self.types.getdataTypeElements(): |
356 datatype_content = datatype.baseType.getcontent() |
356 datatype.updateElementName(old_name, new_name) |
357 if datatype_content["name"] == "derived" and datatype_content["value"].getname() == old_name: |
|
358 datatype_content["value"].setname(new_name) |
|
359 elif datatype_content["name"] in ["array", "subrangeSigned", "subrangeUnsigned"]: |
|
360 basetype_content = datatype_content["value"].baseType.getcontent() |
|
361 if basetype_content["name"] == "derived" and basetype_content["value"].getname() == old_name: |
|
362 basetype_content["value"].setname(new_name) |
|
363 elif datatype_content["name"] == "struct": |
|
364 for element in datatype_content["value"].getvariable(): |
|
365 element_type = element.type.getcontent() |
|
366 if element_type["name"] == "derived" and element_type["value"].getname() == old_name: |
|
367 element_type["value"].setname(new_name) |
|
368 for pou in self.types.getpouElements(): |
357 for pou in self.types.getpouElements(): |
369 pou.updateElementName(old_name, new_name) |
358 pou.updateElementName(old_name, new_name) |
370 for configuration in self.instances.configurations.getconfiguration(): |
359 for configuration in self.instances.configurations.getconfiguration(): |
371 configuration.updateElementName(old_name, new_name) |
360 configuration.updateElementName(old_name, new_name) |
372 setattr(cls, "updateElementName", updateElementName) |
361 setattr(cls, "updateElementName", updateElementName) |
1095 setattr(cls, "removepouElement", removepouElement) |
1082 setattr(cls, "removepouElement", removepouElement) |
1096 |
1083 |
1097 def Search(self, criteria, parent_infos=[]): |
1084 def Search(self, criteria, parent_infos=[]): |
1098 search_result = [] |
1085 search_result = [] |
1099 filter = criteria["filter"] |
1086 filter = criteria["filter"] |
1100 #if filter == "all" or "datatype" in filter: |
1087 for datatype in self.dataTypes.getdataType(): |
1101 # for datatype in self.dataTypes.getdataType(): |
1088 search_result.extend(datatype.Search(criteria, parent_infos)) |
1102 # search_result.extend(datatype.Search(criteria, parent_infos)) |
|
1103 for pou in self.pous.getpou(): |
1089 for pou in self.pous.getpou(): |
1104 search_result.extend(pou.Search(criteria, parent_infos)) |
1090 search_result.extend(pou.Search(criteria, parent_infos)) |
|
1091 return search_result |
|
1092 setattr(cls, "Search", Search) |
|
1093 |
|
1094 def _updateBaseTypeElementName(self, old_name, new_name): |
|
1095 self.baseType.updateElementName(old_name, new_name) |
|
1096 |
|
1097 cls = PLCOpenClasses.get("dataTypes_dataType", None) |
|
1098 if cls: |
|
1099 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
|
1100 |
|
1101 def Search(self, criteria, parent_infos=[]): |
|
1102 search_result = [] |
|
1103 filter = criteria["filter"] |
|
1104 if filter == "all" or "datatype" in filter: |
|
1105 parent_infos = parent_infos + ["D::%s" % self.getname()] |
|
1106 search_result.extend(_Search([("name", self.getname())], criteria, parent_infos)) |
|
1107 search_result.extend(self.baseType.Search(criteria, parent_infos)) |
|
1108 if self.initialValue is not None: |
|
1109 search_result.extend(_Search([("initial", self.initialValue.getvalue())], criteria, parent_infos)) |
|
1110 return search_result |
|
1111 setattr(cls, "Search", Search) |
|
1112 |
|
1113 cls = PLCOpenClasses.get("dataType", None) |
|
1114 if cls: |
|
1115 |
|
1116 def updateElementName(self, old_name, new_name): |
|
1117 if self.content["name"] in ["derived", "array", "subrangeSigned", "subrangeUnsigned"]: |
|
1118 self.content["value"].updateElementName(old_name, new_name) |
|
1119 elif self.content["name"] == "struct": |
|
1120 for element in datatype_content["value"].getvariable(): |
|
1121 element_type = element.type.updateElementName(old_name, new_name) |
|
1122 setattr(cls, "updateElementName", updateElementName) |
|
1123 |
|
1124 def Search(self, criteria, parent_infos=[]): |
|
1125 search_result = [] |
|
1126 if self.content["name"] in ["derived", "array", "enum", "subrangeSigned", "subrangeUnsigned"]: |
|
1127 search_result.extend(self.content["value"].Search(criteria, parent_infos)) |
|
1128 elif self.content["name"] == "struct": |
|
1129 for i, element in enumerate(self.content["value"].getvariable()): |
|
1130 search_result.extend(element.Search(criteria, parent_infos + ["struct", i])) |
|
1131 else: |
|
1132 basetype = self.content["name"] |
|
1133 if basetype in ["string", "wstring"]: |
|
1134 basetype = basetype.upper() |
|
1135 search_result.extend(_Search([("base", basetype)], criteria, parent_infos)) |
|
1136 return search_result |
|
1137 setattr(cls, "Search", Search) |
|
1138 |
|
1139 cls = PLCOpenClasses.get("derivedTypes_array", None) |
|
1140 if cls: |
|
1141 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
|
1142 |
|
1143 def Search(self, criteria, parent_infos=[]): |
|
1144 search_result = self.baseType.Search(criteria, parent_infos) |
|
1145 for i, dimension in enumerate(self.getdimension()): |
|
1146 search_result.extend(_Search([("lower", dimension.getlower()), |
|
1147 ("upper", dimension.getupper())], |
|
1148 criteria, parent_infos + ["range", i])) |
|
1149 return search_result |
|
1150 setattr(cls, "Search", Search) |
|
1151 |
|
1152 def _SearchInSubrange(self, criteria, parent_infos=[]): |
|
1153 search_result = self.baseType.Search(criteria, parent_infos) |
|
1154 search_result.extend(_Search([("lower", self.range.getlower()), |
|
1155 ("upper", self.range.getupper())], |
|
1156 criteria, parent_infos)) |
|
1157 return search_result |
|
1158 |
|
1159 cls = PLCOpenClasses.get("derivedTypes_subrangeSigned", None) |
|
1160 if cls: |
|
1161 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
|
1162 setattr(cls, "Search", _SearchInSubrange) |
|
1163 |
|
1164 cls = PLCOpenClasses.get("derivedTypes_subrangeUnsigned", None) |
|
1165 if cls: |
|
1166 setattr(cls, "updateElementName", _updateBaseTypeElementName) |
|
1167 setattr(cls, "Search", _SearchInSubrange) |
|
1168 |
|
1169 cls = PLCOpenClasses.get("derivedTypes_enum", None) |
|
1170 if cls: |
|
1171 |
|
1172 def updateElementName(self, old_name, new_name): |
|
1173 pass |
|
1174 setattr(cls, "updateElementName", updateElementName) |
|
1175 |
|
1176 def Search(self, criteria, parent_infos=[]): |
|
1177 search_result = [] |
|
1178 for i, value in enumerate(self.values.getvalue()): |
|
1179 for result in TestTextElement(value.getname(), criteria): |
|
1180 search_result.append((tuple(parent_infos + ["value", i]),) + result) |
1105 return search_result |
1181 return search_result |
1106 setattr(cls, "Search", Search) |
1182 setattr(cls, "Search", Search) |
1107 |
1183 |
1108 cls = PLCOpenClasses.get("pous_pou", None) |
1184 cls = PLCOpenClasses.get("pous_pou", None) |
1109 if cls: |
1185 if cls: |