From 80fba068672cb76956f1b40629d775026cb290c3 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 14 Mar 2008 19:56:30 +0000 Subject: Add first draft of a simple agent implementation for the new API --- hcid/Makefile.am | 2 +- hcid/simple-agent | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100755 hcid/simple-agent diff --git a/hcid/Makefile.am b/hcid/Makefile.am index dda695b6..638a7524 100644 --- a/hcid/Makefile.am +++ b/hcid/Makefile.am @@ -58,7 +58,7 @@ AM_YFLAGS = -d CLEANFILES = lexer.c parser.c parser.h EXTRA_DIST = hcid.8 hcid.conf.5 hcid.conf dbus-api.txt \ - list-devices test-device service-record.dtd \ + list-devices test-device simple-agent service-record.dtd \ service-did.xml service-spp.xml service-opp.xml service-ftp.xml MAINTAINERCLEANFILES = Makefile.in diff --git a/hcid/simple-agent b/hcid/simple-agent new file mode 100755 index 00000000..d6cc9482 --- /dev/null +++ b/hcid/simple-agent @@ -0,0 +1,47 @@ +#!/usr/bin/python + +import gobject + +import dbus +import dbus.service +import dbus.mainloop.glib + +class Agent(dbus.service.Object): + @dbus.service.method("org.bluez.Agent", + in_signature='', out_signature='') + def Release(self): + print("Release") + mainloop.quit() + + @dbus.service.method("org.bluez.Agent", + in_signature='o', out_signature='s') + def RequestPasskey(self, device): + print("RequestPasskey (" + device + ")") + return "1234" + + @dbus.service.method("org.bluez.Agent", + in_signature='', out_signature='') + def Cancel(self): + print("Cancel") + +if __name__ == '__main__': + dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + + bus = dbus.SystemBus() + manager = dbus.Interface(bus.get_object('org.bluez', '/'), + 'org.bluez.Manager') + path = manager.DefaultAdapter() + adapter = dbus.Interface(bus.get_object('org.bluez', path), + 'org.bluez.Adapter') + + path = "/test/agent" + object = Agent(bus, path) + + adapter.RegisterAgent(path) + print("Agent registered") + + mainloop = gobject.MainLoop() + mainloop.run() + + #adapter.UnregisterAgent(path) + #print("Agent unregistered") -- cgit