Hi Luiz, On Tue, Sep 8, 2020 at 10:40 AM Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx> wrote: > > Hi Miao, > > On Tue, Aug 18, 2020 at 3:34 PM Miao-chen Chou <mcchou@xxxxxxxxxxxx> wrote: > > > > This modifies the following description to Advertisement Monitor API. > > - Add org.bluez.Error.Failed to RegisterMonitor() method. > > - Add more description about the usage of RegisterMonitor() and > > UnregisterMonitor() methods. > > - Add description about the ranges for the fields in property > > RSSIThresholdsAndTimers. > > > > Reviewed-by: Yun-Hao Chung <howardchung@xxxxxxxxxx> > > Reviewed-by: Manish Mandlik <mmandlik@xxxxxxxxxxxx> > > --- > > > > doc/advertisement-monitor-api.txt | 34 +++++++++++++++++++++++-------- > > 1 file changed, 25 insertions(+), 9 deletions(-) > > > > diff --git a/doc/advertisement-monitor-api.txt b/doc/advertisement-monitor-api.txt > > index 74adbfae9..e09b6fd25 100644 > > --- a/doc/advertisement-monitor-api.txt > > +++ b/doc/advertisement-monitor-api.txt > > @@ -49,7 +49,7 @@ Properties string Type [read-only] > > org.bluez.AdvertisementMonitorManager1 for the available > > options. > > > > - (Int16, Uint16, Int16, Uint16) RSSIThreshholdsAndTimers [read-only, optional] > > + (Int16, Uint16, Int16, Uint16) RSSIThresholdsAndTimers [read-only, optional] > > > > This contains HighRSSIThreshold, HighRSSIThresholdTimer, > > LowRSSIThreshold, LowRSSIThresholdTimer in order. The > > @@ -66,7 +66,11 @@ Properties string Type [read-only] > > RSSIs of the received advertisement(s) during > > LowRSSIThresholdTimer do not reach LowRSSIThreshold. > > > > - array{(uint8, uint8, string)} Patterns [read-only, optional] > > + The valid range of a RSSI is -127 to +20 dBm while 127 > > + dBm indicates unset. The valid range of a timer is 1 to > > + 300 seconds while 0 indicates unset. > > + > > + array{(uint8, uint8, array{byte})} Patterns [read-only, optional] > > > > If Type is set to 0x01, this must exist and has at least > > one entry in the array. > > @@ -80,8 +84,9 @@ Properties string Type [read-only] > > See https://www.bluetooth.com/specifications/ > > assigned-numbers/generic-access-profile/ for > > the possible allowed value. > > - string content_of_pattern > > - This is the value of the pattern. > > + array{byte} content_of_pattern > > + This is the value of the pattern. The maximum > > + length of the bytes is 31. > > > > Advertisement Monitor Manager hierarchy > > ======================================= > > @@ -91,20 +96,31 @@ Object path /org/bluez/{hci0,hci1,...} > > > > Methods void RegisterMonitor(object application) > > > > - This registers a hierarchy of advertisement monitors. > > + This registers the root path of a hierarchy of > > + advertisement monitors. > > The application object path together with the D-Bus > > system bus connection ID define the identification of > > the application registering advertisement monitors. > > + Once a root path is registered by a client via this > > + method, the client can freely expose/unexpose > > + advertisement monitors without re-registering the root > > + path again. After use, the client should call > > + UnregisterMonitor() method to invalidate the > > + advertisement monitors. > > > > Possible errors: org.bluez.Error.InvalidArguments > > org.bluez.Error.AlreadyExists > > + org.bluez.Error.Failed > > > > void UnregisterMonitor(object application) > > > > - This unregisters advertisement monitors that have been > > - previously registered. The object path parameter must > > - match the same value that has been used on > > - registration. > > + This unregisters a hierarchy of advertisement monitors > > + that has been previously registered. The object path > > + parameter must match the same value that has been used > > + on registration. Upon unregistration, the advertisement > > + monitor(s) should expect to receive Release() method as > > + the signal that the advertisement monitor(s) has been > > + deactivated. > > > > Possible errors: org.bluez.Error.InvalidArguments > > org.bluez.Error.DoesNotExist > > -- > > 2.26.2 > > These are still experimental so you will need to use EXPERIMENTAL > version when declaring the methods/properties so it only gets enabled > when the experimental flag is passed to bluetoothd. g_dbus_register_interface() does not allow to have all methods and properties marked as experimental, so at least SupportedFeatures should be non-experimental. > > > -- > Luiz Augusto von Dentz Thanks, Miao