1071 connector["negated"] = variable.getNegated() |
1071 connector["negated"] = variable.getNegated() |
1072 connector["edge"] = variable.getConnectorEdge() |
1072 connector["edge"] = variable.getConnectorEdge() |
1073 infos["connectors"]["outputs"].append(connector) |
1073 infos["connectors"]["outputs"].append(connector) |
1074 elif isinstance(instance, plcopen.inVariable): |
1074 elif isinstance(instance, plcopen.inVariable): |
1075 infos["name"] = instance.getExpression() |
1075 infos["name"] = instance.getExpression() |
1076 infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"]) |
1076 infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) |
1077 infos["type"] = "input" |
1077 infos["type"] = "input" |
1078 infos["connector"] = {} |
1078 infos["connector"] = {} |
1079 infos["connector"]["position"] = instance.connectionPointOut.getRelPosition() |
1079 infos["connector"]["position"] = instance.connectionPointOut.getRelPosition() |
1080 infos["connector"]["negated"] = instance.getNegated() |
1080 infos["connector"]["negated"] = instance.getNegated() |
1081 infos["connector"]["edge"] = instance.getConnectorEdge() |
1081 infos["connector"]["edge"] = instance.getConnectorEdge() |
1082 elif isinstance(instance, plcopen.outVariable): |
1082 elif isinstance(instance, plcopen.outVariable): |
1083 infos["name"] = instance.getExpression() |
1083 infos["name"] = instance.getExpression() |
1084 infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"]) |
1084 infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) |
1085 infos["type"] = "output" |
1085 infos["type"] = "output" |
1086 infos["connector"] = {} |
1086 infos["connector"] = {} |
1087 infos["connector"]["position"] = instance.connectionPointIn.getRelPosition() |
1087 infos["connector"]["position"] = instance.connectionPointIn.getRelPosition() |
1088 infos["connector"]["negated"] = instance.getNegated() |
1088 infos["connector"]["negated"] = instance.getNegated() |
1089 infos["connector"]["edge"] = instance.getConnectorEdge() |
1089 infos["connector"]["edge"] = instance.getConnectorEdge() |
1093 for link in connections: |
1093 for link in connections: |
1094 dic = {"refLocalId":link.getRefLocalId(),"points":link.getPoints(),"formalParameter":link.getFormalParameter()} |
1094 dic = {"refLocalId":link.getRefLocalId(),"points":link.getPoints(),"formalParameter":link.getFormalParameter()} |
1095 infos["connector"]["links"].append(dic) |
1095 infos["connector"]["links"].append(dic) |
1096 elif isinstance(instance, plcopen.inOutVariable): |
1096 elif isinstance(instance, plcopen.inOutVariable): |
1097 infos["name"] = instance.getExpression() |
1097 infos["name"] = instance.getExpression() |
1098 infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"]) |
1098 infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) |
1099 infos["type"] = "inout" |
1099 infos["type"] = "inout" |
1100 infos["connectors"] = {"input":{},"output":{}} |
1100 infos["connectors"] = {"input":{},"output":{}} |
1101 infos["connectors"]["output"]["position"] = instance.connectionPointOut.getRelPosition() |
1101 infos["connectors"]["output"]["position"] = instance.connectionPointOut.getRelPosition() |
1102 infos["connectors"]["output"]["negated"] = instance.getNegatedOut() |
1102 infos["connectors"]["output"]["negated"] = instance.getNegatedOut() |
1103 infos["connectors"]["output"]["edge"] = instance.getOutputEdge() |
1103 infos["connectors"]["output"]["edge"] = instance.getOutputEdge() |
1110 for link in connections: |
1110 for link in connections: |
1111 dic = {"refLocalId":link.getRefLocalId(),"points":link.getPoints(),"formalParameter":link.getFormalParameter()} |
1111 dic = {"refLocalId":link.getRefLocalId(),"points":link.getPoints(),"formalParameter":link.getFormalParameter()} |
1112 infos["connectors"]["input"]["links"].append(dic) |
1112 infos["connectors"]["input"]["links"].append(dic) |
1113 elif isinstance(instance, plcopen.continuation): |
1113 elif isinstance(instance, plcopen.continuation): |
1114 infos["name"] = instance.getName() |
1114 infos["name"] = instance.getName() |
1115 infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"]) |
1115 infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) |
1116 infos["type"] = "continuation" |
1116 infos["type"] = "continuation" |
1117 infos["connector"] = {} |
1117 infos["connector"] = {} |
1118 infos["connector"]["position"] = instance.connectionPointOut.getRelPosition() |
1118 infos["connector"]["position"] = instance.connectionPointOut.getRelPosition() |
1119 elif isinstance(instance, plcopen.connector): |
1119 elif isinstance(instance, plcopen.connector): |
1120 infos["name"] = instance.getName() |
1120 infos["name"] = instance.getName() |
1121 infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"]) |
1121 infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"]) |
1122 infos["type"] = "connection" |
1122 infos["type"] = "connection" |
1123 infos["connector"] = {} |
1123 infos["connector"] = {} |
1124 infos["connector"]["position"] = instance.connectionPointIn.getRelPosition() |
1124 infos["connector"]["position"] = instance.connectionPointIn.getRelPosition() |
1125 infos["connector"]["links"] = [] |
1125 infos["connector"]["links"] = [] |
1126 connections = instance.connectionPointIn.getConnections() |
1126 connections = instance.connectionPointIn.getConnections() |
1271 infos["connector"]["links"].append(dic) |
1271 infos["connector"]["links"].append(dic) |
1272 return infos |
1272 return infos |
1273 return False |
1273 return False |
1274 |
1274 |
1275 # Return the variable type of the given pou |
1275 # Return the variable type of the given pou |
1276 def GetPouVarValueType(self, pou, varname): |
1276 def GetCurrentPouVarValueType(self, varname): |
|
1277 current_name = self.ElementsOpened[self.CurrentElementEditing] |
|
1278 words = current_name.split("::") |
|
1279 if len(words) == 1: |
|
1280 pou = self.Project.getPou(current_name) |
|
1281 else: |
|
1282 pou = self.Project.getPou(words[1]) |
1277 for type, varlist in pou.getVars(): |
1283 for type, varlist in pou.getVars(): |
1278 for var in varlist.getVariable(): |
1284 for var in varlist.getVariable(): |
1279 if var.getName() == varname: |
1285 if var.getName() == varname: |
1280 return var.getType() |
1286 return var.getType() |
1281 return "" |
1287 return "" |