etherlab/etherlab.py
changeset 2152 e6946c298a42
parent 2149 7f473761c932
child 2157 a2385e535cf5
--- a/etherlab/etherlab.py	Mon Jun 03 08:24:08 2013 +0200
+++ b/etherlab/etherlab.py	Wed Apr 02 15:03:32 2014 +0200
@@ -159,7 +159,7 @@
                              "BitSize": object.getBitSize(),
                              "Access": entry_access,
                              "PDOMapping": entry_pdomapping}
-        
+
         for TxPdo in self.getTxPdo():
             ExtractPdoInfos(TxPdo, "Transmit", entries, limits)
         for RxPdo in self.getRxPdo():
@@ -167,7 +167,7 @@
         
         return entries
     setattr(cls, "GetEntriesList", GetEntriesList)
-
+    
     def GetSyncManagers(self):
         sync_managers = []
         for sync_manager in self.getSm():
@@ -287,33 +287,36 @@
                 xml_tree = minidom.parse(xmlfile)
                 xmlfile.close()
                 
-                modules_infos = None
+                self.modules_infos = None
                 for child in xml_tree.childNodes:
                     if child.nodeType == xml_tree.ELEMENT_NODE and child.nodeName == "EtherCATInfo":
-                        modules_infos = EtherCATInfoClasses["EtherCATInfo.xsd"]["EtherCATInfo"]()
-                        modules_infos.loadXMLTree(child)
+                        self.modules_infos = EtherCATInfoClasses["EtherCATInfo.xsd"]["EtherCATInfo"]()
+                        self.modules_infos.loadXMLTree(child)
                 
-                if modules_infos is not None:
-                    vendor = modules_infos.getVendor()
+                if self.modules_infos is not None:
+                    vendor = self.modules_infos.getVendor()
                     
                     vendor_category = self.Library.setdefault(ExtractHexDecValue(vendor.getId()), 
                                                               {"name": ExtractName(vendor.getName(), _("Miscellaneous")), 
                                                                "groups": {}})
                     
-                    for group in modules_infos.getDescriptions().getGroups().getGroup():
+                    for group in self.modules_infos.getDescriptions().getGroups().getGroup():
                         group_type = group.getType()
                         
                         vendor_category["groups"].setdefault(group_type, {"name": ExtractName(group.getName(), group_type), 
                                                                           "parent": group.getParentGroup(),
                                                                           "order": group.getSortOrder(), 
+                                                                          "value": group.getcontent()["value"],
                                                                           "devices": []})
                     
-                    for device in modules_infos.getDescriptions().getDevices().getDevice():
+                    for device in self.modules_infos.getDescriptions().getDevices().getDevice():
                         device_group = device.getGroupType()
                         if not vendor_category["groups"].has_key(device_group):
                             raise ValueError, "Not such group \"%\"" % device_group
                         vendor_category["groups"][device_group]["devices"].append((device.getType().getcontent(), device))
 
+        return self.Library 
+
     def GetModulesLibrary(self, profile_filter=None):
         if self.Library is None:
             self.LoadModules()
@@ -375,6 +378,8 @@
                     revision_number = ExtractHexDecValue(device_infos.getType().getRevisionNo())
                     if (product_code == ExtractHexDecValue(module_infos["product_code"]) and
                         revision_number == ExtractHexDecValue(module_infos["revision_number"])):
+                        self.cntdevice = device_infos 
+                        self.cntdeviceType = device_type  
                         return device_infos, self.GetModuleExtraParams(vendor, product_code, revision_number)
         return None, None
     
@@ -459,7 +464,8 @@
     
     CTNChildrenTypes = [("EthercatNode",_EthercatCTN,"Ethercat Master")]
     EditorType = LibraryEditor
-    
+       
+    
     def __init__(self):
         self.ModulesLibrary = None
         self.LoadModulesLibrary()
@@ -502,4 +508,3 @@
     def GetModuleInfos(self, module_infos):
         return self.ModulesLibrary.GetModuleInfos(module_infos)
 
-