Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Timeslot session does not close properly

Hi, 

Furhter to this post, I still getting unexplained behavior.

I use timeslot api to generate a burst of 10 hard-real time-pulses 29000us apart.

For the first 9 pulses, in the TIMER0 event callback I set the returned action to NRF_RADIO_SIGNAL_CALLBACK_ACTION_REQUEST_AND_END and the request.p_next member to the request structure.

On the 10th pulse, in the TIMER0 event callback, I set the return value to NRF_RADIO_SIGNAL_CALLBACK_ACTION_END (and the request.p_next to NULL).

I expect to get NRF_EVT_RADIO_SESSION_IDLE in the event signal handler but it does not show.

The above prevents (I assume) the session from being closed (does not get NRF_EVT_RADIO_SESSION_CLOSED event) and re-opened (I get NRF_ERROR_BUSY error)

What can be wrong? Why the session seem to remain busy and doesn't move to IDLE ?

Thanks

Parents
  • Hi eyalasko,

    Thanks for giving the information in the previous thread. So this problem in this thread is not related to the previous one? 

     

    I expect to get NRF_EVT_RADIO_SESSION_IDLE in the event signal handler but it does not show.

     You must get some EVT, if you did not get NRF_EVT_RADIO_SESSION_IDLE then there are only two possibilities, that there is some other context running at higher/equal priority to mask the timeslot events or

    you may be getting some other event apart from IDLE. Even though that should not happen, it will be a matter to investigate if no events were received at all after NRF_RADIO_SIGNAL_CALLBACK_ACTION_END 

Reply
  • Hi eyalasko,

    Thanks for giving the information in the previous thread. So this problem in this thread is not related to the previous one? 

     

    I expect to get NRF_EVT_RADIO_SESSION_IDLE in the event signal handler but it does not show.

     You must get some EVT, if you did not get NRF_EVT_RADIO_SESSION_IDLE then there are only two possibilities, that there is some other context running at higher/equal priority to mask the timeslot events or

    you may be getting some other event apart from IDLE. Even though that should not happen, it will be a matter to investigate if no events were received at all after NRF_RADIO_SIGNAL_CALLBACK_ACTION_END 

Children
Related