Hello:
I am upgrading my application to use Mesh SDK 3.0.0 (I was at 2.1.1). In my application, I process the mesh from the main loop (per the instruction in the Interrupt Priority levels section of the documentation )
My mesh_init() looks like this:
static void mesh_init(void)
{
uint8_t dev_uuid[NRF_MESH_UUID_SIZE];
uint8_t node_uuid_prefix[NODE_UUID_PREFIX_LEN] = SERVER_NODE_UUID_PREFIX;
ERROR_CHECK(mesh_app_uuid_gen(dev_uuid, node_uuid_prefix, NODE_UUID_PREFIX_LEN));
mesh_stack_init_params_t init_params =
{
.core.irq_priority = NRF_MESH_IRQ_PRIORITY_THREAD,
.core.lfclksrc = DEV_BOARD_LF_CLK_CFG,
.core.p_uuid = dev_uuid,
.models.models_init_cb = models_init_cb,
.models.config_server_cb = config_server_evt_cb
};
ERROR_CHECK(mesh_stack_init(&init_params, &m_device_provisioned));
}
I used the NRF_MESH_IRQ_PRIORITY_THREAD priority level.
In this configuration, I noticed I will always get an assertion from somewhere in the mesh stack when using the GATT based Android App for provisioning.
Everything works fine when I useNRF_MESH_IRQ_PRIORITY_LOWEST but I can no longer use mesh API from the main loop.
What is the solution to being able to use the GATT proxy for provisioning w/ the app also well as using mesh API in the main loop?