| #!/usr/bin/python |
| |
| from __future__ import absolute_import, print_function, unicode_literals |
| |
| from optparse import OptionParser, make_option |
| import os |
| import sys |
| import uuid |
| import dbus |
| import dbus.service |
| import dbus.mainloop.glib |
| try: |
| from gi.repository import GObject |
| except ImportError: |
| import gobject as GObject |
| import bluezutils |
| |
| class GattProfile(dbus.service.Object): |
| @dbus.service.method("org.bluez.GattProfile1", |
| in_signature="", out_signature="") |
| def Release(self): |
| print("Release") |
| mainloop.quit() |
| |
| if __name__ == '__main__': |
| dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) |
| |
| bus = dbus.SystemBus() |
| |
| path = bluezutils.find_adapter().object_path |
| |
| manager = dbus.Interface(bus.get_object("org.bluez", path), |
| "org.bluez.GattManager1") |
| |
| option_list = [ |
| make_option("-u", "--uuid", action="store", |
| type="string", dest="uuid", |
| default=None), |
| make_option("-p", "--path", action="store", |
| type="string", dest="path", |
| default="/foo/bar/profile"), |
| ] |
| |
| opts = dbus.Dictionary({ }, signature='sv') |
| |
| parser = OptionParser(option_list=option_list) |
| |
| (options, args) = parser.parse_args() |
| |
| profile = GattProfile(bus, options.path) |
| |
| mainloop = GObject.MainLoop() |
| |
| if not options.uuid: |
| options.uuid = str(uuid.uuid4()) |
| |
| uuids = { options.uuid } |
| manager.RegisterProfile(options.path, uuids, opts) |
| |
| mainloop.run() |