etherlab/etherlab.py
changeset 2038 6f78c4ac22f9
parent 2037 d54036f70390
child 2039 3a218f6bd805
equal deleted inserted replaced
2037:d54036f70390 2038:6f78c4ac22f9
    88             if device is not None:
    88             if device is not None:
    89                 infos = slave_typeinfos.copy()
    89                 infos = slave_typeinfos.copy()
    90                 entries = device.GetEntriesList()
    90                 entries = device.GetEntriesList()
    91                 entries_list = entries.items()
    91                 entries_list = entries.items()
    92                 entries_list.sort()
    92                 entries_list.sort()
       
    93                 entries = []
       
    94                 current_index = None
       
    95                 current_entry = None
       
    96                 for (index, subindex), entry in entries_list:
       
    97                     entry["children"] = []
       
    98                     if index != current_index:
       
    99                         current_index = index
       
   100                         current_entry = entry
       
   101                         entries.append(entry)
       
   102                     elif current_entry is not None:
       
   103                         current_entry["children"].append(entry)
       
   104                     else:
       
   105                         entries.append(entry)
    93                 infos.update({"physics": device.getPhysics(),
   106                 infos.update({"physics": device.getPhysics(),
    94                               "sync_managers": device.GetSyncManagers(),
   107                               "sync_managers": device.GetSyncManagers(),
    95                               "entries": [entry[1] for entry in entries_list]})
   108                               "entries": entries})
    96                 return infos
   109                 return infos
    97         return None
   110         return None
    98 
   111 
    99     def GetVariableLocationTree(self):
   112     def GetVariableLocationTree(self):
   100         slave_typeinfos = self.GetSlaveTypeInfos()
   113         slave_typeinfos = self.GetSlaveTypeInfos()
   378             if device is not None:
   391             if device is not None:
   379                 infos = type_infos.copy()
   392                 infos = type_infos.copy()
   380                 entries = device.GetEntriesList()
   393                 entries = device.GetEntriesList()
   381                 entries_list = entries.items()
   394                 entries_list = entries.items()
   382                 entries_list.sort()
   395                 entries_list.sort()
       
   396                 entries = []
       
   397                 current_index = None
       
   398                 current_entry = None
       
   399                 for (index, subindex), entry in entries_list:
       
   400                     entry["children"] = []
       
   401                     if index != current_index:
       
   402                         current_index = index
       
   403                         current_entry = entry
       
   404                         entries.append(entry)
       
   405                     elif current_entry is not None:
       
   406                         current_entry["children"].append(entry)
       
   407                     else:
       
   408                         entries.append(entry)
   383                 infos.update({"physics": device.getPhysics(),
   409                 infos.update({"physics": device.getPhysics(),
   384                               "sync_managers": device.GetSyncManagers(),
   410                               "sync_managers": device.GetSyncManagers(),
   385                               "entries": [entry[1] for entry in entries_list]})
   411                               "entries": entries})
   386                 return infos
   412                 return infos
   387         return None
   413         return None
   388     
   414     
   389     def GetModuleInfos(self, type_infos):
   415     def GetModuleInfos(self, type_infos):
   390         return self.PlugParent.GetModuleInfos(type_infos)
   416         return self.PlugParent.GetModuleInfos(type_infos)