コード例 #1
0
ファイル: usb4butia.py プロジェクト: nfurquez/LabRobEmb2013
 def callModule(self, modulename, board_number, number, function, params = []):
     """
     Call one function: function for module: modulename in board: board_name
     with handler: number (only if the module is pnp, else, the parameter is
     None) with parameteres: params
     """
     try:
         board = self._bb[board_number]
         if board.devices.has_key(number) and (board.devices[number].name == modulename):
             return board.devices[number].call_function(function, params)
         else:
             if modulename in self._openables:
                 if modulename in board.get_openables_loaded():
                     number = board.get_device_handler(modulename)
                 else:
                     board.add_openable_loaded(modulename)
                     dev = Device(board, modulename)
                     number = dev.module_open()
                     dev.add_functions(self._drivers_loaded[modulename])
                     board.add_device(number, dev)
                 return board.devices[number].call_function(function, params)
             else:
                 if self._debug:
                     print 'no open and no openable'
                 return ERROR
     except Exception, err:
         if self._debug:
             print 'error call module', err
         return ERROR
コード例 #2
0
 def _open_or_validate(self, modulename, board):
     """
     Open o check if modulename module is open in board: board
     """
     if modulename in self._openables:
         if modulename in board.get_openables_loaded():
             return board.get_device_handler(modulename)
         else:
             dev = Device(board, modulename, None, self._drivers_loaded[modulename], True)
             number = dev.module_open()
             if number == 255:
                 self._debug('cannot open module', modulename)
                 return ERROR
             else:
                 board.add_device(number, dev)
                 return number
     return ERROR