--- a/PLCControler.py Fri Dec 19 15:08:54 2008 +0100
+++ b/PLCControler.py Fri Jan 09 17:09:59 2009 +0100
@@ -957,43 +957,33 @@
vars.append(tempvar)
return vars
- # Return the interface of the pou given by its name
- def GetPouInterfaceVarsByName(self, name, debug = False):
- project = self.GetProject(debug)
- if project is not None:
- # Found the pou correponding to name and return the interface vars
- pou = project.getpou(name)
- if pou is not None:
- return self.GetPouInterfaceVars(pou, debug)
- return None
-
# Recursively generate element name tree for a structured variable
def GenerateVarTree(self, typename, debug = False):
project = self.GetProject(debug)
if project is not None:
blocktype = self.GetBlockType(typename, debug = debug)
if blocktype is not None:
- tree = {}
+ tree = []
for var_name, var_type, var_modifier in blocktype["inputs"] + blocktype["outputs"]:
- tree[var_name] = self.GenerateVarTree(var_type, debug)
+ tree.append((var_name, var_type, self.GenerateVarTree(var_type, debug)))
return tree
datatype = project.getdataType(typename)
if datatype is not None:
- tree = {}
+ tree = []
basetype_content = datatype.baseType.getcontent()
if basetype_content["name"] == "derived":
tree = self.GenerateVarTree(basetype_content["value"].getname())
elif basetype_content["name"] == "array":
base_type = basetype_content["value"].baseType.getcontent()
if base_type["name"] == "derived":
- tree = self.GenerateVarTree(base_type["value"].getname())
+ tree = [self.GenerateVarTree(base_type["value"].getname())]
elif basetype_content["name"] == "struct":
for element in basetype_content["value"].getvariable():
element_type = element.type.getcontent()
if element_type["name"] == "derived":
- tree[element.getname()] = self.GenerateVarTree(element_type["value"].getname())
+ tree.append((element.getname(), element_type["value"].getname(), self.GenerateVarTree(element_type["value"].getname())))
else:
- tree[element.getname()] = {}
+ tree.append((element.getname(), element_type["name"], []))
return tree
return {}
@@ -1005,7 +995,7 @@
# Extract variables from every varLists
for type, varlist in pou.getvars():
for var in varlist.getvariable():
- tempvar = {"Name" : var.getname(), "Class" : type, "Tree" : {}}
+ tempvar = {"Name" : var.getname(), "Class" : type, "Tree" : []}
vartype_content = var.gettype().getcontent()
if vartype_content["name"] == "derived":
tempvar["Type"] = vartype_content["value"].getname()