Ejemplo n.º 1
0
    def start_service(self, name, port=None):
        if port is None:
            port = bluez_helper.get_available_port(self.address)

        socket = bluez_helper.BluetoothSocket()
        socket.bind((self.address, port))
        socket.listen(1)

        print("Starting server for %s on port %i" % socket.getsockname())
        bluez_helper.advertise_service(name, port)

        return socket
Ejemplo n.º 2
0
def main():
    port = bluez_helper.get_available_port()
    socket = bluez_helper.BluetoothSocket()
    socket.bind((bluez_helper.BDADDR_ANY, port))
    socket.listen(1)
    bluez_helper.advertise_service('hf', port)

    print("Waiting for connection on port", port)
    connection, address = socket.accept()
    print("Got connection:", address)

    t = Thread(target=print_loop, args=(connection,), daemon=True)
    t.start()

    while True:
        c = input().encode('latin-1') + b'\r\n'
        connection.send(c)
Ejemplo n.º 3
0
    def _connect_hfp(address, port=None, control_chan=True, audio_chan=True):
        connection = None

        # Connect to RFCOMM control channel on HF (car kit)
        if control_chan:
            if port is None:
                port = bluez_helper.find_service("hf", address)
            print("HFP connecting to %s on port %i" % (address, port))
            connection = bluez_helper.BluetoothSocket()
            time.sleep(0.5)
            connection.connect((address, port))

        if audio_chan and hasattr(socket, "BTPROTO_SCO"):
            asock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_SEQPACKET,
                                  socket.BTPROTO_SCO)
            time.sleep(0.5)
            try:
                asock.connect(bytes(address, encoding="UTF-8"))
            except ConnectionRefusedError:
                print("Connection refused for audio socket")
            else:
                print("HFP SCO audio socket established")

        return connection