Home | History | Annotate | Download | only in test
      1 #!/usr/bin/python
      2 
      3 import gobject
      4 
      5 import dbus
      6 import dbus.mainloop.glib
      7 from optparse import OptionParser, make_option
      8 
      9 def device_found(address, properties):
     10 	print "[ " + address + " ]"
     11 
     12 	for key in properties.keys():
     13 		value = properties[key]
     14 		if (key == "Class"):
     15 			print "    %s = 0x%06x" % (key, value)
     16 		else:
     17 			print "    %s = %s" % (key, value)
     18 
     19 def property_changed(name, value):
     20 	if (name == "Discovering" and not value):
     21 		mainloop.quit()
     22 
     23 if __name__ == '__main__':
     24 	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
     25 
     26 	bus = dbus.SystemBus()
     27 	manager = dbus.Interface(bus.get_object("org.bluez", "/"),
     28 							"org.bluez.Manager")
     29 
     30 	option_list = [
     31 			make_option("-i", "--device", action="store",
     32 					type="string", dest="dev_id"),
     33 			]
     34 	parser = OptionParser(option_list=option_list)
     35 
     36 	(options, args) = parser.parse_args()
     37 
     38 	if options.dev_id:
     39 		adapter_path = manager.FindAdapter(options.dev_id)
     40 	else:
     41 		adapter_path = manager.DefaultAdapter()
     42 
     43 	adapter = dbus.Interface(bus.get_object("org.bluez", adapter_path),
     44 							"org.bluez.Adapter")
     45 
     46 	bus.add_signal_receiver(device_found,
     47 			dbus_interface = "org.bluez.Adapter",
     48 					signal_name = "DeviceFound")
     49 
     50 	bus.add_signal_receiver(property_changed,
     51 			dbus_interface = "org.bluez.Adapter",
     52 					signal_name = "PropertyChanged")
     53 
     54 	adapter.StartDiscovery()
     55 
     56 	mainloop = gobject.MainLoop()
     57 	mainloop.run()
     58