Publish custom message using access layer mesh

Hi! I am taking reference to following issue :

 How to send status data from server to client's UART in mesh 

I have implemented same method as discussed in above link. I am getting message on client side successfully only when code for custom message transmission is in  button event handler.

But when I use in separate function and call from main function then getting following error.

Error Message Log -->  "app_error_weak.c,  105, Mesh assert at 0x000229AC"

Following is my code that I want to send custom message.

void publish_message(void)
{
    access_message_tx_t msg;

    msg.opcode.opcode = SENSOR_OPCODE_STATUS;
    msg.opcode.company_id = 0xFFFF;
    msg.force_segmented = m_sensor_server_0.server.settings.force_segmented;
    msg.transmic_size =  m_sensor_server_0.server.settings.transmic_size;

    char *message = "Enable Reciever\n";
    __LOG(LOG_SRC_APP, LOG_LEVEL_INFO, "Message from Initiator =  %s\n",  message);
    msg.p_buffer = (const uint8_t *)message;
    msg.length   = strlen(message);
    access_model_publish(m_sensor_server_0.server.model_handle, &msg);   
}

And I have also added delay but error message still persist.

int main(void)
{
    nrf_power_dcdcen_set(1);

    initialize();
    start();
    nrf_delay_ms(20000);

    //Publish message to address assigned by static provisioner
    publish_message();

    for (;;)
    {

        (void)sd_app_evt_wait();
    }
}

Best Regards: Danish Riaz

Parents Reply Children
No Data
Related