class Driver: """Driver class. For managing scanner hw""" def __init__(self): self.isConnected = False #TODO: Callbacks to Observer pattern self.beforeCallback = None self.afterCallback = None self.unplugged = False self.board = Board(self) self.camera = Camera(self) def setCallbacks(self, before, after): self.beforeCallback = before self.afterCallback = after def connect(self): if self.beforeCallback is not None: self.beforeCallback() threading.Thread(target=self._connect, args=(self.afterCallback, )).start() def _connect(self, callback): error = None self.isConnected = False try: self.camera.connect() self.board.connect() except WrongFirmware: error = Error.WrongFirmware except BoardNotConnected: error = Error.BoardNotConnected except CameraNotConnected: error = Error.CameraNotConnected except WrongCamera: error = Error.WrongCamera except InvalidVideo: error = Error.InvalidVideo else: self.isConnected = True finally: if error is None: self.unplugged = False response = (True, self.isConnected) else: response = (False, error) self.disconnect() if callback is not None: callback(response) def disconnect(self): self.isConnected = False self.camera.disconnect() self.board.disconnect()
class Driver: """Driver class. For managing scanner hw""" def __init__(self): self.isConnected = False #TODO: Callbacks to Observer pattern self.beforeCallback = None self.afterCallback = None self.unplugged = False self.board = Board(self) self.camera = Camera(self) def setCallbacks(self, before, after): self.beforeCallback = before self.afterCallback = after def connect(self): if self.beforeCallback is not None: self.beforeCallback() threading.Thread(target=self._connect, args=(self.afterCallback,)).start() def _connect(self, callback): error = None self.isConnected = False try: self.camera.connect() self.board.connect() except WrongFirmware: error = Error.WrongFirmware except BoardNotConnected: error = Error.BoardNotConnected except CameraNotConnected: error = Error.CameraNotConnected except WrongCamera: error = Error.WrongCamera except InvalidVideo: error = Error.InvalidVideo else: self.isConnected = True finally: if error is None: self.unplugged = False response = (True, self.isConnected) else: response = (False, error) self.disconnect() if callback is not None: callback(response) def disconnect(self): self.isConnected = False self.camera.disconnect() self.board.disconnect()
def __init__(self): self.isConnected = False #TODO: Callbacks to Observer pattern self.beforeCallback = None self.afterCallback = None self.unplugged = False self.board = Board(self) self.camera = Camera(self)