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
  • Hi Kristin, Roger,

    I believe that timer actually might solve it if you set it to the middle of the adv. interval then jitter should oscillate a bit but in average you could run both adv. interval and timer in sync. Of course this isn't usable if you need 100% precision over long period of time (hours/days).

    Cheers Jan

Reply
  • Hi Kristin, Roger,

    I believe that timer actually might solve it if you set it to the middle of the adv. interval then jitter should oscillate a bit but in average you could run both adv. interval and timer in sync. Of course this isn't usable if you need 100% precision over long period of time (hours/days).

    Cheers Jan

Children
  • could you start a timer from a radio notification event, for half the period of the advertising ?

    I still dont understand the issue with "context" here, cant context issues be overcome with a global semaphore

  • On a first look it seems to me kind of overkill to fire timer for one-time period on each such event, I'd rather set infinite timer and sync it once with adv. interval (and then resync as needed - hourly or longer?). Again it works until you don't require 100% timer accuracy over long periods. In that case you would need to go with custom (or open source) stack and make this inherit feature of low layers...