bluez/test/test-profile

91 lines
2.2 KiB
Plaintext
Raw Normal View History

2012-09-25 20:11:48 +08:00
#!/usr/bin/python
from __future__ import absolute_import, print_function, unicode_literals
from gi.repository import GObject
2012-09-28 03:14:29 +08:00
import os
2012-09-25 20:11:48 +08:00
import sys
import dbus
import dbus.service
import dbus.mainloop.glib
from optparse import OptionParser, make_option
class Profile(dbus.service.Object):
@dbus.service.method("org.bluez.Profile1",
2012-09-25 20:11:48 +08:00
in_signature="", out_signature="")
def Release(self):
print("Release")
mainloop.quit()
@dbus.service.method("org.bluez.Profile1",
in_signature="", out_signature="")
def Cancel(self):
print("Cancel")
@dbus.service.method("org.bluez.Profile1",
in_signature="oha{sv}", out_signature="")
def NewConnection(self, path, fd, properties):
2012-09-28 03:14:29 +08:00
fd = fd.take()
print("NewConnection(%s, %d)" % (path, fd))
2012-09-28 03:14:29 +08:00
os.close(fd)
2012-09-25 20:11:48 +08:00
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object("org.bluez",
"/org/bluez"), "org.bluez.ProfileManager1")
2012-09-25 20:11:48 +08:00
option_list = [
make_option("-u", "--uuid", action="store",
type="string", dest="uuid",
default="spp"),
2012-09-25 20:11:48 +08:00
make_option("-p", "--path", action="store",
type="string", dest="path",
default="/foo/bar/profile"),
make_option("-n", "--name", action="store",
type="string", dest="name",
default="Test Profile"),
make_option("-s", "--server",
action="store_const",
const="server", dest="role"),
make_option("-c", "--client",
action="store_const",
const="client", dest="role"),
make_option("-a", "--auto-connect",
action="store_true",
dest="auto_connect", default=False),
make_option("-P", "--PSM", action="store",
type="int", dest="psm"),
make_option("-C", "--channel", action="store",
type="int", dest="channel")
2012-09-25 20:11:48 +08:00
]
2012-09-25 20:11:48 +08:00
parser = OptionParser(option_list=option_list)
(options, args) = parser.parse_args()
profile = Profile(bus, options.path)
mainloop = GObject.MainLoop()
opts = {
"Name" : options.name,
"AutoConnect" : options.auto_connect,
}
2012-09-25 20:11:48 +08:00
if (options.role):
opts["Role"] = options.role
if (options.psm):
opts["PSM"] = dbus.UInt16(options.psm)
if (options.channel):
opts["Channel"] = dbus.UInt16(options.channel)
2012-09-25 20:11:48 +08:00
manager.RegisterProfile(options.path, options.uuid, opts)
mainloop.run()