Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # dela
- #
- import sys
- import dbus
- import time
- discovery_time = 2000
- ################################################################
- bus = dbus.SystemBus()
- # build a proxy for the adapter
- adapter_proxy = bus.get_object("org.bluez", "/org/bluez/hci0")
- try:
- adapter_proxy.StopDiscovery(dbus_interface="org.bluez.Adapter1")
- except:
- pass
- # call the method startdiscovery from the adapter api then stopdiscovery
- adapter_proxy.StartDiscovery(dbus_interface="org.bluez.Adapter1")
- for i in range(0, discovery_time):
- time.sleep(1)
- print('-------------------------------------------------------')
- manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.freedesktop.DBus.ObjectManager")
- managed_objects = manager.GetManagedObjects()
- for device_path in managed_objects.keys():
- #print("device_path [ %s ]" % (device_path))
- #print("[ %s ]" % (path))
- # print all keys
- if 0:
- for interface in managed_objects[device_path].keys():
- properties = interfaces[interface]
- for key in properties.keys():
- print(" %s = %s" % (key, properties[key]))
- #print(managed_objects[device_path].get('org.bluez.Device1', {}))
- uuids = managed_objects[device_path].get('org.bluez.Device1', {}).get('UUIDs', [])
- for uuid in uuids:
- # HID (Human Interface Device), For classic BR/EDR keyboards and mice, 0x1124
- # HID Over GATT, For LE keyboards and mice, 0x1812
- if uuid.startswith('00001124') or uuid.startswith('00001812'):
- print('')
- device_name = managed_objects[device_path].get('org.bluez.Device1', {}).get('Name')
- device_address = managed_objects[device_path].get('org.bluez.Device1', {}).get('Address')
- device_paired = managed_objects[device_path].get('org.bluez.Device1', {}).get('Paired')
- device_trusted = managed_objects[device_path].get('org.bluez.Device1', {}).get('Trusted')
- device_connected = managed_objects[device_path].get('org.bluez.Device1', {}).get('Connected')
- if 0:
- print('remote control:\n Name: {}\n Address: {}\n Paired: {}\n Trusted: {}\n Connected: {}'.
- format(device_name, device_address, device_paired, device_trusted, device_connected))
- #if device_name not in 'B21':
- if device_name not in 'BuzzTV BT-400':
- continue
- print('remote control:\n Name: {}\n Address: {}\n Paired: {}\n Trusted: {}\n Connected: {}'.
- format(device_name, device_address, device_paired, device_trusted, device_connected))
- adapter_proxy.StopDiscovery(dbus_interface="org.bluez.Adapter1")
- if not device_trusted:
- try:
- print('trust: {}'.format(device_path))
- device = dbus.Interface(bus.get_object('org.bluez', device_path), 'org.bluez.Device1')
- prop = dbus.Interface(bus.get_object('org.bluez', device_path), 'org.freedesktop.DBus.Properties')
- prop.Set('org.bluez.Device1', 'Trusted', dbus.Boolean(1))
- except Exception as error:
- print("Exception: {}".format(error))
- pass
- if not device_connected:
- try:
- print("\nconnect: {}".format(device_path))
- device = dbus.Interface(bus.get_object('org.bluez', device_path), 'org.bluez.Device1')
- device.Connect()
- except Exception as error:
- print("Exception: {}".format(error))
- pass
- #if 0 and device_trusted and not device_paired:
- # try:
- # print("\npaire: {}".format(device_path))
- # device = dbus.Interface(bus.get_object('org.bluez', device_path), 'org.bluez.Device1')
- # device.Pair()
- # except Exception as error:
- # print("Exception: {}".format(error))
- # pass
- adapter_proxy.StartDiscovery(dbus_interface="org.bluez.Adapter1")
- #time.sleep(10);
- adapter_proxy.StopDiscovery(dbus_interface="org.bluez.Adapter1")
- #Introspect the adapter
- introspection = adapter_proxy.Introspect(dbus_interface="org.freedesktop.DBus.Introspectable")
- #Print the introspection. See the AdvancedProxyExample for xml pretty printing.
- #print(introspection)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement