Tizen 2.0 Release
[framework/connectivity/neard.git] / test / write-tag
1 #!/usr/bin/python
2
3 import sys
4 import dbus
5
6 def help_text():
7         print "Usage: %s <tag-path> <record-type> <...>" % (sys.argv[0])
8         print "         If type is Text, parameters are <encoding> <language> <representation>"
9         print "         If type is URI, parameters are <uri>"
10         print "         If type is SmartPoster, parameters are <uri>"
11         print "e.g. < %s /org/neard/nfc0/tag0 Text UTF-8 en-US hello,Type2! >" % (sys.argv[0])
12         print "e.g. < %s /org/neard/nfc0/tag0 URI http://www.nfc-forum.com >" % (sys.argv[0])
13         print "e.g. < %s /org/neard/nfc0/tag0 SmartPoster http://www.nfc-forum.com >" % (sys.argv[0])
14         print "e.g. < %s /org/neard/nfc0/tag0 Raw <NDEF_file> >" % (sys.argv[0])
15         sys.exit(1)
16
17 if len(sys.argv) < 2:
18         help_text()
19
20 bus = dbus.SystemBus()
21
22 tag = dbus.Interface(bus.get_object("org.neard", sys.argv[1]),
23                                                 "org.neard.Tag")
24
25 if len(sys.argv) == 6:
26         if sys.argv[2] in ["Text"]:
27                 tag.Write(({ "Type" : "Text",
28                                 "Encoding" : sys.argv[3],
29                                 "Language" : sys.argv[4],
30                                 "Representation" : sys.argv[5] }))
31         else:
32                 help_text()
33
34 elif len(sys.argv) == 4:
35         if sys.argv[2] in ["URI"]:
36                 tag.Write(({ "Type" : "URI",
37                                 "URI" : sys.argv[3] }))
38         elif sys.argv[2] in ["SmartPoster"]:
39                 tag.Write(({ "Type" : "SmartPoster",
40                                 "URI" : sys.argv[3] }))
41         elif sys.argv[2] in ["Raw"]:
42                 ndef = file(sys.argv[3]).read().rsplit(' ')
43                 ndef_stream = bytearray()
44
45                 for b in ndef:
46                         ndef_stream.append(int(b, 16))
47
48                 tag.Write(({ "Type" : "Raw",
49                                 "NDEF" : dbus.ByteArray(ndef_stream) }))
50         else:
51                 help_text()
52 else:
53         help_text()