This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

ble_radio_notification_evt_handler_t timeslot API and softdevice

I am using the timeslot API and softdevice to advertise two separate types of message. This works well. But I have also used ble_radio_notification_evt_handler_t in an attempt to change the payload of the softdevice advertisement.

Unfortunately through experimentation I have found that ble_radio_notification_evt_handler_t is called on any radio activity. There doesn't appear to be a context.

Any ideas how to run code before or after (just) the softdevice advertises?

I'm using S130 V11 nrf51

Many thanks in advance

John

Parents
  • FormerMember
    0 FormerMember

    The easiest way to change the advertising data between two advertising events, is to use app_timer/the RTC to run with the same timeout interval as the advertising interval. Since we know that the advertiser will advertise at a given interval, having app_timer/the RTC to update the advertising data with the same interval will make the advertising data change for each advertising event.

  • I'm currently running a 1 second timer and updating the ble advertising data when the timer event occurs. The softdevice advertises every 500ms Over the air I see either 1,2 or 3 advertisements with the same payload I think this means that the advertisement intervals are not sync'd with the standard app timers -I guess this could be due to the time slot advertisements clashing with the softdevice advertisements It's a shame there's no context available in the ble_radio_notification_evt_handler_t cbh. I guess we could synchronise the updates by putting some sort of semaphore between the main timer and the ble_radio_notification_evt_handler_t cbh . Maybe also speed up the main timer to 500ms

Reply
  • I'm currently running a 1 second timer and updating the ble advertising data when the timer event occurs. The softdevice advertises every 500ms Over the air I see either 1,2 or 3 advertisements with the same payload I think this means that the advertisement intervals are not sync'd with the standard app timers -I guess this could be due to the time slot advertisements clashing with the softdevice advertisements It's a shame there's no context available in the ble_radio_notification_evt_handler_t cbh. I guess we could synchronise the updates by putting some sort of semaphore between the main timer and the ble_radio_notification_evt_handler_t cbh . Maybe also speed up the main timer to 500ms

Children
No Data
Related