218 while result is not None: |
218 while result is not None: |
219 groups = result.groups() |
219 groups = result.groups() |
220 new_address = groups[0] + new_leading + groups[2] |
220 new_address = groups[0] + new_leading + groups[2] |
221 text = text[:result.start()] + new_address + text[result.end():] |
221 text = text[:result.start()] + new_address + text[result.end():] |
222 startpos = result.start() + len(new_address) |
222 startpos = result.start() + len(new_address) |
223 result = address_model.search(self.text, startpos) |
223 result = address_model.search(text, startpos) |
224 self.setanyText(text) |
224 self.setanyText(text) |
225 setattr(cls, "updateElementAddress", updateElementAddress) |
225 setattr(cls, "updateElementAddress", updateElementAddress) |
226 |
226 |
227 def hasblock(self, block_type): |
227 def hasblock(self, block_type): |
228 text = self.getanyText().upper() |
228 text = self.getanyText().upper() |
1874 def _getvariableinfosFunction(type, input, output): |
1874 def _getvariableinfosFunction(type, input, output): |
1875 def getvariableinfos(self): |
1875 def getvariableinfos(self): |
1876 infos = _getelementinfos(self) |
1876 infos = _getelementinfos(self) |
1877 infos["type"] = type |
1877 infos["type"] = type |
1878 specific_values = infos["specific_values"] |
1878 specific_values = infos["specific_values"] |
1879 specific_values["name"] = self.getexpression().text |
1879 specific_values["name"] = self.getexpression() |
1880 _getexecutionOrder(self, specific_values) |
1880 _getexecutionOrder(self, specific_values) |
1881 if input and output: |
1881 if input and output: |
1882 infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True, "input")) |
1882 infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True, "input")) |
1883 infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut, False, "output")) |
1883 infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut, False, "output")) |
1884 elif input: |
1884 elif input: |
1918 def _getldelementinfosFunction(ld_element_type): |
1918 def _getldelementinfosFunction(ld_element_type): |
1919 def getldelementinfos(self): |
1919 def getldelementinfos(self): |
1920 infos = _getelementinfos(self) |
1920 infos = _getelementinfos(self) |
1921 infos["type"] = ld_element_type |
1921 infos["type"] = ld_element_type |
1922 specific_values = infos["specific_values"] |
1922 specific_values = infos["specific_values"] |
1923 specific_values["name"] = self.getvariable().text |
1923 specific_values["name"] = self.getvariable() |
1924 _getexecutionOrder(self, specific_values) |
1924 _getexecutionOrder(self, specific_values) |
1925 specific_values["negated"] = self.getnegated() |
1925 specific_values["negated"] = self.getnegated() |
1926 specific_values["edge"] = self.getedge() |
1926 specific_values["edge"] = self.getedge() |
1927 if ld_element_type == "coil": |
1927 if ld_element_type == "coil": |
1928 specific_values["storage"] = self.getstorage() |
1928 specific_values["storage"] = self.getstorage() |
2048 cls = _initElementClass("rightPowerRail", "ldObjects", "multiple") |
2048 cls = _initElementClass("rightPowerRail", "ldObjects", "multiple") |
2049 if cls: |
2049 if cls: |
2050 setattr(cls, "getinfos", _getpowerrailinfosFunction("rightPowerRail")) |
2050 setattr(cls, "getinfos", _getpowerrailinfosFunction("rightPowerRail")) |
2051 |
2051 |
2052 def _UpdateLDElementName(self, old_name, new_name): |
2052 def _UpdateLDElementName(self, old_name, new_name): |
2053 if self.variable.text == old_name: |
2053 if self.variable == old_name: |
2054 self.variable.text = new_name |
2054 self.variable = new_name |
2055 |
2055 |
2056 def _UpdateLDElementAddress(self, address_model, new_leading): |
2056 def _UpdateLDElementAddress(self, address_model, new_leading): |
2057 self.variable.text = update_address(self.variable.text, address_model, new_leading) |
2057 self.variable = update_address(self.variable, address_model, new_leading) |
2058 |
2058 |
2059 def _getSearchInLDElement(ld_element_type): |
2059 def _getSearchInLDElement(ld_element_type): |
2060 def SearchInLDElement(self, criteria, parent_infos=[]): |
2060 def SearchInLDElement(self, criteria, parent_infos=[]): |
2061 return _Search([("reference", self.variable.text)], criteria, parent_infos + [ld_element_type, self.getlocalId()]) |
2061 return _Search([("reference", self.variable)], criteria, parent_infos + [ld_element_type, self.getlocalId()]) |
2062 return SearchInLDElement |
2062 return SearchInLDElement |
2063 |
2063 |
2064 cls = _initElementClass("contact", "ldObjects", "single") |
2064 cls = _initElementClass("contact", "ldObjects", "single") |
2065 if cls: |
2065 if cls: |
2066 setattr(cls, "getinfos", _getldelementinfosFunction("contact")) |
2066 setattr(cls, "getinfos", _getldelementinfosFunction("contact")) |
2410 search_result.extend(action.Search(criteria, parent_infos + ["action", idx])) |
2410 search_result.extend(action.Search(criteria, parent_infos + ["action", idx])) |
2411 return search_result |
2411 return search_result |
2412 setattr(cls, "Search", Search) |
2412 setattr(cls, "Search", Search) |
2413 |
2413 |
2414 def _SearchInIOVariable(self, criteria, parent_infos=[]): |
2414 def _SearchInIOVariable(self, criteria, parent_infos=[]): |
2415 return _Search([("expression", self.expression.text)], criteria, parent_infos + ["io_variable", self.getlocalId()]) |
2415 return _Search([("expression", self.expression)], criteria, parent_infos + ["io_variable", self.getlocalId()]) |
2416 |
2416 |
2417 def _UpdateIOElementName(self, old_name, new_name): |
2417 def _UpdateIOElementName(self, old_name, new_name): |
2418 if self.expression.text == old_name: |
2418 if self.expression == old_name: |
2419 self.expression.text = new_name |
2419 self.expression = new_name |
2420 |
2420 |
2421 def _UpdateIOElementAddress(self, old_name, new_name): |
2421 def _UpdateIOElementAddress(self, old_name, new_name): |
2422 self.expression.text = update_address(self.expression.text, address_model, new_leading) |
2422 self.expression = update_address(self.expression, address_model, new_leading) |
2423 |
2423 |
2424 cls = _initElementClass("inVariable", "fbdObjects") |
2424 cls = _initElementClass("inVariable", "fbdObjects") |
2425 if cls: |
2425 if cls: |
2426 setattr(cls, "getinfos", _getvariableinfosFunction("input", False, True)) |
2426 setattr(cls, "getinfos", _getvariableinfosFunction("input", False, True)) |
2427 setattr(cls, "updateElementName", _UpdateIOElementName) |
2427 setattr(cls, "updateElementName", _UpdateIOElementName) |