diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-09-01 22:34:04 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-09-01 22:34:04 +0200 |
commit | cf92b6dc9c0fe11ace1a9ca4e7d18cb411ba56ba (patch) | |
tree | 54bfe64770b761a0148972fd9446921d446ef895 /test | |
parent | b2d5d2c1062af55008c5759c0fee2a1aecd83f66 (diff) |
Move test scripts into test directory
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 5 | ||||
-rwxr-xr-x | test/list-devices | 52 | ||||
-rw-r--r-- | test/service-did.xml | 33 | ||||
-rw-r--r-- | test/service-ftp.xml | 37 | ||||
-rw-r--r-- | test/service-opp.xml | 50 | ||||
-rw-r--r-- | test/service-record.dtd | 66 | ||||
-rw-r--r-- | test/service-spp.xml | 25 | ||||
-rwxr-xr-x | test/simple-agent | 112 | ||||
-rwxr-xr-x | test/simple-service | 127 | ||||
-rwxr-xr-x | test/test-adapter | 91 | ||||
-rwxr-xr-x | test/test-device | 128 | ||||
-rwxr-xr-x | test/test-discovery | 43 | ||||
-rwxr-xr-x | test/test-manager | 27 |
13 files changed, 795 insertions, 1 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index 16b80e7d..ba2bdc65 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -39,6 +39,9 @@ endif INCLUDES = -I$(top_srcdir)/common -EXTRA_DIST = apitest hsplay hsmicro bdaddr.8 dbusdef.py +EXTRA_DIST = apitest hsplay hsmicro bdaddr.8 dbusdef.py \ + list-devices test-discovery test-manager test-adapter test-device \ + simple-service simple-agent service-record.dtd \ + service-did.xml service-spp.xml service-opp.xml service-ftp.xml MAINTAINERCLEANFILES = Makefile.in diff --git a/test/list-devices b/test/list-devices new file mode 100755 index 00000000..ec6c580a --- /dev/null +++ b/test/list-devices @@ -0,0 +1,52 @@ +#!/usr/bin/python + +import dbus + +bus = dbus.SystemBus() + +manager = dbus.Interface(bus.get_object("org.bluez", "/"), + "org.bluez.Manager") + +def extract_uuids(uuid_list): + list = "" + for uuid in uuid_list: + if (uuid.endswith("-0000-1000-8000-00805f9b34fb")): + if (uuid.startswith("0000")): + val = "0x" + uuid[4:8] + else: + val = "0x" + uuid[0:8] + else: + val = str(uuid) + list = list + val + " " + return list + +adapter_list = manager.ListAdapters() + +for i in adapter_list: + adapter = dbus.Interface(bus.get_object("org.bluez", i), + "org.bluez.Adapter") + print "[ " + i + " ]" + + properties = adapter.GetProperties() + for key in properties.keys(): + print " %s = %s" % (key, properties[key]) + + device_list = adapter.ListDevices() + + for n in device_list: + device = dbus.Interface(bus.get_object("org.bluez", n), + "org.bluez.Device") + print " [ " + n + " ]" + + properties = device.GetProperties() + for key in properties.keys(): + value = properties[key] + if (key == "UUIDs"): + list = extract_uuids(value) + print " %s = %s" % (key, list) + elif (key == "Class"): + print " %s = 0x%06x" % (key, value) + else: + print " %s = %s" % (key, value) + + print diff --git a/test/service-did.xml b/test/service-did.xml new file mode 100644 index 00000000..52eb68c0 --- /dev/null +++ b/test/service-did.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<record> + <attribute id="0x0001"> + <sequence> + <uuid value="0x1200"/> + </sequence> + </attribute> + + <attribute id="0x0200"> + <uint16 value="0x0102" name="id"/> + </attribute> + + <attribute id="0x0201"> + <uint16 value="0x0a12" name="vendor"/> + </attribute> + + <attribute id="0x0202"> + <uint16 value="0x4711" name="product"/> + </attribute> + + <attribute id="0x0203"> + <uint16 value="0x0000" name="version"/> + </attribute> + + <attribute id="0x0204"> + <boolean value="true"/> + </attribute> + + <attribute id="0x0205"> + <uint16 value="0x0002" name="source"/> + </attribute> +</record> diff --git a/test/service-ftp.xml b/test/service-ftp.xml new file mode 100644 index 00000000..1bda8857 --- /dev/null +++ b/test/service-ftp.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<record> + <attribute id="0x0001"> + <sequence> + <uuid value="0x1106"/> + </sequence> + </attribute> + + <attribute id="0x0004"> + <sequence> + <sequence> + <uuid value="0x0100"/> + </sequence> + <sequence> + <uuid value="0x0003"/> + <uint8 value="23" name="channel"/> + </sequence> + <sequence> + <uuid value="0x0008"/> + </sequence> + </sequence> + </attribute> + + <attribute id="0x0009"> + <sequence> + <sequence> + <uuid value="0x1106"/> + <uint16 value="0x0100" name="version"/> + </sequence> + </sequence> + </attribute> + + <attribute id="0x0100"> + <text value="OBEX File Transfer" name="name"/> + </attribute> +</record> diff --git a/test/service-opp.xml b/test/service-opp.xml new file mode 100644 index 00000000..351b4a41 --- /dev/null +++ b/test/service-opp.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<record> + <attribute id="0x0001"> + <sequence> + <uuid value="0x1105"/> + </sequence> + </attribute> + + <attribute id="0x0004"> + <sequence> + <sequence> + <uuid value="0x0100"/> + </sequence> + <sequence> + <uuid value="0x0003"/> + <uint8 value="23" name="channel"/> + </sequence> + <sequence> + <uuid value="0x0008"/> + </sequence> + </sequence> + </attribute> + + <attribute id="0x0009"> + <sequence> + <sequence> + <uuid value="0x1105"/> + <uint16 value="0x0100" name="version"/> + </sequence> + </sequence> + </attribute> + + <attribute id="0x0100"> + <text value="OBEX Object Push" name="name"/> + </attribute> + + <attribute id="0x0303"> + <sequence> + <uint8 value="0x01"/> + <uint8 value="0x01"/> + <uint8 value="0x02"/> + <uint8 value="0x03"/> + <uint8 value="0x04"/> + <uint8 value="0x05"/> + <uint8 value="0x06"/> + <uint8 value="0xff"/> + </sequence> + </attribute> +</record> diff --git a/test/service-record.dtd b/test/service-record.dtd new file mode 100644 index 00000000..f53be5d0 --- /dev/null +++ b/test/service-record.dtd @@ -0,0 +1,66 @@ +<!ELEMENT record (attribute)*> + +<!ELEMENT attribute (sequence|alternate|text|url|uuid|boolean|uint8|uint16|uint32|uint64|nil)+> +<!ATTLIST attribute id CDATA #REQUIRED> + +<!ELEMENT sequence (sequence|alternate|text|url|uuid|boolean|uint8|uint16|uint32|uint64|uint128|int8|int16|int32|int64|int128|nil)+> + +<!ELEMENT alternate (sequence|alternate|text|url|uuid|boolean|uint8|uint16|uint32|uint64|uint128|int8|int16|int32|int64|int128|nil)+> + +<!ELEMENT text EMPTY> +<!ATTLIST text value CDATA #REQUIRED> +<!ATTLIST text name CDATA> +<!ATTLIST text encoding (normal|hex) "normal"> + +<!ELEMENT url EMPTY> +<!ATTLIST url value CDATA #REQUIRED> +<!ATTLIST url name CDATA> + +<!ELEMENT uuid EMPTY> +<!ATTLIST uuid value CDATA #REQUIRED> + +<!ELEMENT boolean EMPTY> +<!ATTLIST boolean value CDATA #REQUIRED> +<!ATTLIST boolean name CDATA> + +<!ELEMENT uint8 EMPTY> +<!ATTLIST uint8 value CDATA #REQUIRED> +<!ATTLIST uint8 name CDATA> + +<!ELEMENT uint16 EMPTY> +<!ATTLIST uint16 value CDATA #REQUIRED> +<!ATTLIST uint16 name CDATA> + +<!ELEMENT uint32 EMPTY> +<!ATTLIST uint32 value CDATA #REQUIRED> +<!ATTLIST uint32 name CDATA> + +<!ELEMENT uint64 EMPTY> +<!ATTLIST uint64 value CDATA #REQUIRED> +<!ATTLIST uint64 name CDATA> + +<!ELEMENT uint128 EMPTY> +<!ATTLIST uint128 value CDATA #REQUIRED> +<!ATTLIST uint128 name CDATA> + +<!ELEMENT int8 EMPTY> +<!ATTLIST int8 value CDATA #REQUIRED> +<!ATTLIST int8 name CDATA> + +<!ELEMENT int16 EMPTY> +<!ATTLIST int16 value CDATA #REQUIRED> +<!ATTLIST int16 name CDATA> + +<!ELEMENT int32 EMPTY> +<!ATTLIST int32 value CDATA #REQUIRED> +<!ATTLIST int32 name CDATA> + +<!ELEMENT int64 EMPTY> +<!ATTLIST int64 value CDATA #REQUIRED> +<!ATTLIST int64 name CDATA> + +<!ELEMENT int128 EMPTY> +<!ATTLIST int128 value CDATA #REQUIRED> +<!ATTLIST int128 name CDATA> + +<!ELEMENT nil EMPTY> diff --git a/test/service-spp.xml b/test/service-spp.xml new file mode 100644 index 00000000..2b156c3f --- /dev/null +++ b/test/service-spp.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" ?> + +<record> + <attribute id="0x0001"> + <sequence> + <uuid value="0x1101"/> + </sequence> + </attribute> + + <attribute id="0x0004"> + <sequence> + <sequence> + <uuid value="0x0100"/> + </sequence> + <sequence> + <uuid value="0x0003"/> + <uint8 value="23" name="channel"/> + </sequence> + </sequence> + </attribute> + + <attribute id="0x0100"> + <text value="COM5" name="name"/> + </attribute> +</record> diff --git a/test/simple-agent b/test/simple-agent new file mode 100755 index 00000000..0d3dc1f7 --- /dev/null +++ b/test/simple-agent @@ -0,0 +1,112 @@ +#!/usr/bin/python + +import gobject + +import sys +import dbus +import dbus.service +import dbus.mainloop.glib + +class Rejected(dbus.DBusException): + _dbus_error_name = "org.bluez.Error.Rejected" + +class Agent(dbus.service.Object): + exit_on_release = True + + def set_exit_on_release(self, exit_on_release): + self.exit_on_release = exit_on_release + + @dbus.service.method("org.bluez.Agent", + in_signature="", out_signature="") + def Release(self): + print "Release" + if self.exit_on_release: + mainloop.quit() + + @dbus.service.method("org.bluez.Agent", + in_signature="os", out_signature="") + def Authorize(self, device, uuid): + print "Authorize (%s, %s)" % (device, uuid) + + @dbus.service.method("org.bluez.Agent", + in_signature="o", out_signature="s") + def RequestPinCode(self, device): + print "RequestPinCode (%s)" % (device) + return raw_input("Enter PIN Code: ") + + @dbus.service.method("org.bluez.Agent", + in_signature="o", out_signature="u") + def RequestPasskey(self, device): + print "RequestPasskey (%s)" % (device) + passkey = raw_input("Enter passkey: ") + return dbus.UInt32(passkey) + + @dbus.service.method("org.bluez.Agent", + in_signature="ou", out_signature="") + def DisplayPasskey(self, device, passkey): + print "DisplayPasskey (%s, %d)" % (device, passkey) + + @dbus.service.method("org.bluez.Agent", + in_signature="ou", out_signature="") + def RequestConfirmation(self, device, passkey): + print "RequestConfirmation (%s, %d)" % (device, passkey) + confirm = raw_input("Confirm passkey (yes/no): ") + if (confirm == "yes"): + return + raise Rejected("Passkey doesn't match") + + @dbus.service.method("org.bluez.Agent", + in_signature="s", out_signature="") + def ConfirmModeChange(self, mode): + print "ConfirmModeChange (%s)" % (mode) + + @dbus.service.method("org.bluez.Agent", + in_signature="", out_signature="") + def Cancel(self): + print "Cancel" + +def create_device_reply(device): + print "New device (%s)" % (device) + mainloop.quit() + +def create_device_error(error): + print "Creating device failed: %s" % (error) + 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") + + if len(sys.argv) > 1: + path = manager.FindAdapter(sys.argv[1]) + else: + path = manager.DefaultAdapter() + + adapter = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Adapter") + + path = "/test/agent" + agent = Agent(bus, path) + + mainloop = gobject.MainLoop() + + if len(sys.argv) > 2: + if len(sys.argv) > 3: + device = adapter.FindDevice(sys.argv[2]) + adapter.RemoveDevice(device) + + agent.set_exit_on_release(False) + adapter.CreatePairedDevice(sys.argv[2], path, "DisplayYesNo", + reply_handler=create_device_reply, + error_handler=create_device_error) + else: + adapter.RegisterAgent(path, "DisplayYesNo") + print "Agent registered" + + mainloop.run() + + #adapter.UnregisterAgent(path) + #print "Agent unregistered" diff --git a/test/simple-service b/test/simple-service new file mode 100755 index 00000000..5279a3a6 --- /dev/null +++ b/test/simple-service @@ -0,0 +1,127 @@ +#!/usr/bin/python + +import sys +import time +import dbus + +xml = ' \ +<?xml version="1.0" encoding="UTF-8" ?> \ +<record> \ + <attribute id="0x0001"> \ + <sequence> \ + <uuid value="0x1101"/> \ + </sequence> \ + </attribute> \ + \ + <attribute id="0x0002"> \ + <uint32 value="0"/> \ + </attribute> \ + \ + <attribute id="0x0003"> \ + <uuid value="00001101-0000-1000-8000-00805f9b34fb"/> \ + </attribute> \ + \ + <attribute id="0x0004"> \ + <sequence> \ + <sequence> \ + <uuid value="0x0100"/> \ + </sequence> \ + <sequence> \ + <uuid value="0x0003"/> \ + <uint8 value="23"/> \ + </sequence> \ + </sequence> \ + </attribute> \ + \ + <attribute id="0x0005"> \ + <sequence> \ + <uuid value="0x1002"/> \ + </sequence> \ + </attribute> \ + \ + <attribute id="0x0006"> \ + <sequence> \ + <uint16 value="0x656e"/> \ + <uint16 value="0x006a"/> \ + <uint16 value="0x0100"/> \ + </sequence> \ + </attribute> \ + \ + <attribute id="0x0007"> \ + <uint32 value="0"/> \ + </attribute> \ + \ + <attribute id="0x0008"> \ + <uint8 value="0xff"/> \ + </attribute> \ + \ + <attribute id="0x0009"> \ + <sequence> \ + <sequence> \ + <uuid value="0x1101"/> \ + <uint16 value="0x0100"/> \ + </sequence> \ + </sequence> \ + </attribute> \ + \ + <attribute id="0x000a"> \ + <url value="http://www.bluez.org/"/> \ + </attribute> \ + \ + <attribute id="0x000b"> \ + <url value="http://www.bluez.org/"/> \ + </attribute> \ + \ + <attribute id="0x000c"> \ + <url value="http://www.bluez.org/"/> \ + </attribute> \ + \ + <attribute id="0x0100"> \ + <text value="Serial Port"/> \ + </attribute> \ + \ + <attribute id="0x0101"> \ + <text value="Serial Port Service"/> \ + </attribute> \ + \ + <attribute id="0x0102"> \ + <text value="BlueZ"/> \ + </attribute> \ + \ + <attribute id="0x0200"> \ + <sequence> \ + <uint16 value="0x0100"/> \ + </sequence> \ + </attribute> \ + \ + <attribute id="0x0201"> \ + <uint32 value="0"/> \ + </attribute> \ +</record> \ +' + +bus = dbus.SystemBus() +manager = dbus.Interface(bus.get_object("org.bluez", "/"), + "org.bluez.Manager") + +if len(sys.argv) > 1: + path = manager.FindAdapter(sys.argv[1]) +else: + path = manager.DefaultAdapter() + +adapter = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Adapter") + +handle = adapter.AddServiceRecord(xml) + +print "Service record with handle 0x%04x added" % (handle) + +print "Press CTRL-C to remove service record" + +try: + time.sleep(1000) + print "Terminating session" +except: + pass + +adapter.RemoveServiceRecord(dbus.UInt32(handle)) diff --git a/test/test-adapter b/test/test-adapter new file mode 100755 index 00000000..2ec8adef --- /dev/null +++ b/test/test-adapter @@ -0,0 +1,91 @@ +#!/usr/bin/python + +import sys +import dbus +import time + +bus = dbus.SystemBus() + +manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager") + +adapter = dbus.Interface(bus.get_object("org.bluez", manager.DefaultAdapter()), + "org.bluez.Adapter") + +if (len(sys.argv) < 2): + print "Usage: %s <command>" % (sys.argv[0]) + print "" + print " address" + print " name [name]" + print " mode [mode]" + print " requestmode <mode>" + print " discoverabletimeout [timeout]" + print " periodicdiscovery [on/off]" + print " addservicerecord <file>" + sys.exit(1) + +if (sys.argv[1] == "address"): + properties = adapter.GetProperties() + print properties["Address"] + sys.exit(0) + +if (sys.argv[1] == "name"): + if (len(sys.argv) < 3): + properties = adapter.GetProperties() + print properties["Name"] + else: + adapter.SetProperty("Name", sys.argv[2]) + sys.exit(0) + +if (sys.argv[1] == "mode"): + if (len(sys.argv) < 3): + properties = adapter.GetProperties() + print properties["Mode"] + else: + adapter.SetProperty("Mode", sys.argv[2]) + sys.exit(0) + +if (sys.argv[1] == "requestmode"): + if (len(sys.argv) < 3): + print "Need mode parameter" + else: + adapter.RequestMode(sys.argv[2]) + sys.exit(0) + +if (sys.argv[1] == "discoverabletimeout"): + if (len(sys.argv) < 3): + properties = adapter.GetProperties() + print properties["DiscoverableTimeout"] + else: + timeout = dbus.UInt32(sys.argv[2]) + adapter.SetProperty("DiscoverableTimeout", timeout) + sys.exit(0) + +if (sys.argv[1] == "periodicdiscovery"): + if (len(sys.argv) < 3): + properties = adapter.GetProperties() + print properties["PeriodicDiscovery"] + else: + if (sys.argv[2] == "on"): + value = dbus.Boolean(1) + elif (sys.argv[2] == "off"): + value = dbus.Boolean(0) + else: + value = dbus.Boolean(sys.argv[2]) + adapter.SetProperty("PeriodicDiscovery", value) + time.sleep(120) + sys.exit(0) + +if (sys.argv[1] == "addservicerecord"): + if (len(sys.argv) < 3): + print "Need file parameter" + else: + f = open(sys.argv[2]) + record = f.read() + f.close() + handle = adapter.AddServiceRecord(record) + print "0x%x" % (handle) + time.sleep(120) + sys.exit(0) + +print "Unknown command" +sys.exit(1) diff --git a/test/test-device b/test/test-device new file mode 100755 index 00000000..f8f2d14a --- /dev/null +++ b/test/test-device @@ -0,0 +1,128 @@ +#!/usr/bin/python + +import sys +import dbus +import re + +bus = dbus.SystemBus() + +manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager") + +adapter = dbus.Interface(bus.get_object("org.bluez", manager.DefaultAdapter()), + "org.bluez.Adapter") + +if (len(sys.argv) < 2): + print "Usage: %s <command>" % (sys.argv[0]) + print "" + print " list" + print " create <address>" + print " remove <address|path>" + print " discover <address> [pattern]" + print " class <address>" + print " name <address>" + print " alias <address> [alias]" + print " trusted <address> [yes/no]" + sys.exit(1) + +if (sys.argv[1] == "list"): + list = adapter.ListDevices() + print list + sys.exit(0) + +if (sys.argv[1] == "create"): + if (len(sys.argv) < 3): + print "Need address parameter" + else: + device = adapter.CreateDevice(sys.argv[2]) + print device + sys.exit(0) + +if (sys.argv[1] == "remove"): + if (len(sys.argv) < 3): + print "Need address or object path parameter" + else: + try: + path = adapter.FindDevice(sys.argv[2]) + except: + path = sys.argv[2] + adapter.RemoveDevice(path) + sys.exit(0) + +if (sys.argv[1] == "discover"): + if (len(sys.argv) < 3): + print "Need address parameter" + else: + path = adapter.FindDevice(sys.argv[2]) + device = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device") + if (len(sys.argv) < 4): + pattern = "" + else: + pattern = sys.argv[3] + services = device.DiscoverServices(pattern); + for key in services.keys(): + p = re.compile(">.*?<") + xml = p.sub("><", services[key].replace("\n", "")) + print "[ 0x%5x ]" % (key) + print xml + print + sys.exit(0) + +if (sys.argv[1] == "class"): + if (len(sys.argv) < 3): + print "Need address parameter" + else: + path = adapter.FindDevice(sys.argv[2]) + device = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device") + properties = device.GetProperties() + print "0x%06x" % (properties["Class"]) + sys.exit(0) + +if (sys.argv[1] == "name"): + if (len(sys.argv) < 3): + print "Need address parameter" + else: + path = adapter.FindDevice(sys.argv[2]) + device = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device") + properties = device.GetProperties() + print properties["Name"] + sys.exit(0) + +if (sys.argv[1] == "alias"): + if (len(sys.argv) < 3): + print "Need address parameter" + else: + path = adapter.FindDevice(sys.argv[2]) + device = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device") + if (len(sys.argv) < 4): + properties = device.GetProperties() + print properties["Alias"] + else: + device.SetProperty("Alias", sys.argv[3]) + sys.exit(0) + +if (sys.argv[1] == "trusted"): + if (len(sys.argv) < 3): + print "Need address parameter" + else: + path = adapter.FindDevice(sys.argv[2]) + device = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Device") + if (len(sys.argv) < 4): + properties = device.GetProperties() + print properties["Trusted"] + else: + if (sys.argv[3] == "yes"): + value = dbus.Boolean(1) + elif (sys.argv[3] == "no"): + value = dbus.Boolean(0) + else: + value = dbus.Boolean(sys.argv[3]) + device.SetProperty("Trusted", value) + sys.exit(0) + +print "Unknown command" +sys.exit(1) diff --git a/test/test-discovery b/test/test-discovery new file mode 100755 index 00000000..874de66f --- /dev/null +++ b/test/test-discovery @@ -0,0 +1,43 @@ +#!/usr/bin/python + +import gobject + +import dbus +import dbus.mainloop.glib + +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 discovery_completed(): + 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") + + path = manager.DefaultAdapter() + adapter = dbus.Interface(bus.get_object("org.bluez", path), + "org.bluez.Adapter") + + bus.add_signal_receiver(device_found, + dbus_interface = "org.bluez.Adapter", + signal_name = "DeviceFound") + + bus.add_signal_receiver(discovery_completed, + dbus_interface = "org.bluez.Adapter", + signal_name = "DiscoveryCompleted") + + adapter.DiscoverDevices() + + mainloop = gobject.MainLoop() + mainloop.run() diff --git a/test/test-manager b/test/test-manager new file mode 100755 index 00000000..759b6a48 --- /dev/null +++ b/test/test-manager @@ -0,0 +1,27 @@ +#!/usr/bin/python + +import gobject + +import dbus +import dbus.mainloop.glib + +def adapter_added(path): + print "Adapter with path %s added" % (path) + +def adapter_removed(path): + print "Adapter with path %s removed" % (path) + +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.Manager') + + manager.connect_to_signal("AdapterAdded", adapter_added) + + manager.connect_to_signal("AdapterRemoved", adapter_removed) + + mainloop = gobject.MainLoop() + mainloop.run() |