Best way to rewrite advertisement data

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

I want to change  the advertisement data from packet to packet.  Looks like I can do this with the fine timer callback.

However, I'd prefer a callback that happens just before (or just after) the packet is sent.

That way I know my new advertisement data will affect exactly one packet.

Is there such a callback?  Or is there another good way to control the adv packet contents on the individual packet level?

0 Likes
1 Solution

This is possible, in theory, because the adv starts almost immediately after the stack (below the app) issues the start advertisement command to the FW. But if there are other higher priority tasks, the start of the adv can get delayed by a few mS.

But you have to remember that the adv packets last a very short time, so the intended target might not get the data unless it is scanning at a very high duty cycle (and burning power).

View solution in original post

9 Replies
Anonymous
Not applicable

Hello asher,

We are testing this scenario right now and can post this example as soon as it is ready.

Give us a few days.

Thanks.

JT

0 Likes
Anonymous
Not applicable

Thanks, J.T.

I look forward to your conclusions.

0 Likes
Anonymous
Not applicable

I'm also interesting in this usage.

Look forward to your result.

0 Likes
Anonymous
Not applicable

Hi J.T,

  Is there any update from your testing of changing advertising data in each event?

0 Likes
Anonymous
Not applicable

Drop the Carribeaner!

What have you done for me today?

Guess who?

How can we get closure on this-M2

0 Likes
Anonymous
Not applicable

While people are implementing the callback is it possible to use a combination of high_undirect_adv_duration and high_undirect_adv_interval to send exactly one advertisment with a certain data set and then use

bleprofile_Discoverable(); to start another single advertisement?

0 Likes

This is possible, in theory, because the adv starts almost immediately after the stack (below the app) issues the start advertisement command to the FW. But if there are other higher priority tasks, the start of the adv can get delayed by a few mS.

But you have to remember that the adv packets last a very short time, so the intended target might not get the data unless it is scanning at a very high duty cycle (and burning power).

Seems this topic is very older one, have you shared the example regarding to this topic???

0 Likes

The nearest example is the mybeacon app. It called the following api to register with the stack to call the

function "advertisement_packet_transmission" at 2.5ms before the actual advertisement.

bleprofile_notifyAdvPacketTransmissions(&advertisement_packet_transmission, 2500)

In this example app, the tuple value of adv[1].data[20] was increased by 1, and you can see this increment in

this location in the debug traces.