Message ID | 20200818152612.BlueZ.v1.7.Iee7e9d13c78dd02c5b283a203dea11a4a4ffa7cc@changeid (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [BlueZ,v1,1/7] adv_monitor: Introduce org.bluez.AdvertisementMonitorManager1 interface | expand |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. While we are preparing for reviewing the patches, we found the following issue/warning. Test Result: checkgitlint Failed Outputs: 1: T1 Title exceeds max length (75>72): "doc/advertisement-monitor-api: Update Advertisement Monitor API description" --- Regards, Linux Bluetooth
Hi Miao, On Tue, Aug 18, 2020 at 3:34 PM Miao-chen Chou <mcchou@chromium.org> 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@google.com> > Reviewed-by: Manish Mandlik <mmandlik@chromium.org> > --- > > 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.
Hi Luiz, On Tue, Sep 8, 2020 at 10:40 AM Luiz Augusto von Dentz <luiz.dentz@gmail.com> wrote: > > Hi Miao, > > On Tue, Aug 18, 2020 at 3:34 PM Miao-chen Chou <mcchou@chromium.org> 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@google.com> > > Reviewed-by: Manish Mandlik <mmandlik@chromium.org> > > --- > > > > 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
Hi Miao, On Wed, Sep 9, 2020 at 9:53 PM Miao-chen Chou <mcchou@chromium.org> wrote: > > Hi Luiz, > > On Tue, Sep 8, 2020 at 10:40 AM Luiz Augusto von Dentz > <luiz.dentz@gmail.com> wrote: > > > > Hi Miao, > > > > On Tue, Aug 18, 2020 at 3:34 PM Miao-chen Chou <mcchou@chromium.org> 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@google.com> > > > Reviewed-by: Manish Mandlik <mmandlik@chromium.org> > > > --- > > > > > > 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. You will need to do something like the following: if (g_dbus_get_flags() & G_DBUS_FLAG_ENABLE_EXPERIMENTAL) You can see how it was used in adv_manager: https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=d6e9539e31c6bb5afd39ec6f09c518d232e6345d > > > > > > -- > > Luiz Augusto von Dentz > > Thanks, > Miao
Hi Luiz, On Thu, Sep 10, 2020 at 10:43 AM Luiz Augusto von Dentz <luiz.dentz@gmail.com> wrote: > > Hi Miao, > > On Wed, Sep 9, 2020 at 9:53 PM Miao-chen Chou <mcchou@chromium.org> wrote: > > > > Hi Luiz, > > > > On Tue, Sep 8, 2020 at 10:40 AM Luiz Augusto von Dentz > > <luiz.dentz@gmail.com> wrote: > > > > > > Hi Miao, > > > > > > On Tue, Aug 18, 2020 at 3:34 PM Miao-chen Chou <mcchou@chromium.org> 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@google.com> > > > > Reviewed-by: Manish Mandlik <mmandlik@chromium.org> > > > > --- > > > > > > > > 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. > > You will need to do something like the following: > > if (g_dbus_get_flags() & G_DBUS_FLAG_ENABLE_EXPERIMENTAL) > > You can see how it was used in adv_manager: > > https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=d6e9539e31c6bb5afd39ec6f09c518d232e6345d > Thanks for the pointer. Please see v4 for the changes. > > > > > > > > > -- > > > Luiz Augusto von Dentz > > > > Thanks, > > Miao > > > > -- > Luiz Augusto von Dentz Regards, Miao
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