Ejemplo n.º 1
0
    def __init__(self, session):
        Screen.__init__(self, session)
        Screen.setTitle(self, _("Bluetooth Devices Manager"))

        # initialize bluetooh
        self.bluetool = Bluetooth()

        self["actions"] = ActionMap(
            [
                "OkCancelActions", "WizardActions", "ColorActions",
                "SetupActions", "NumberActions", "MenuActions"
            ], {
                "ok": self.keyOK,
                "cancel": self.keyCancel,
                "red": self.keyRed,
                "green": self.keyGreen,
                "yellow": self.keyYellow,
                "blue": self.keyBlue,
            }, -1)

        self["ConnStatus"] = Label()
        self["key_red"] = Label(_("Scan"))
        self["key_green"] = Label(_("Connect"))
        self["key_yellow"] = Label(_("Disconnect"))
        self["key_blue"] = Label(_("Paired"))

        self.devicelist = []
        self["devicelist"] = MenuList(self.devicelist)

        self.scan = eTimer()
        self.scan.callback.append(self.DevicesToPair)
        self.scanning = False

        self.keyRed()
Ejemplo n.º 2
0
    def __init__(self, stdscreen):
        self.scan_timeout = 90
        self.bt = Bluetooth()
        self.bt.start_scanning(self.scan_timeout)

        self.screen = stdscreen
        curses.curs_set(0)
        mainMenu = [
            ('Rescan devices\t\t(scans for {} seconds in background, system bus will be processed every 10 seconds)'.format(self.scan_timeout), self.rescan_devices),
            ('Trust controller\t\t(shows only untrusted pairable controllers)', self.trust_controller_menu),
            ('Pair controller\t\t(shows only unpaired pairable controllers)', self.pair_controller_menu),
            ('Connect controller\t\t(shows only paired and trusted connectable controllers)', self.connect_device_menu),
            ('Disconnect controller\t(shows only connected controllers)', self.disconnect_device_menu),
            ('Remove controller\t\t(shows only trusted, paired OR connected controllers)', self.remove_device_menu),
        ]
        self.make_menu(mainMenu)
        self.menu.display()
Ejemplo n.º 3
0
    def NewConnection(self, path, fd, properties):
        address = str(path)
        address = address[len(address) - 17:len(address)]
        address = address.replace("_", ":")
        logger.info("Connected: {}\n".format(address))

        blue_socket = socket.fromfd(fd.take(), socket.AF_UNIX,
                                    socket.SOCK_STREAM)

        socket_sink = SocketSink(sock=blue_socket)
        self.bridge = TCPBridge(sink=socket_sink,
                                port_in=self.tcp_port_in,
                                port_out=self.tcp_port_out)

        try:
            self.bridge.start(in_background=False)
        except TCPBridgeError as error:
            logger.error(str(error) + "\n")

        self.bridge.stop()
        blue_socket.close()

        logger.info("Disconnected: {}\n".format(address))
        Bluetooth().disconnect(address)
Ejemplo n.º 4
0
from bluetool import Bluetooth

bluetooth = Bluetooth()
adapters = bluetooth.list_interfaces()

print(adapters)
        self.menu.window.addstr(
            9, 1,
            'Scanning for device for {} seconds in background now, please refresh views...'
            .format(self.scan_timeout), curses.A_NORMAL)
        self.bt.start_scanning(self.scan_timeout)

    def get_selected_device(self):
        return (self.menu.items[self.menu.position][0].split('\t'))

    def navigate_to_back(self):
        self.menu.navigate(len(self.menu.items) - 1)


if __name__ == "__main__":
    if (len(sys.argv) == 1):
        bt = Bluetooth()
        print('Scanning for available devices for 15 seconds, please wait...')
        bt.start_scanning(15)
        time.sleep(15)
        print('Getting pairable devices, please wait...')
        devices = bt.get_devices_to_pair()
        print(devices)
        for device in devices:
            mac = device['mac_address']
            name = device['name']
            print('Found MAC: {}\tName: {}'.format(mac, name))
            if bt.get_device_property(mac, 'Icon') == 'input-gaming':
                print('Found controller {} Name: {}, trusting...'.format(
                    mac, name))
                bt.trust(mac)
                if bt.get_device_property(mac, 'Trusted') == 1:
Ejemplo n.º 6
0
from bluetool import Bluetooth

scanner = Bluetooth()
scanner.scan()
found = scanner.get_available_devices()
print(found)
Ejemplo n.º 7
0
    match = 0

    if GPIO.input(13) == False:

        beep.pair()

        print "Performing inquiry..."

        nearby_devices = discover_devices(lookup_names=True)

        print "Found %d devices" % len(nearby_devices)

        for addr, name in nearby_devices:

            for k in range(len(MACs)):

                if MACs[k] == addr:
                    match = match + 1
                    beep.match()
                    port = btConnect.connect(MACs[k])
                    print "MAC: " + addr + " found on DB"
                    print "RRSS service port: " + str(port)
                    print "Pairing..."
                    Pair = Bluetooth()
                    print Pair.pair(addr)

        if match == 0:

            beep.noMatch()