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

Invalid parameters for standard light on/off server example

Hi,

I tried the on/off light server example provided with the Mesh 4.0 SDK, but it seems somehow always to fall into an NRF_ERROR_INVALID_PARAM, since the appkey_handle and address_handle are not set:

static bool check_tx_params(access_model_handle_t handle, const access_message_tx_t * p_tx_message, const access_message_rx_t * p_rx_message, uint32_t * p_status)
{
    NRF_MESH_ASSERT(NULL != p_status);

    /* Various checks being done here to ensure that model does not publish a message if
       publication is disabled by setting - Unassigned publish address, or deleted app key */
    if (p_tx_message->length >= ACCESS_MESSAGE_LENGTH_MAX)
    {
        *p_status = NRF_ERROR_INVALID_LENGTH;
    }
    else if (!model_handle_valid_and_allocated(handle) ||
             m_model_pool[handle].model_info.element_index >= ACCESS_ELEMENT_COUNT)
    {
        *p_status = NRF_ERROR_NOT_FOUND;
    }
    else if ((p_rx_message == NULL &&
             (m_model_pool[handle].model_info.publish_appkey_handle  == DSM_HANDLE_INVALID ||
              m_model_pool[handle].model_info.publish_address_handle == DSM_HANDLE_INVALID)) ||
              !is_valid_opcode(p_tx_message->opcode))
    {
        *p_status = NRF_ERROR_INVALID_PARAM;
    }
    else
    {
        *p_status = NRF_SUCCESS;
    }

    return (NRF_SUCCESS == *p_status);
}

Any Idea what needs to be set, such that the appkey_handle and the address_handle are valid? The light message is sent correctly, but retransmissions seems to fail because of this.

Related