summaryrefslogtreecommitdiff
path: root/doc/thermometer-api.txt
blob: c7c8a5dadee02adaf81455627e3ebd0a3a511523 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
BlueZ D-Bus Thermometer API description
***************************************

	Santiago Carot-Nemesio <sancane@gmail.com>

Health Thermometer Manager hierarchy
====================================

Service		org.bluez
Interface	org.bluez.ThermometerManager1
Object path	[variable prefix]/{hci0,hci1,...}

Methods		RegisterWatcher(object agent)

			Registers a watcher to monitor scanned measurements.
			This agent will be notified about final temperature
			measurements.

			Possible Errors: org.bluez.Error.InvalidArguments

		UnregisterWatcher(object agent)

			Unregisters a watcher.

		EnableIntermediateMeasurement(object agent)

			Enables intermediate measurement notifications
			for this agent. Intermediate measurements will
			be enabled only for thermometers which support it.

			Possible Errors: org.bluez.Error.InvalidArguments

		DisableIntermediateMeasurement(object agent)

			Disables intermediate measurement notifications
			for this agent. It will disable notifications in
			thermometers when the last agent removes the
			watcher for intermediate measurements.

			Possible Errors: org.bluez.Error.InvalidArguments
					org.bluez.Error.NotFound

Health Thermometer Profile hierarchy
====================================

Service		org.bluez
Interface	org.bluez.Thermometer1
Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX


Properties	boolean Intermediate [readonly]

			True if the thermometer supports intermediate
			measurement notifications.

		uint16 Interval (optional) [readwrite]

			The Measurement Interval defines the time (in
			seconds) between measurements. This interval is
			not related to the intermediate measurements and
			must be defined into a valid range. Setting it
			to zero means that no periodic measurements will
			be taken.

		uint16 Maximum (optional) [readonly]

			Defines the maximum value allowed for the interval
			between periodic measurements.

		uint16 Minimum (optional) [readonly]

			Defines the minimum value allowed for the interval
			between periodic measurements.


Health Thermometer Watcher hierarchy
====================================

Service		unique name
Interface	org.bluez.ThermometerWatcher1
Object path	freely definable

Methods		void MeasurementReceived(dict measurement)

			This callback gets called when a measurement has been
			scanned in the thermometer.

			Measurement:

				int16 Exponent:
				int32 Mantissa:

					Exponent and Mantissa values as
					extracted from float value defined by
					IEEE-11073-20601.

					Measurement value is calculated as
					(Mantissa) * (10^Exponent)

					For special cases Exponent is
					set to 0 and Mantissa is set to
					one of following values:

					+(2^23 - 1)	NaN (invalid or
							missing data)
					-(2^23)		NRes
					+(2^23 - 2)	+Infinity
					-(2^23 - 2)	-Infinity

				string Unit:

					Possible values: "celsius" or
							"fahrenheit"

				uint64 Time (optional):

					Time of measurement, if
					supported by device.
					Expressed in seconds since epoch.

				string Type (optional):

					Only present if measurement type
					is known.

					Possible values: "armpit", "body",
						"ear", "finger", "intestines",
						"mouth", "rectum", "toe",
						"tympanum"

				string Measurement:

					Possible values: "final" or
							"intermediate"