Tizen 2.0 Release
[profile/ivi/bluez.git] / test / test-thermometer
1 #!/usr/bin/python
2
3 from __future__ import absolute_import, print_function, unicode_literals
4
5 '''
6 Thermometer test script
7 '''
8
9 import gobject
10
11 import sys
12 import dbus
13 import dbus.service
14 import dbus.mainloop.glib
15 from optparse import OptionParser, make_option
16
17 class Watcher(dbus.service.Object):
18         @dbus.service.method("org.bluez.ThermometerWatcher",
19                                         in_signature="a{sv}", out_signature="")
20         def MeasurementReceived(self, measure):
21                 print(measure["Measurement"], " measurement received")
22                 print("Exponent: ", measure["Exponent"])
23                 print("Mantissa: ", measure["Mantissa"])
24                 print("Unit: ", measure["Unit"])
25
26                 if "Time" in measure:
27                         print("Time: ", measure["Time"])
28
29                 if "Type" in measure:
30                         print("Type: ", measure["Type"])
31
32 def property_changed(name, value):
33
34         print("PropertyChanged('%s', '%s')" % (name, value))
35
36 if __name__ == "__main__":
37         dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
38
39         bus = dbus.SystemBus()
40
41         manager = dbus.Interface(bus.get_object("org.bluez", "/"),
42                                         "org.bluez.Manager")
43
44         option_list = [
45                 make_option("-i", "--adapter", action="store",
46                         type="string", dest="adapter"),
47                 make_option("-b", "--device", action="store",
48                         type="string", dest="address"),
49                 ]
50
51         parser = OptionParser(option_list=option_list)
52
53         (options, args) = parser.parse_args()
54
55         if not options.address:
56                 print("Usage: %s [-i <adapter>] -b <bdaddr> [command]" % (sys.argv[0]))
57                 print("Possible commands:")
58                 print("\tEnableIntermediateMeasurement")
59                 sys.exit(1)
60
61         if options.adapter:
62                 adapter_path = manager.FindAdapter(options.adapter)
63         else:
64                 adapter_path = manager.DefaultAdapter()
65
66         adapter = dbus.Interface(bus.get_object("org.bluez", adapter_path),
67                                                         "org.bluez.Adapter")
68
69         device_path = adapter.FindDevice(options.address)
70
71         bus.add_signal_receiver(property_changed, bus_name="org.bluez",
72                                 dbus_interface="org.bluez.Thermometer",
73                                 signal_name="PropertyChanged")
74
75         thermometer = dbus.Interface(bus.get_object("org.bluez",
76                                         device_path), "org.bluez.Thermometer")
77
78         path = "/test/watcher"
79         watcher = Watcher(bus, path)
80
81         thermometer.RegisterWatcher(path)
82
83         if len(args) > 0:
84                 if args[0] == "EnableIntermediateMeasurement":
85                         thermometer.EnableIntermediateMeasurement(path)
86                 else:
87                         print("unknown command")
88                         sys.exit(1)
89
90         mainloop = gobject.MainLoop()
91         mainloop.run()