2323 infos = _getelementinfos(self) |
2323 infos = _getelementinfos(self) |
2324 infos["type"] = "step" |
2324 infos["type"] = "step" |
2325 specific_values = infos["specific_values"] |
2325 specific_values = infos["specific_values"] |
2326 specific_values["name"] = self.getname() |
2326 specific_values["name"] = self.getname() |
2327 specific_values["initial"] = self.getinitialStep() |
2327 specific_values["initial"] = self.getinitialStep() |
2328 if self.connectionPointIn: |
2328 if self.connectionPointIn is not None: |
2329 infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True)) |
2329 infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True)) |
2330 if self.connectionPointOut: |
2330 if self.connectionPointOut is not None: |
2331 infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut)) |
2331 infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut)) |
2332 if self.connectionPointOutAction: |
2332 if self.connectionPointOutAction is not None: |
2333 specific_values["action"] = _getconnectioninfos(self, self.connectionPointOutAction) |
2333 specific_values["action"] = _getconnectioninfos(self, self.connectionPointOutAction) |
2334 return infos |
2334 return infos |
2335 setattr(cls, "getinfos", getinfos) |
2335 setattr(cls, "getinfos", getinfos) |
2336 |
2336 |
2337 def Search(self, criteria, parent_infos=[]): |
2337 def Search(self, criteria, parent_infos=[]): |
2366 priority = 0 |
2366 priority = 0 |
2367 specific_values["priority"] = priority |
2367 specific_values["priority"] = priority |
2368 condition = self.getconditionContent() |
2368 condition = self.getconditionContent() |
2369 specific_values["condition_type"] = condition["type"] |
2369 specific_values["condition_type"] = condition["type"] |
2370 if specific_values["condition_type"] == "connection": |
2370 if specific_values["condition_type"] == "connection": |
2371 specific_values["connection"] = _getconnectioninfos(self, condition, True) |
2371 specific_values["connection"] = _getconnectioninfos(self, condition["value"], True) |
2372 else: |
2372 else: |
2373 specific_values["condition"] = condition |
2373 specific_values["condition"] = condition["value"] |
2374 infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True)) |
2374 infos["inputs"].append(_getconnectioninfos(self, self.connectionPointIn, True)) |
2375 infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut)) |
2375 infos["outputs"].append(_getconnectioninfos(self, self.connectionPointOut)) |
2376 return infos |
2376 return infos |
2377 setattr(cls, "getinfos", getinfos) |
2377 setattr(cls, "getinfos", getinfos) |
2378 |
2378 |
2379 def setconditionContent(self, condition_type, value): |
2379 def setconditionContent(self, condition_type, value): |
2380 if not self.condition: |
2380 if self.condition is None: |
2381 self.addcondition() |
2381 self.addcondition() |
2382 if condition_type == "connection": |
2382 if condition_type == "connection": |
2383 condition = PLCOpenParser.CreateElement("connectionPointIn", "condition") |
2383 condition = PLCOpenParser.CreateElement("connectionPointIn", "condition") |
2384 else: |
2384 else: |
2385 condition = PLCOpenParser.CreateElement(condition_type, "condition") |
2385 condition = PLCOpenParser.CreateElement(condition_type, "condition") |
2390 condition.setcontent(PLCOpenParser.CreateElement("ST", "inline")) |
2390 condition.setcontent(PLCOpenParser.CreateElement("ST", "inline")) |
2391 condition.settext(value) |
2391 condition.settext(value) |
2392 setattr(cls, "setconditionContent", setconditionContent) |
2392 setattr(cls, "setconditionContent", setconditionContent) |
2393 |
2393 |
2394 def getconditionContent(self): |
2394 def getconditionContent(self): |
2395 if self.condition: |
2395 if self.condition is not None: |
2396 content = self.condition.getcontent() |
2396 content = self.condition.getcontent() |
2397 values = {"type" : content.getLocalTag()} |
2397 values = {"type" : content.getLocalTag()} |
2398 if values["type"] == "reference": |
2398 if values["type"] == "reference": |
2399 values["value"] = content.getname() |
2399 values["value"] = content.getname() |
2400 elif values["type"] == "inline": |
2400 elif values["type"] == "inline": |
2528 NodeSetAttr(node, "y", "0") |
2528 NodeSetAttr(node, "y", "0") |
2529 tree.childNodes.insert(0, node) |
2529 tree.childNodes.insert(0, node) |
2530 setattr(cls, "compatibility", compatibility) |
2530 setattr(cls, "compatibility", compatibility) |
2531 |
2531 |
2532 def setreferenceName(self, name): |
2532 def setreferenceName(self, name): |
2533 if self.reference: |
2533 if self.reference is not None: |
2534 self.reference.setname(name) |
2534 self.reference.setname(name) |
2535 setattr(cls, "setreferenceName", setreferenceName) |
2535 setattr(cls, "setreferenceName", setreferenceName) |
2536 |
2536 |
2537 def getreferenceName(self): |
2537 def getreferenceName(self): |
2538 if self.reference: |
2538 if self.reference is not None: |
2539 return self.reference.getname() |
2539 return self.reference.getname() |
2540 return None |
2540 return None |
2541 setattr(cls, "getreferenceName", getreferenceName) |
2541 setattr(cls, "getreferenceName", getreferenceName) |
2542 |
2542 |
2543 def setinlineContent(self, content): |
2543 def setinlineContent(self, content): |
2544 if self.inline: |
2544 if self.inline is not None: |
2545 self.inline.setcontent(PLCOpenParser.CreateElement("ST", "action")) |
2545 self.inline.setcontent(PLCOpenParser.CreateElement("ST", "inline")) |
2546 self.inline.setanyText(content) |
2546 self.inline.settext(content) |
2547 setattr(cls, "setinlineContent", setinlineContent) |
2547 setattr(cls, "setinlineContent", setinlineContent) |
2548 |
2548 |
2549 def getinlineContent(self): |
2549 def getinlineContent(self): |
2550 if self.inline: |
2550 if self.inline is not None: |
2551 return self.inline.getanyText() |
2551 return self.inline.gettext() |
2552 return None |
2552 return None |
2553 setattr(cls, "getinlineContent", getinlineContent) |
2553 setattr(cls, "getinlineContent", getinlineContent) |
2554 |
2554 |
2555 def updateElementName(self, old_name, new_name): |
2555 def updateElementName(self, old_name, new_name): |
2556 if self.reference and self.reference.getname() == old_name: |
2556 if self.reference is not None and self.reference.getname() == old_name: |
2557 self.reference.setname(new_name) |
2557 self.reference.setname(new_name) |
2558 if self.inline: |
2558 if self.inline is not None: |
2559 self.inline.updateElementName(old_name, new_name) |
2559 self.inline.updateElementName(old_name, new_name) |
2560 setattr(cls, "updateElementName", updateElementName) |
2560 setattr(cls, "updateElementName", updateElementName) |
2561 |
2561 |
2562 def updateElementAddress(self, address_model, new_leading): |
2562 def updateElementAddress(self, address_model, new_leading): |
2563 if self.reference: |
2563 if self.reference is not None: |
2564 self.reference.setname(update_address(self.reference.getname(), address_model, new_leading)) |
2564 self.reference.setname(update_address(self.reference.getname(), address_model, new_leading)) |
2565 if self.inline: |
2565 if self.inline is not None: |
2566 self.inline.updateElementAddress(address_model, new_leading) |
2566 self.inline.updateElementAddress(address_model, new_leading) |
2567 setattr(cls, "updateElementAddress", updateElementAddress) |
2567 setattr(cls, "updateElementAddress", updateElementAddress) |
2568 |
2568 |
2569 def Search(self, criteria, parent_infos=[]): |
2569 def Search(self, criteria, parent_infos=[]): |
2570 qualifier = self.getqualifier() |
2570 qualifier = self.getqualifier() |
2595 setattr(cls, "getinfos", getinfos) |
2595 setattr(cls, "getinfos", getinfos) |
2596 |
2596 |
2597 def setactions(self, actions): |
2597 def setactions(self, actions): |
2598 self.action = [] |
2598 self.action = [] |
2599 for params in actions: |
2599 for params in actions: |
2600 action = PLCOpenParser.GetElementClass("action", "actionBlock")() |
2600 action = PLCOpenParser.CreateElement("action", "actionBlock") |
|
2601 self.appendaction(action) |
2601 action.setqualifier(params["qualifier"]) |
2602 action.setqualifier(params["qualifier"]) |
2602 if params["type"] == "reference": |
2603 if params["type"] == "reference": |
2603 action.addreference() |
2604 action.addreference() |
2604 action.setreferenceName(params["value"]) |
2605 action.setreferenceName(params["value"]) |
2605 else: |
2606 else: |
2607 action.setinlineContent(params["value"]) |
2608 action.setinlineContent(params["value"]) |
2608 if params.has_key("duration"): |
2609 if params.has_key("duration"): |
2609 action.setduration(params["duration"]) |
2610 action.setduration(params["duration"]) |
2610 if params.has_key("indicator"): |
2611 if params.has_key("indicator"): |
2611 action.setindicator(params["indicator"]) |
2612 action.setindicator(params["indicator"]) |
2612 self.action.append(action) |
|
2613 setattr(cls, "setactions", setactions) |
2613 setattr(cls, "setactions", setactions) |
2614 |
2614 |
2615 def getactions(self): |
2615 def getactions(self): |
2616 actions = [] |
2616 actions = [] |
2617 for action in self.action: |
2617 for action in self.action: |
2618 params = {} |
2618 params = {} |
2619 params["qualifier"] = action.getqualifier() |
2619 params["qualifier"] = action.getqualifier() |
2620 if params["qualifier"] is None: |
2620 if params["qualifier"] is None: |
2621 params["qualifier"] = "N" |
2621 params["qualifier"] = "N" |
2622 if action.getreference(): |
2622 if action.getreference() is not None: |
2623 params["type"] = "reference" |
2623 params["type"] = "reference" |
2624 params["value"] = action.getreferenceName() |
2624 params["value"] = action.getreferenceName() |
2625 elif action.getinline(): |
2625 elif action.getinline() is not None: |
2626 params["type"] = "inline" |
2626 params["type"] = "inline" |
2627 params["value"] = action.getinlineContent() |
2627 params["value"] = action.getinlineContent() |
2628 duration = action.getduration() |
2628 duration = action.getduration() |
2629 if duration: |
2629 if duration: |
2630 params["duration"] = duration |
2630 params["duration"] = duration |
2631 indicator = action.getindicator() |
2631 indicator = action.getindicator() |
2632 if indicator: |
2632 if indicator is not None: |
2633 params["indicator"] = indicator |
2633 params["indicator"] = indicator |
2634 actions.append(params) |
2634 actions.append(params) |
2635 return actions |
2635 return actions |
2636 setattr(cls, "getactions", getactions) |
2636 setattr(cls, "getactions", getactions) |
2637 |
2637 |