| #!/usr/bin/python |
| |
| import sys |
| import dbus |
| |
| def help_text(): |
| print "Usage: %s <device-path> <record-type> <...>" % (sys.argv[0]) |
| 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 /org/neard/nfc0/device0 Text UTF-8 en-US hello,Type2! >" % (sys.argv[0]) |
| print "e.g. < %s /org/neard/nfc0/device0 URI http://www.nfc-forum.com >" % (sys.argv[0]) |
| print "e.g. < %s /org/neard/nfc0/device0 SmartPoster http://www.nfc-forum.com >" % (sys.argv[0]) |
| print "e.g. < %s /org/neard/nfc0/device0 Handover bluetooth,wifi >" % (sys.argv[0]) |
| print "e.g. < %s /org/neard/nfc0/device0 StaticHandover bluetooth,wifi >" % (sys.argv[0]) |
| print "e.g. < %s /org/neard/nfc0/device0 MIME wifi_wsc>" % (sys.argv[0]) |
| print "e.g. < %s /org/neard/nfc0/device0 MIME raw application/xml '<your><xml tags></your>' >" % (sys.argv[0]) |
| sys.exit(1) |
| |
| if len(sys.argv) < 2: |
| help_text() |
| |
| bus = dbus.SystemBus() |
| |
| device = dbus.Interface(bus.get_object("org.neard", sys.argv[1]), |
| "org.neard.Device") |
| |
| if len(sys.argv) == 6: |
| if sys.argv[2] in ["Text"]: |
| device.Push(({ "Type" : "Text", |
| "Encoding" : sys.argv[3], |
| "Language" : sys.argv[4], |
| "Representation" : sys.argv[5] })) |
| elif sys.argv[2] in ["MIME"]: |
| if sys.argv[3] in ["raw"]: |
| device.Push(({ "Type" : "MIME", |
| "MIME" : sys.argv[4], |
| "Payload" : dbus.ByteArray(sys.argv[5]) })) |
| else: |
| help_text() |
| else: |
| help_text() |
| |
| elif len(sys.argv) == 4: |
| if sys.argv[2] in ["URI"]: |
| device.Push(({ "Type" : "URI", |
| "URI" : sys.argv[3] })) |
| elif sys.argv[2] in ["SmartPoster"]: |
| device.Push(({ "Type" : "SmartPoster", |
| "URI" : sys.argv[3] })) |
| elif sys.argv[2] in ["Handover"]: |
| device.Push(({ "Type" : "Handover", |
| "Carrier" : sys.argv[3] })) |
| elif sys.argv[2] in ["StaticHandover"]: |
| device.Push(({ "Type" : "StaticHandover", |
| "Carrier" : sys.argv[3] })) |
| elif sys.argv[2] in ["MIME"]: |
| if sys.argv[3] in ["wifi_wsc"]: |
| device.Push(({ "Type" : "MIME", |
| "MIME" : "application/vnd.wfa.wsc"})) |
| else: |
| help_text() |
| else: |
| help_text() |
| else: |
| help_text() |