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
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