Esempio n. 1
0
 def _parse_function_block_plugs(self):
     fbs = {}
     subunits = BcoSubunitInfo.get_subunits(self.fcp)
     for type in self.subunit_plugs.keys():
         subunit_fbs = {}
         entries = []
         for i in range(0xff):
             try:
                 entries.extend(BcoSubunitInfo.get_subunit_fb_info(self.fcp,
                                                         type, 0, i, 0xff))
             except:
                 break
         for entry in entries:
             fb_type = entry['fb-type']
             if fb_type not in subunit_fbs:
                 subunit_fbs[fb_type] = {}
             fb_id = entry['fb-id']
             if fb_id not in subunit_fbs[fb_type]:
                 subunit_fbs[fb_type][fb_id] = {}
                 subunit_fbs[fb_type][fb_id]['output'] = {}
                 subunit_fbs[fb_type][fb_id]['input'] = {}
             for i in range(entry['inputs']):
                 plug = self._parse_fb_plug('input', type, 0,
                                            fb_type, fb_id, i)
                 subunit_fbs[fb_type][fb_id]['output'][i] = plug
             for i in range(entry['outputs']):
                 plug = self._parse_fb_plug('output', type, 0,
                                            fb_type, fb_id, i)
                 subunit_fbs[fb_type][fb_id]['input'][i] = plug
         fbs[type] = subunit_fbs
     return fbs