| #!/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(" dump <device>") |
| print(" push <device> <type> <...>") |
| print " If type is Text, parameters are <encoding> <language> <representation>" |
| print " If type is URI, parameters are <uri>" |
| print " If type is SmartPoster, parameters are <uri>" |
| print " If type is Handover, parameters are <carrier>" |
| print " If type is StaticHandover, parameters are <carrier>" |
| print " If type is MIME, parameters are <mime_type> (only wifi_wsc and raw)" |
| print " raw is for sending raw payload, parameters are <mime_type> <payload>" |
| print "e.g. < %s push /org/neard/nfc0/device0 Text UTF-8 en-US hello,Type2! >" % (sys.argv[0]) |
| print "e.g. < %s push /org/neard/nfc0/device0 URI http://www.nfc-forum.com >" % (sys.argv[0]) |
| print "e.g. < %s push /org/neard/nfc0/device0 SmartPoster http://www.nfc-forum.com >" % (sys.argv[0]) |
| print "e.g. < %s push /org/neard/nfc0/device0 Handover bluetooth,wifi >" % (sys.argv[0]) |
| print "e.g. < %s push /org/neard/nfc0/device0 StaticHandover bluetooth,wifi >" % (sys.argv[0]) |
| print "e.g. < %s push /org/neard/nfc0/device0 MIME wifi_wsc>" % (sys.argv[0]) |
| print "e.g. < %s push /org/neard/nfc0/device0 MIME raw application/xml '<your><xml tags></your>' >" % (sys.argv[0]) |
| |
| 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.Device" not in interfaces: |
| continue |
| |
| print(" [ %s ]" % (path)) |
| |
| props = interfaces["org.neard.Device"] |
| |
| for (key, value) in props.items(): |
| print(" %s = %s" % (key, value)) |
| |
| sys.exit(0) |
| |
| if (sys.argv[1] == "dump"): |
| 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.Device" not in interfaces: |
| continue |
| |
| print("[ %s ]" % (path)) |
| neardutils.dump_all_records(path) |
| |
| sys.exit(0) |
| else: |
| neardutils.dump_all_records(sys.argv[2]) |
| |
| sys.exit(0) |
| |
| if (sys.argv[1] == "push"): |
| if (len(sys.argv) < 5): |
| usage() |
| |
| device = neardutils.find_device(sys.argv[2]) |
| |
| if len(sys.argv) == 7: |
| if sys.argv[3] in ["Text"]: |
| device.Push(({ "Type" : "Text", |
| "Encoding" : sys.argv[4], |
| "Language" : sys.argv[5], |
| "Representation" : sys.argv[6] })) |
| elif sys.argv[3] in ["MIME"]: |
| if sys.argv[4] in ["raw"]: |
| device.Push(({ "Type" : "MIME", |
| "MIME" : sys.argv[5], |
| "Payload" : dbus.ByteArray(sys.argv[6]) })) |
| else: |
| usage() |
| |
| elif len(sys.argv) == 5: |
| if sys.argv[3] in ["URI"]: |
| device.Push(({ "Type" : "URI", |
| "URI" : sys.argv[4] })) |
| elif sys.argv[3] in ["SmartPoster"]: |
| device.Push(({ "Type" : "SmartPoster", |
| "URI" : sys.argv[4] })) |
| elif sys.argv[3] in ["Handover"]: |
| device.Push(({ "Type" : "Handover", |
| "Carrier" : sys.argv[4] })) |
| elif sys.argv[3] in ["StaticHandover"]: |
| device.Push(({ "Type" : "StaticHandover", |
| "Carrier" : sys.argv[4] })) |
| elif sys.argv[3] in ["MIME"]: |
| if sys.argv[4] in ["wifi_wsc"]: |
| device.Push(({ "Type" : "MIME", |
| "MIME" : "application/vnd.wfa.wsc"})) |
| else: |
| usage() |
| else: |
| usage() |
| |
| sys.exit(0) |