PLCControler.py
changeset 863 b1ead41fbd3b
parent 853 0f97bddb5a30
child 864 bf4f7f0801b9
equal deleted inserted replaced
860:8a51046010d7 863:b1ead41fbd3b
  1459     def GetConfNodeBlockTypes(self):
  1459     def GetConfNodeBlockTypes(self):
  1460         return [{"name": _("%s POUs") % confnodetypes["name"],
  1460         return [{"name": _("%s POUs") % confnodetypes["name"],
  1461                  "list": confnodetypes["types"].GetCustomBlockTypes()}
  1461                  "list": confnodetypes["types"].GetCustomBlockTypes()}
  1462                 for confnodetypes in self.ConfNodeTypes]
  1462                 for confnodetypes in self.ConfNodeTypes]
  1463         
  1463         
  1464     def GetConfNodeDataTypes(self, exclude = ""):
  1464     def GetConfNodeDataTypes(self, exclude = "", only_locatables = False):
  1465         return [{"name": _("%s Data Types") % confnodetypes["name"],
  1465         return [{"name": _("%s Data Types") % confnodetypes["name"],
  1466                  "list": [datatype["name"] for datatype in confnodetypes["types"].GetCustomDataTypes(exclude)]}
  1466                  "list": [datatype["name"] for datatype in confnodetypes["types"].GetCustomDataTypes(exclude, only_locatables)]}
  1467                 for confnodetypes in self.ConfNodeTypes]
  1467                 for confnodetypes in self.ConfNodeTypes]
  1468     
  1468     
  1469     def GetConfNodeDataType(self, type):
  1469     def GetConfNodeDataType(self, type):
  1470         for confnodetype in self.ConfNodeTypes:
  1470         for confnodetype in self.ConfNodeTypes:
  1471             datatype = confnodetype["types"].getdataType(type)
  1471             datatype = confnodetype["types"].getdataType(type)
  1554         if project is not None:
  1554         if project is not None:
  1555             blocktypes.extend(project.GetCustomBlockResource())
  1555             blocktypes.extend(project.GetCustomBlockResource())
  1556         return blocktypes
  1556         return blocktypes
  1557 
  1557 
  1558     # Return Data Types checking for recursion
  1558     # Return Data Types checking for recursion
  1559     def GetDataTypes(self, tagname = "", basetypes = True, only_locatables = False, debug = False):
  1559     def GetDataTypes(self, tagname = "", basetypes = True, confnodetypes = True, only_locatables = False, debug = False):
  1560         if basetypes:
  1560         if basetypes:
  1561             datatypes = self.GetBaseTypes()
  1561             datatypes = self.GetBaseTypes()
  1562         else:
  1562         else:
  1563             datatypes = []
  1563             datatypes = []
  1564         project = self.GetProject(debug)
  1564         project = self.GetProject(debug)
  1566             name = ""
  1566             name = ""
  1567             words = tagname.split("::")
  1567             words = tagname.split("::")
  1568             if words[0] in ["D"]:
  1568             if words[0] in ["D"]:
  1569                 name = words[1]
  1569                 name = words[1]
  1570             datatypes.extend([datatype["name"] for datatype in project.GetCustomDataTypes(name, only_locatables)])
  1570             datatypes.extend([datatype["name"] for datatype in project.GetCustomDataTypes(name, only_locatables)])
  1571         for category in self.GetConfNodeDataTypes():
  1571         if confnodetypes:
  1572             datatypes.extend(category["list"])
  1572             for category in self.GetConfNodeDataTypes(name, only_locatables):
       
  1573                 datatypes.extend(category["list"])
  1573         return datatypes
  1574         return datatypes
  1574 
  1575 
  1575     # Return Base Type of given possible derived type
  1576     # Return Base Type of given possible derived type
  1576     def GetBaseType(self, type, debug = False):
  1577     def GetBaseType(self, type, debug = False):
  1577         project = self.GetProject(debug)
  1578         project = self.GetProject(debug)