示例#1
0
    def start_up(self):
        """Starting up initials"""
        self.picaso.clear_screen()

        # Testing demon connection
        attempt_number = 0
        while not test_demon_connection():
            self.picaso.move_cursor(2, 0)
            attempt_number += 1
            status_string = "Demon connection attempt {} failed".format(
                attempt_number)
            self.picaso.put_string(status_string)
            time.sleep(1)

        # Demon connection successful
        self.picaso.clear_screen()
        self.picaso.move_cursor(2, 0)
        status_string = "Demon connection attempt succeeded".format(
            attempt_number)
        self.picaso.put_string(status_string)

        # Create ssh tunnel
        self.picaso.move_cursor(3, 0)
        if create_tunnel():
            self.picaso.put_string('Created SSH tunnel')
        else:
            self.picaso.put_string('Unable to create SSH tunnel. Quitting!')
            time.sleep(5)
            raise SystemExit('Unable to create ssh tunnel')

        # Print network interface and ip address
        interface, ip_address = get_ip_address()
        self.picaso.move_cursor(5, 0)
        interface_string = "Interface: {}".format(interface)
        self.picaso.put_string(interface_string)
        self.picaso.move_cursor(6, 0)
        ip_address_string = "Ip address: {}".format(ip_address)
        self.picaso.put_string(ip_address_string)

        # Start the database backend
        time.sleep(1)
        for _ in range(10):
            try:
                self.bar_database = BarDatabase('127.0.0.1', 9000)
                break
            except OperationalError:
                time.sleep(1)
        self.picaso.move_cursor(7, 0)
        self.picaso.put_string('Connection to database')

        # Start barcode scanner
        dev_ = detect_barcode_device()
        print dev_
        self.tbs = ThreadedBarcodeReader(dev_)
        self.tbs.start()
        time.sleep(1)
示例#2
0
    def start_up(self):
        """Starting up initials"""
        self.picaso.clear_screen()

        # Testing demon connection
        attempt_number = 0
        while not test_demon_connection():
            self.picaso.move_cursor(2, 0)
            attempt_number += 1
            status_string = "Demon connection attempt {} failed".format(attempt_number)
            self.picaso.put_string(status_string)
            time.sleep(1)

        # Demon connection successful
        self.picaso.clear_screen()
        self.picaso.move_cursor(2, 0)
        status_string = "Demon connection attempt succeeded".format(attempt_number)
        self.picaso.put_string(status_string)

        # Create ssh tunnel
        self.picaso.move_cursor(3, 0)
        if create_tunnel():
            self.picaso.put_string('Created SSH tunnel')
        else:
            self.picaso.put_string('Unable to create SSH tunnel. Quitting!')
            time.sleep(5)
            raise SystemExit('Unable to create ssh tunnel')

        # Print network interface and ip address
        interface, ip_address = get_ip_address()
        self.picaso.move_cursor(5, 0)
        interface_string = "Interface: {}".format(interface)
        self.picaso.put_string(interface_string)
        self.picaso.move_cursor(6, 0)
        ip_address_string = "Ip address: {}".format(ip_address)
        self.picaso.put_string(ip_address_string)

        # Start the database backend
        time.sleep(1)
        for _ in range(10):
            try:
                self.bar_database = BarDatabase('127.0.0.1', 9000)
                break
            except OperationalError:
                time.sleep(1)
        self.picaso.move_cursor(7, 0)
        self.picaso.put_string('Connection to database')

        # Start barcode scanner
        dev_ = detect_barcode_device()
        print dev_
        self.tbs = ThreadedBarcodeReader(dev_)
        self.tbs.start()
        time.sleep(1)
示例#3
0
    def __init__(self):
        LOGGER.info('Started Picture Logbook')
        self.picaso = PicasouLCD28PTU(serial_device='/dev/ttyUSB0',
                                      baudrate=115200,
                                      debug=True)
        dev_ = detect_barcode_device()
        LOGGER.info('Barcode device: ' + dev_)
        self.tbs = ThreadedBarcodeReader(dev_)
        self.tbs.start()

        self.setup = settings.setup

        self.livesocket = LiveSocket(self.setup + '-Picture Logbook',
                                     ['logged_in_user'], 1)
        self.livesocket.start()

        self.force_logout_user = settings.force_logut_user
        self.camera = cv.CaptureFromCAM(0)
        cv.SetCaptureProperty(self.camera, cv.CV_CAP_PROP_FRAME_WIDTH, 320)
        cv.SetCaptureProperty(self.camera, cv.CV_CAP_PROP_FRAME_HEIGHT, 240)
        self.database = MySQLdb.connect(host='servcinf-sql',
                                        user='******',
                                        passwd='picturelogbook',
                                        db='cinfdata')
        self.database.ping(True)
        query = 'select user, login from picture_logbooks where setup = "'
        query += self.setup + '" order by time desc limit 1'
        cursor = self.database.cursor()
        cursor.execute(query)
        current_state = cursor.fetchone()
        try:
            current_login = current_state[1]
        except TypeError:  # Happens with no items in database
            current_login = 0
        if current_login == 0:
            self.logged_in_user = None
        else:
            self.logged_in_user = current_state[0]
        LOGGER.info('Initially logged in user:' + str(self.logged_in_user))
        self.update_external_screen(str(self.logged_in_user))
示例#4
0
    def __init__(self):
        LOGGER.info('Started Picture Logbook')
        self.picaso = PicasouLCD28PTU(serial_device='/dev/ttyUSB0', baudrate=115200,
                                      debug=True)
        dev_ = detect_barcode_device()
        LOGGER.info('Barcode device: ' +  dev_)
        self.tbs = ThreadedBarcodeReader(dev_)
        self.tbs.start()

        self.setup = settings.setup

        self.livesocket = LiveSocket(self.setup + '-Picture Logbook', ['logged_in_user'])
        self.livesocket.start()

        self.force_logout_user = settings.force_logut_user
        self.camera = cv.CaptureFromCAM(0)
        cv.SetCaptureProperty(self.camera, cv.CV_CAP_PROP_FRAME_WIDTH, 320)
        cv.SetCaptureProperty(self.camera, cv.CV_CAP_PROP_FRAME_HEIGHT, 240)
        self.database = MySQLdb.connect(host='servcinf-sql', user='******',
                                        passwd='picturelogbook', db='cinfdata')
        self.database.ping(True)
        query = 'select user, login from picture_logbooks where setup = "'
        query += self.setup + '" order by time desc limit 1'
        cursor = self.database.cursor()
        cursor.execute(query)
        current_state = cursor.fetchone()
        try:
            current_login = current_state[1]
        except TypeError: # Happens with no items in database
            current_login = 0
        if current_login == 0:
            self.logged_in_user = None
        else:
            self.logged_in_user = current_state[0]
        LOGGER.info('Initially logged in user:' + str(self.logged_in_user))
        self.update_external_screen(str(self.logged_in_user))