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

Deinit Thread in the dynamic multiprotocol example.

Hello, fellow developers!

Right now I'm trying to decrease the current consumption of my BLE/Thread Node witch is build on the nRF52840 dongle. It is crucial for me not to lose BLE connections,

thus I cannot use switched multiprotocol. My idea is to stay at BLE for the most time and use Thread only for a short period (assuming that during this period I still can 

handle BLE connections).

I've found two possible functions for this. Both of them clear the instance of OpenThread and the first one deinitialize drivers as well.

void thread_deinit(void)
{
    ASSERT(mp_ot_instance != NULL);

    otInstanceFinalize(mp_ot_instance);
    otSysDeinit();
    mp_ot_instance = NULL;
}

void thread_soft_deinit(void)
{
    ASSERT(mp_ot_instance != NULL);

    otInstanceFinalize(mp_ot_instance);
    mp_ot_instance = NULL;
}

I assume I should use thread_soft_deinit() and reinitialize thread instance when I want to have Thread up and running. Unfortunately, thread_instance_init() does all from scratch

(including thread drivers) and there is no functionality for thread instance only initialization.

Is there any possible way to solve this issue? Thx in advance.

Parents Reply Children
Related