| #!/usr/bin/python |
| |
| import sys |
| import dbus |
| import neardutils |
| |
| bus = dbus.SystemBus() |
| |
| def extract_list(list): |
| val = "[" |
| for i in list: |
| val += " " + str(i) |
| val += " ]" |
| return val |
| |
| def usage(): |
| print("Usage: %s <command>" % (sys.argv[0]) ) |
| print("") |
| print(" list") |
| print(" powered nfcX [on/off]") |
| print(" poll nfcX [on/off] [Initiator/Target/Dual]") |
| sys.exit(1) |
| |
| if (len(sys.argv) < 2): |
| usage() |
| |
| if (sys.argv[1] == "list"): |
| if (len(sys.argv) < 3): |
| om = dbus.Interface(bus.get_object("org.neard", "/"), |
| "org.freedesktop.DBus.ObjectManager") |
| objects = om.GetManagedObjects() |
| for path, interfaces in objects.iteritems(): |
| if "org.neard.Adapter" not in interfaces: |
| continue |
| |
| print(" [ %s ]" % (path)) |
| |
| props = interfaces["org.neard.Adapter"] |
| |
| for (key, value) in props.items(): |
| if (key == "Protocols"): |
| val = extract_list(value) |
| print(" %s = %s" % (key, val)) |
| |
| elif key in ["Powered", "Polling"]: |
| if value == dbus.Boolean(1): |
| val = "true" |
| else: |
| val = "false" |
| print(" %s = %s" % (key, val)) |
| |
| else: |
| print(" %s = %s" % (key, value)) |
| |
| sys.exit(0) |
| |
| if (sys.argv[1] == "powered"): |
| if (len(sys.argv) < 4): |
| usage() |
| else: |
| path = "/org/neard/" + sys.argv[2] |
| |
| adapter_path = neardutils.find_adapter(path).object_path |
| adapter = dbus.Interface(bus.get_object("org.neard", adapter_path), |
| "org.freedesktop.DBus.Properties") |
| |
| if (sys.argv[3] == "on"): |
| value = dbus.Boolean(1) |
| elif (sys.argv[3] == "off"): |
| value = dbus.Boolean(0) |
| else: |
| value = dbus.Boolean(sys.argv[3]) |
| try: |
| adapter.Set("org.neard.Adapter", "Powered", value) |
| except dbus.DBusException, error: |
| print "%s: %s" % (error._dbus_error_name, error.message) |
| sys.exit(0) |
| |
| if (sys.argv[1] == "poll"): |
| if (len(sys.argv) < 4): |
| usage() |
| else: |
| path = "/org/neard/" + sys.argv[2] |
| |
| adapter = neardutils.find_adapter(path) |
| |
| if (sys.argv[3] == "on"): |
| if (len(sys.argv) == 4): |
| mode = "Initiator" |
| else: |
| mode = sys.argv[4] |
| |
| try: |
| adapter.StartPollLoop(mode) |
| except dbus.DBusException, error: |
| print "%s: %s" % (error._dbus_error_name, error.message) |
| |
| elif (sys.argv[3] == "off"): |
| try: |
| adapter.StopPollLoop() |
| except dbus.DBusException, error: |
| print "%s: %s" % (error._dbus_error_name, error.message) |
| |
| else: |
| usage() |
| |
| sys.exit(0) |
| |
| usage() |