Hi all,
I using SDK MESH 3.0 and light swich server exam. If I send data in button_event_handler function. All run correct.
If I send data in int main -> error in function :
NRF_MESH_ASSERT_DEBUG(bearer_event_in_correct_irq_priority()); Detail in line code :
if (active_irq == HAL_IRQn_NONE) { return (m_irq_priority == NRF_MESH_IRQ_PRIORITY_THREAD || !hal_irq_is_enabled(EVENT_IRQn)); }
So I create one timer interrupt for send data. It pass error above . But in function segmented_packet_tx in transport.c appear error :
/* According to the Mesh Profile Specification v1.0 Section 3.6.4.1, we should only ever send one * transport SAR packet at the same time between a given source and destination. Return FORBIDDEN if * there's a SAR session in progress with the same parameters. */ for (uint32_t i = 0; i < TRANSPORT_SAR_SESSIONS_MAX; ++i) { if (m_trs_sar_sessions[i].session.session_type == TRS_SAR_SESSION_TX && m_trs_sar_sessions[i].metadata.net.src == p_metadata->net.src && m_trs_sar_sessions[i].metadata.net.dst.value == p_metadata->net.dst.value) { return NRF_ERROR_INVALID_STATE; } }
When I debug :
- send OK ->
m_trs_sar_sessions[0] = TRS_SAR_SESSION_INACTIVE
m_trs_sar_sessions[1] = TRS_SAR_SESSION_INACTIVE
m_trs_sar_sessions[2] = TRS_SAR_SESSION_INACTIVE
m_trs_sar_sessions[3] = TRS_SAR_SESSION_INACTIVE
- send ERROR 8 ->
m_trs_sar_sessions[0] = TRS_SAR_SESSION_TX
m_trs_sar_sessions[1] = TRS_SAR_SESSION_INACTIVE
m_trs_sar_sessions[2] = TRS_SAR_SESSION_INACTIVE
m_trs_sar_sessions[3] = TRS_SAR_SESSION_INACTIVE
Pls, show me advace. Thank very much