--- a/PLCControler.py Fri Jan 09 17:11:09 2009 +0100
+++ b/PLCControler.py Mon Jan 12 09:41:47 2009 +0100
@@ -966,26 +966,32 @@
tree = []
for var_name, var_type, var_modifier in blocktype["inputs"] + blocktype["outputs"]:
tree.append((var_name, var_type, self.GenerateVarTree(var_type, debug)))
- return tree
+ return tree, []
datatype = project.getdataType(typename)
if datatype is not None:
tree = []
basetype_content = datatype.baseType.getcontent()
if basetype_content["name"] == "derived":
- tree = self.GenerateVarTree(basetype_content["value"].getname())
+ return self.GenerateVarTree(basetype_content["value"].getname())
elif basetype_content["name"] == "array":
+ dimensions = []
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())
+ if len(tree[1]) == 0:
+ tree = tree[0]
+ for dimension in basetype_content["value"].getdimension():
+ dimensions.append((dimension.getlower(), dimension.getupper()))
+ return tree, dimensions
elif basetype_content["name"] == "struct":
for element in basetype_content["value"].getvariable():
element_type = element.type.getcontent()
if element_type["name"] == "derived":
tree.append((element.getname(), element_type["value"].getname(), self.GenerateVarTree(element_type["value"].getname())))
else:
- tree.append((element.getname(), element_type["name"], []))
- return tree
- return {}
+ tree.append((element.getname(), element_type["name"], ([], [])))
+ return tree, []
+ return [], []
# Return the interface for the given pou
def GetPouInterfaceVars(self, pou, debug = False):
@@ -995,7 +1001,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()