Ejemplo n.º 1
0
def mindwave_startup(view=None, description="", extra_args=[]):
    parser = argparse.ArgumentParser(description=description)
    parser.add_argument('address',
                        type=str,
                        nargs='?',
                        const=None,
                        default=None,
                        help="""Bluetooth Address of device. Use this
            if you have multiple headsets nearby or you want
            to save a few seconds during startup.""")
    for params in extra_args:
        name = params['name']
        del params['name']
        parser.add_argument(name, **params)
    args = parser.parse_args(sys.argv[1:])
    if args.address is None:
        socket = None
        retries = 0
        view.print_message("Trying bluetooth connection...", "bluetooth")
        while socket is None and retries < 1:
            nearby = []
            try:
                socket, socket_addr, nearby = connect_magic()
            except:
                pass
            finally:
                if socket is None:
                    retries += 1
                    view.print_message("Nearby devices: " + json.dumps(nearby),
                                       "bluetooth")
                    view.print_message(
                        "Retrying... {retries}".format(retries=retries),
                        "bluetooth")
                    time.sleep(1)
                else:
                    view.print_message("MindWave Mobile found", "bluetooth")
        if socket is None:
            view.print_message("No MindWave Mobile found.", "bluetooth")
            return None, None
    else:
        socket = connect_bluetooth_addr(args.address)
        if socket is None:
            view.print_message("Connection failed.", "bluetooth")
            sys.exit(-1)
        socket_addr = args.address
    view.print_message("Connected with MindWave Mobile at %s" % socket_addr,
                       "bluetooth")
    for i in range(5):
        try:
            if i > 0:
                view.print_message("Retrying...", "bluetooth")
            time.sleep(1)
            len(socket.recv(10))
            break
        except BluetoothError, e:
            print e
        if i == 5:
            view.print_message("Connection failed.", "bluetooth")
            sys.exit(-1)
Ejemplo n.º 2
0
def mindwave_startup(description="", extra_args=[]):
    parser = argparse.ArgumentParser(description=description)
    parser.add_argument('address',
                        type=str,
                        nargs='?',
                        const=None,
                        default=None,
                        help="""Bluetooth Address of device. Use this
            if you have multiple headsets nearby or you want
            to save a few seconds during startup.""")
    for params in extra_args:
        name = params['name']
        del params['name']
        parser.add_argument(name, **params)
    args = parser.parse_args(sys.argv[1:])
    if args.address is None:
        socket, socket_addr = connect_magic()
        if socket is None:
            print("No MindWave Mobile found.")
            sys.exit(-1)
    else:
        socket = connect_bluetooth_addr(args.address)
        if socket is None:
            print("Connection failed.")
            sys.exit(-1)
        socket_addr = args.address
    print("Connected with MindWave Mobile at %s" % socket_addr)
    for i in range(5):
        try:
            if i > 0:
                print("Retrying...")
            time.sleep(2)
            len(socket.recv(10))
            break
        except BluetoothError:
            print("oh noes, bluetooth error")
        if i == 5:
            print("Connection failed.")
            sys.exit(-1)
    return socket, args