From: Mikel Astiz <mikel.astiz@xxxxxxxxxxxx> Extend the test script with an optional filter to let the user operate on services matching a given UUID. --- test/test-service | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/test/test-service b/test/test-service index 48426f9..f8dee66 100755 --- a/test/test-service +++ b/test/test-service @@ -22,6 +22,8 @@ mainloop = GObject.MainLoop() option_list = [ make_option("-i", "--adapter", action="store", type="string", dest="adap_id"), + make_option("-u", "--uuid", action="store", + type="string", dest="uuid"), ] description="Test script to operate on org.bluez.Service1 interfaces" @@ -29,8 +31,8 @@ usage = "usage: %prog [options] <command> [<args>]" epilog=""" Commands: list [<address>] - connect <address> <service-path-suffix> - disconnect <address> <service-path-suffix> + connect [<address> [<service-path-suffix>]] + disconnect [<address> [<service-path-suffix>]] """ @@ -47,6 +49,10 @@ if len(args) < 1: parser.print_help() sys.exit(1) +uuid = None +if options.uuid: + uuid = bluezutils.parse_uuid(options.uuid) + if args[0] == "list": if len(args) > 2: parser.print_help() @@ -84,6 +90,10 @@ if args[0] == "list": if properties["Device"] != path: continue + elif uuid: + if properties["UUID"] != uuid: + continue + del(properties["UUID"]) print(" [ " + service_path + " ]") @@ -103,23 +113,31 @@ if args[0] == "list": sys.exit(0) def service_do(func): - if len(args) < 3: - parser.print_help() + if len(args) < 3 and not(uuid): + print("ERROR: Either service suffix or UUID must be specified") sys.exit(1) objects = bluezutils.get_managed_objects() adapter = bluezutils.find_adapter_in_objects(objects, options.adap_id) - device = bluezutils.find_device_in_objects(objects, args[1], + + device = None + if len(args) >= 2: + device = bluezutils.find_device_in_objects(objects, args[1], options.adap_id) - path_suffix = args[2] + path_suffix = None + if len(args) >= 3: + path_suffix = args[2] + found = False for path, ifaces in objects.iteritems(): service = ifaces.get(SERVICE_INTERFACE) if service is None: continue - if device.object_path != service["Device"]: + if device and device.object_path != service["Device"]: + continue + if uuid and uuid != service["UUID"]: continue - if not(path.endswith(path_suffix)): + if path_suffix and not(path.endswith(path_suffix)): continue try: found = True -- 1.8.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html