diff options
Diffstat (limited to 'test/test-discovery')
-rwxr-xr-x | test/test-discovery | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/test-discovery b/test/test-discovery new file mode 100755 index 0000000..22c88c3 --- /dev/null +++ b/test/test-discovery @@ -0,0 +1,57 @@ +#!/usr/bin/python + +import gobject + +import dbus +import dbus.mainloop.glib +from optparse import OptionParser, make_option + +def device_found(address, properties): + print "[ " + address + " ]" + + for key in properties.keys(): + value = properties[key] + if (key == "Class"): + print " %s = 0x%06x" % (key, value) + else: + print " %s = %s" % (key, value) + +def property_changed(name, value): + if (name == "Discovering" and not value): + mainloop.quit() + +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") + + option_list = [ + make_option("-i", "--device", action="store", + type="string", dest="dev_id"), + ] + parser = OptionParser(option_list=option_list) + + (options, args) = parser.parse_args() + + if options.dev_id: + adapter_path = manager.FindAdapter(options.dev_id) + else: + adapter_path = manager.DefaultAdapter() + + adapter = dbus.Interface(bus.get_object("org.bluez", adapter_path), + "org.bluez.Adapter") + + bus.add_signal_receiver(device_found, + dbus_interface = "org.bluez.Adapter", + signal_name = "DeviceFound") + + bus.add_signal_receiver(property_changed, + dbus_interface = "org.bluez.Adapter", + signal_name = "PropertyChanged") + + adapter.StartDiscovery() + + mainloop = gobject.MainLoop() + mainloop.run() |