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

Thread CoAP Response Handler - How to get POST response code

My project is based on the Thread cloud coap client example.  I would like to know if my CoAP POSTs to the cloud are successful.

I added a "post_response_handler" to the SendRequest:

        //error = otCoapSendRequest(p_instance, p_request, &message_info, NULL, NULL);
        error = otCoapSendRequest(p_instance, p_request, &message_info, post_response_handler, NULL); //added response handler

The post_response_handler is firing after a successful post, but I can't figure out how to extract the coap response code (typedef enum otCoapCode) from the message.  Here's what I have so far.  Any help would be greatly appreciated.

static void post_response_handler(        void                * p_context,
                                          otCoapHeader        * p_header,
                                          otMessage           * p_message,
                                          const otMessageInfo * p_message_info,
                                          otError               result)
{
    (void)p_context;
    (void)p_header;
    
    // restore the polling period back to initial slow value
    UNUSED_VARIABLE(poll_period_restore(thread_ot_instance_get()));

    UNUSED_VARIABLE(otMessageRead(p_message,
                                      otMessageGetOffset(p_message),
                                      &???????.???????,
                                      sizeof(?????????.???????))
    );
    
    NRF_LOG_INFO("CoAP code: %d\r\n", &????????.???????);
    
}

Related