--- a/PLCControler.py Wed Jul 18 16:22:39 2007 +0200
+++ b/PLCControler.py Thu Jul 19 11:53:14 2007 +0200
@@ -1073,7 +1073,7 @@
infos["connectors"]["outputs"].append(connector)
elif isinstance(instance, plcopen.inVariable):
infos["name"] = instance.getExpression()
- infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"])
+ infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"])
infos["type"] = "input"
infos["connector"] = {}
infos["connector"]["position"] = instance.connectionPointOut.getRelPosition()
@@ -1081,7 +1081,7 @@
infos["connector"]["edge"] = instance.getConnectorEdge()
elif isinstance(instance, plcopen.outVariable):
infos["name"] = instance.getExpression()
- infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"])
+ infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"])
infos["type"] = "output"
infos["connector"] = {}
infos["connector"]["position"] = instance.connectionPointIn.getRelPosition()
@@ -1095,7 +1095,7 @@
infos["connector"]["links"].append(dic)
elif isinstance(instance, plcopen.inOutVariable):
infos["name"] = instance.getExpression()
- infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"])
+ infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"])
infos["type"] = "inout"
infos["connectors"] = {"input":{},"output":{}}
infos["connectors"]["output"]["position"] = instance.connectionPointOut.getRelPosition()
@@ -1112,13 +1112,13 @@
infos["connectors"]["input"]["links"].append(dic)
elif isinstance(instance, plcopen.continuation):
infos["name"] = instance.getName()
- infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"])
+ infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"])
infos["type"] = "continuation"
infos["connector"] = {}
infos["connector"]["position"] = instance.connectionPointOut.getRelPosition()
elif isinstance(instance, plcopen.connector):
infos["name"] = instance.getName()
- infos["value_type"] = self.GetPouVarValueType(self.GetCurrentElementEditing(), infos["name"])
+ infos["value_type"] = self.GetCurrentPouVarValueType(infos["name"])
infos["type"] = "connection"
infos["connector"] = {}
infos["connector"]["position"] = instance.connectionPointIn.getRelPosition()
@@ -1273,7 +1273,13 @@
return False
# Return the variable type of the given pou
- def GetPouVarValueType(self, pou, varname):
+ def GetCurrentPouVarValueType(self, varname):
+ current_name = self.ElementsOpened[self.CurrentElementEditing]
+ words = current_name.split("::")
+ if len(words) == 1:
+ pou = self.Project.getPou(current_name)
+ else:
+ pou = self.Project.getPou(words[1])
for type, varlist in pou.getVars():
for var in varlist.getVariable():
if var.getName() == varname: