How to observe repeat announcements

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

cross mob
Anonymous
Not applicable

I was able to build and run the "Day 10" Observer sample project.  I have a BLE beacon running on another dev board and when I start the Observer, it reports the "non connectable unidirected advertisement."  But then there are no new events even though I know the beacon must put out an advertisement periodically.  As evidence of this, if I reset the Observer, it immediately reports the beacon again.

   

I can only conclude that the stack is storing a list of the advertisements it has seen and doesn't issue a new event when they are repeated.

   

Is there some way for me to see *every* advertisement?  I want to run a timeout so I can tell when a peer STOPs advertising.

0 Likes
1 Solution
Anonymous
Not applicable

Hi,

   

Just to conrner down the issue:

   

1) Please program the Dynamic Broadcaster project ("Day 9") on the other board instead of the beacon and test it with the Day 10 Observer

   

2) Use the CySmart PC Dongle for testing the Beacon instead of Day 10 Project. (Please make sure 'Duplicate Filtering" is disaled in the Master Settings of the CySmart)

   

Based on your results, please contact the Cypress Tech Support.

   

Regards,

   

- Madhu Sudhan

View solution in original post

0 Likes
6 Replies
Anonymous
Not applicable

Hi,

   

Just to conrner down the issue:

   

1) Please program the Dynamic Broadcaster project ("Day 9") on the other board instead of the beacon and test it with the Day 10 Observer

   

2) Use the CySmart PC Dongle for testing the Beacon instead of Day 10 Project. (Please make sure 'Duplicate Filtering" is disaled in the Master Settings of the CySmart)

   

Based on your results, please contact the Cypress Tech Support.

   

Regards,

   

- Madhu Sudhan

0 Likes
Anonymous
Not applicable

Hi msullivan, did you find an answer to your question?

   

It sounds similar to a problem I'm trying to work out. I have a peripheral which dynamically changes the manufacturer specific data values in advertisement packets. I've confirmed that this is happening correctly with CySmart and some test programs.

   

I want my central unit to connect to the peripheral when it broadcasts values that match those the central module is programmed to look out for. Problem is once the central module has received one advertisement packet it stops looking at that peripheral even when elements of the adv packet change.

   

I need to clear/reset the buffer holding the adv data so that it gets new adv data from the peripheral with each iteration (unless there's a match and it connects). Really struggling to track down how to do this, have tried changing values of advData and passing empty CYBLE_GAPC_DISC_INFO_T to CyBle_GapUpdateAdvData(). I've tried CyBle_SoftReset(). Nothing has worked so far.

   

Basically, if I can achieve what msullivan was after I reckon that will be just the ticket.

   

Any ideas please?

0 Likes
Anonymous
Not applicable

Yes, I did.  The settings are in the component properties, not in the code.

0 Likes
Anonymous
Not applicable

Great!

   

Which settings did you have to change?

0 Likes
Anonymous
Not applicable

Duplicate filtering!

Can't belive I didn't spot it. Thanks so much!
(Must be getting late as I clearly didn't see that in the advice above...)

0 Likes
Anonymous
Not applicable

I also changed "Scanning state" to passive to prevent the observer from sending the endpoint a "more information" request.

0 Likes