PLCControler.py
changeset 297 e837b67cb184
parent 295 c6ef6d92ce16
child 299 15669fe26e56
--- 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()