Eddystone TLM


Marcio Montenegro
 

Hi all,
It´s easy to build TLM eddsytone package for Zephyr,
Unfortunately the data payload inside eddystone TLM is not fixed. ADV_CNT
is incremented after advertising and SEC_CNT is incremented after 0.1
second.
After calling bt_le_adv_start() I can´t find information if the last
data was transmitted and when the stack is ready for new data.
Is there any notification from radio on zephyr kernel ? If not any
suggestion of how notification or other solution can be implemented ?
Regards,

*https://github.com/google/eddystone/blob/master/eddystone-tlm/tlm-plain.md
<https://github.com/google/eddystone/blob/master/eddystone-tlm/tlm-plain.md>*


Luiz Augusto von Dentz
 

Hi Marcio,

Well I don't think the HCI interface, up to 4.2, offers this kind of
interface, it does have commands to set the AD and then enable it but
the link layer don't tell us exactly when the advertisement is sent
over the air.

There is perhaps some ways to build around with new commands added in
Bluetooth 5.0, for example there is LE Advertising Set Terminated
Event which we might support eventually but it would probably require
some API changes, or adding a new ones, to deal with multiple
advertisement instances, etc.

On Mon, Dec 19, 2016 at 12:19 PM, Marcio Montenegro <mtuxpe(a)gmail.com> wrote:
Hi all,
It´s easy to build TLM eddsytone package for Zephyr,
Unfortunately the data payload inside eddystone TLM is not fixed. ADV_CNT is
incremented after advertising and SEC_CNT is incremented after 0.1 second.
After calling bt_le_adv_start() I can´t find information if the last data
was transmitted and when the stack is ready for new data.
Is there any notification from radio on zephyr kernel ? If not any
suggestion of how notification or other solution can be implemented ?
Regards,

https://github.com/google/eddystone/blob/master/eddystone-tlm/tlm-plain.md
--
Luiz Augusto von Dentz


Carles Cufi
 

Hi Marcio, Luiz,

-----Original Message-----
From: Luiz Augusto von Dentz [mailto:luiz.dentz(a)gmail.com]
Sent: Monday, December 19, 2016 12:00
To: Marcio Montenegro <mtuxpe(a)gmail.com>
Cc: devel(a)lists.zephyrproject.org
Subject: [devel] Re: Eddystone TLM

Hi Marcio,

Well I don't think the HCI interface, up to 4.2, offers this kind of
interface, it does have commands to set the AD and then enable it but
the link layer don't tell us exactly when the advertisement is sent over
the air.
Even if we had such an interface we still wouldn't know for sure if a potential observer/scanner had received the adv packet at all. One way to address this would be to add a Vendor Specific HCI event on reception of a Scan Request event. This has been done in the past with good results, and it can be used by the app as a confirmation that an advertisement packet has been received by a peer. It obviously requires scannable advertising.


There is perhaps some ways to build around with new commands added in
Bluetooth 5.0, for example there is LE Advertising Set Terminated Event
which we might support eventually but it would probably require some API
changes, or adding a new ones, to deal with multiple advertisement
instances, etc.
There is already a radio_active_callback() in the current Bluetooth Controller in Zephyr that can be used for this purpose in combined builds (Host + Controller). What it might be missing is an ID of some sort indicating which kind of operation (conn event, adv event, etc) took place.
We would of course need to expose this to the application via a public interface.

Thanks,

Carles