Hello all,
After several tests about extending Timeslot, I have some questions.
-
I found out that the Timeslot will keep extending automatically after a successful extension, right?
-
If I am right about the first question, then about the extension length, in my code, extend.length_us = 200, and the "callback_action" will be set to "NRF_RADIO_SIGNAL_CALLBACK_ACTION_END" if the total length above 120,000,000 us, so that the Timeslot will end rather than exceed the 128s limit and extend failed.
I used the "NRF_LOG_INFO" printed the result:
:INFO:NRF_EVT_RADIO_SESSION_IDLE
:INFO:NRF_EVT_RADIO_SESSION_CLOSED
:INFO: extend_success_count = 600000
:INFO: extend_fail_count = 0case NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_SUCCEEDED: if(total_timeslot_length >= 120000000) { signal_callback_return_param.callback_action = NRF_RADIO_SIGNAL_CALLBACK_ACTION_END; }else { total_timeslot_length += 200; extend_success_count++; } break; case NRF_RADIO_CALLBACK_SIGNAL_TYPE_EXTEND_FAILED: fail_count++; break;
Also in Timeslot event handler:
case NRF_EVT_RADIO_SESSION_IDLE:
sd_radio_session_close();
NRF_LOG_INFO("NRF_EVT_RADIO_SESSION_IDLE\r\n");
break;
case NRF_EVT_RADIO_SESSION_CLOSED:
NRF_LOG_INFO("NRF_EVT_RADIO_SESSION_CLOSED\r\n");
NRF_LOG_INFO(" extend_success_count = %d\r\n", extend_success_count);
NRF_LOG_INFO(" extend_fail_count = %d\r\n", fail_count);
break;
But the problem is: the real time about the extension was far less that 120 seconds, only few seconds and as I increase the "extend_length", the real time get even shorter, so where is the problem?
Many thanks!