Hi Anderson, 2011/6/28 Anderson Lizardo <anderson.lizardo@xxxxxxxxxxxxx>: > Hi Santiago, > > On Tue, Jun 28, 2011 at 8:25 AM, Santiago Carot-Nemesio > <sancane@xxxxxxxxx> wrote: >> --- >> doc/thermometer.txt | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 files changed, 125 insertions(+), 0 deletions(-) >> create mode 100644 doc/thermometer.txt >> >> diff --git a/doc/thermometer.txt b/doc/thermometer.txt >> new file mode 100644 >> index 0000000..9afd2b2 >> --- /dev/null >> +++ b/doc/thermometer.txt >> @@ -0,0 +1,125 @@ >> +BlueZ D-Bus Thermomether API description > > Typo: Thermomether -> Thermometer > >> +**************************************** >> + >> + Santiago Carot-Nemesio <sancane@xxxxxxxxx> >> + >> +Health Thermomether Profile hierarchy >> +===================================== > > Typo: Thermomether -> Thermometer > >> + >> +Service org.bluez >> +Interface org.bluez.Thermometer >> +Object path [variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX >> + >> + >> +Methods void SetProperty(string name, variant value) >> + >> + Changes the value of the specified property. Only >> + read-write properties can be changed. On success >> + this will emit a PropertyChanged signal. >> + >> + Possible Errors: org.bluez.Error.InvalidArguments >> + >> + dict GetProperties() >> + >> + Returns all properties for the interface. See the >> + Properties section for the available properties. >> + >> + RegisterThermometerWatcher(object agent) >> + >> + Registers a watcher to monitor scanned measures.The agent > > Typo: measures -> measurements > >> + will be notified about final. >> + >> + Possible Errors: org.bluez.Error.InvalidArguments >> + >> + UnregisterThermometerWatcher(object agent) >> + >> + Unregisters a watcher. >> + >> + Final and intermediate temperatures won't be notified to >> + this agent any more. >> + >> + Possible Errors: org.bluez.Error.InvalidArguments >> + org.bluez.Error.NotFound >> + >> + EnableIntermediateMeasures(object agent) >> + >> + Enables intermediate measure notifications for this agent > > Typo: measure -> measurement > >> + if the thermometer supports it. >> + >> + Possible Errors: org.bluez.Error.InvalidArguments >> + org.bluez.Error.NotSupported >> + >> + DisableIntermediateMeasures(object agent) > > What about a second argument to RegisterThermometerWatcher() that > enables/disables intermediate measurements ? > >> + >> + Disables intermediate measure notifications for this > > Typo: measure -> measurement > >> + agent. It will disable notifications in the thermometer >> + when the last agent removes the watcher for intermediate >> + measures. > > Typo: measures -> measurements > >> + >> + Possible Errors: org.bluez.Error.InvalidArguments >> + org.bluez.Error.NotFound >> + >> +Signals PropertyChanged(string name, variant value) >> + >> + This signal indicates a changed value of the given >> + property. >> + >> +Properties boolean Intermediate [readonly] >> + >> + True if the thermometer supports intermediate measure > > Typo: measure -> measurement > >> + notifications. >> + >> + uint16 Interval (optional) [readwrite] >> + >> + The Measurement Interval defines the time (in seconds) >> + between measurements. This interval is not related to >> + the intermediates measures and must be defined into > > Typo: intermediates -> intermediate > Typo: measures -> measurements > >> + a valid range. Setting it to zero meaning that no > > Typo: meaning -> means > >> + periodic measurements will be taken. >> + >> + uint16 Minimum (optional) [readonly] > > This is inverted with Maximum. > >> + >> + Defines the maximum value allowed for the interval >> + between periodic measurements. >> + >> + uint16 Maximum (optional) [readonly] >> + >> + Defines the minimuum value allowed for the interval > > Typo: minimuum -> minimum > >> + between periodic measurements. >> + >> + >> +Health Thermometer Watcher hierarchy >> +==================================== >> +Service unique name >> +Interface org.bluez.ThermometerWatcher >> +Object path freely definable >> + >> +Methods void MeasureReceived(dict measure) > > typo (measure vs. measurement) > >> + >> + This callback gets called when a measure has been >> + scanned in the thermometer. The Time entry in the dict >> + will be only present if the device supports storing of >> + data. The time value is expressed in seconds since epoch. >> + The value represented is (mantissa) x (10**exponent) >> + See foot note for special values when treating with >> + health devices. > > IIRC, the "Type" value is also optional. > >> + >> + Dict is defined as below: >> + { >> + "Exponent" : int8, >> + "Mantissa" : int32, >> + "Unit" : ("Celsius" or "Fahrenheit"), >> + "Time" : uint64, >> + "Type" : ("Armpit", "Body", "Ear", "Finger", >> + "Intestines", "Mouth", "Rectum", "Toe", >> + "Tympanum"), >> + "Measurement" : ("Final" or "Intermediate"), >> + } >> + >> + For special cases, the exponent shall always be zero and >> + the mantissa should be one of following values: >> + >> + NRes = -(2**23) >> + NaN = +(2**23-1) >> + INFINITY = (2**23-2) >> + -INFINITY = -(2**23-2) >> -- >> 1.7.5.2 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > > > Regards, Thanks for your notes. I'll submit a patch fixing this issues during the day if nobody has more comments about this API. Best regards. -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html