Example #1
0
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()
Example #2
0
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()
Example #3
0
    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)
Example #4
0
	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)