Esempio n. 1
0
    def __init__(self, master):
        tk.Frame.__init__(self, master)
 
        bl = bluetoothctl.Bluetoothctl() 
        bl.clear_scan()
        bl.start_scan()
        for i in range(0, 4):
            time.sleep(1)
            nearby_devices=bl.get_discoverable_devices()
        bl.stop_scan()

        btn_dict = {}
        renglon = 0
        for dispositivos in nearby_devices:
            addr=dispositivos["mac_address"]
            name=dispositivos["name"]
            # create the buttons and assign to dispositivos:button-object dict pair
            action_with_arg =partial(bl.pair, addr)
            btn_dict[name] = tk.Button(self, text=name, command=action_with_arg)
            btn_dict[name].grid(row=renglon, column=1, pady=5)
            renglon += 1
        re_scan = tk.Button(self, text="Buscar", command=lambda: master.switch_frame(PageOne))
        re_scan.grid(row=renglon, column=1, pady=5)

        start_button = tk.Button(self, text="Volver Inicio", command=lambda: master.switch_frame(StartPage))
        start_button.grid(row=renglon+1, column=1, pady=5)
Esempio n. 2
0
    def pair(self, mac):
        pages.require("/admin/settings.edit")
        pages.postOnly()

        import bluetoothctl
        bt = bluetoothctl.Bluetoothctl()
        bt.set_agent("NoInputNoOutput")

        time.sleep(0.5)
        try:

            # I think this horriby fussy command needs exactlt this order to work.
            if not bt.pair(mac):
                raise RuntimeError("Pairing failed")

            if not bt.connect(mac):
                raise RuntimeError("Pairing suceeded but connection failed")

            if not bt.trust(mac):
                raise RuntimeError("Trusting failed")
        finally:
            bt.close(force=True)

        devs = []
        paired = bt.get_paired_devices()

        return pages.get_template("settings/bluetooth/scan.html").render(
            devs=devs, paired=paired)
    def __init__(self):
        self.results = ()
        self.device = None

        bl = bluetoothctl.Bluetoothctl()
        bl.start_scan()
        self.device = bl
        self.name = "BT"
Esempio n. 4
0
    def remove(self, mac):
        pages.require("/admin/settings.edit")
        pages.postOnly()
        import bluetoothctl
        bt = bluetoothctl.Bluetoothctl()
        time.sleep(0.5)
        try:
            devs = bt.get_discoverable_devices()
            paired = bt.get_paired_devices()
            if not bt.remove(mac):
                raise RuntimeError("Removing failed")
        finally:
            bt.close(force=True)

        return pages.get_template("settings/bluetooth/scan.html").render(
            devs=devs, paired=paired)
Esempio n. 5
0
    def scan(self):
        pages.postOnly()
        pages.require("/admin/settings.edit")

        import bluetoothctl
        bt = bluetoothctl.Bluetoothctl()

        try:
            bt.start_scan()
            time.sleep(15)
            bt.stop_scan()

            devs = bt.get_discoverable_devices()
            paired = bt.get_paired_devices()
        finally:
            bt.close(force=True)

        return pages.get_template("settings/bluetooth/scan.html").render(
            devs=devs, paired=paired)
Esempio n. 6
0
import bluetoothctl
import json
import sys

bl = bluetoothctl.Bluetoothctl()
print json.dumps(bl.disconnect(sys.argv[1]))
Esempio n. 7
0
 def __init__(self):
     self.bctl = bluetoothctl.Bluetoothctl()
     self.bctl.start_scan()