diff -r 1b1a3ee785da -r 15669fe26e56 PLCControler.py --- 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()