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.

Related