0.01.00
CoAP

This module includes functions that control CoAP communication. More...

Classes

struct  otCoapOption
 This structure represents a CoAP option. More...
 
struct  otCoapHeader
 This structure represents a CoAP header. More...
 
struct  otCoapResource
 This structure represents a CoAP resource. More...
 

Macros

#define OT_DEFAULT_COAP_PORT   5683
 Default CoAP port, as specified in RFC 7252.
 
#define OT_COAP_CODE(c, d)   ((((c) & 0x7) << 5) | ((d) & 0x1f))
 Helper macro to define CoAP Code values.
 
#define OT_COAP_HEADER_MAX_LENGTH   128
 Max CoAP header length (bytes)
 

Typedefs

typedef enum otCoapType otCoapType
 CoAP Type values.
 
typedef enum otCoapCode otCoapCode
 CoAP Code values.
 
typedef enum otCoapOptionType otCoapOptionType
 CoAP Option Numbers.
 
typedef struct otCoapOption otCoapOption
 This structure represents a CoAP option.
 
typedef enum otCoapOptionContentFormat otCoapOptionContentFormat
 CoAP Content Format codes. More...
 
typedef struct otCoapHeader otCoapHeader
 This structure represents a CoAP header.
 
typedef void(* otCoapResponseHandler) (void *aContext, otCoapHeader *aHeader, otMessage *aMessage, const otMessageInfo *aMessageInfo, otError aResult)
 This function pointer is called when a CoAP response is received or on the request timeout. More...
 
typedef void(* otCoapRequestHandler) (void *aContext, otCoapHeader *aHeader, otMessage *aMessage, const otMessageInfo *aMessageInfo)
 This function pointer is called when a CoAP request with a given Uri-Path is received. More...
 
typedef struct otCoapResource otCoapResource
 This structure represents a CoAP resource.
 

Enumerations

enum  otCoapType {
  OT_COAP_TYPE_CONFIRMABLE = 0x00,
  OT_COAP_TYPE_NON_CONFIRMABLE = 0x10,
  OT_COAP_TYPE_ACKNOWLEDGMENT = 0x20,
  OT_COAP_TYPE_RESET = 0x30
}
 CoAP Type values. More...
 
enum  otCoapCode {
  OT_COAP_CODE_EMPTY = OT_COAP_CODE(0, 0),
  OT_COAP_CODE_GET = OT_COAP_CODE(0, 1),
  OT_COAP_CODE_POST = OT_COAP_CODE(0, 2),
  OT_COAP_CODE_PUT = OT_COAP_CODE(0, 3),
  OT_COAP_CODE_DELETE = OT_COAP_CODE(0, 4),
  OT_COAP_CODE_RESPONSE_MIN = OT_COAP_CODE(2, 0),
  OT_COAP_CODE_CREATED = OT_COAP_CODE(2, 1),
  OT_COAP_CODE_DELETED = OT_COAP_CODE(2, 2),
  OT_COAP_CODE_VALID = OT_COAP_CODE(2, 3),
  OT_COAP_CODE_CHANGED = OT_COAP_CODE(2, 4),
  OT_COAP_CODE_CONTENT = OT_COAP_CODE(2, 5),
  OT_COAP_CODE_BAD_REQUEST = OT_COAP_CODE(4, 0),
  OT_COAP_CODE_UNAUTHORIZED = OT_COAP_CODE(4, 1),
  OT_COAP_CODE_BAD_OPTION = OT_COAP_CODE(4, 2),
  OT_COAP_CODE_FORBIDDEN = OT_COAP_CODE(4, 3),
  OT_COAP_CODE_NOT_FOUND = OT_COAP_CODE(4, 4),
  OT_COAP_CODE_METHOD_NOT_ALLOWED = OT_COAP_CODE(4, 5),
  OT_COAP_CODE_NOT_ACCEPTABLE = OT_COAP_CODE(4, 6),
  OT_COAP_CODE_PRECONDITION_FAILED = OT_COAP_CODE(4, 12),
  OT_COAP_CODE_REQUEST_TOO_LARGE = OT_COAP_CODE(4, 13),
  OT_COAP_CODE_UNSUPPORTED_FORMAT = OT_COAP_CODE(4, 15),
  OT_COAP_CODE_INTERNAL_ERROR = OT_COAP_CODE(5, 0),
  OT_COAP_CODE_NOT_IMPLEMENTED = OT_COAP_CODE(5, 1),
  OT_COAP_CODE_BAD_GATEWAY = OT_COAP_CODE(5, 2),
  OT_COAP_CODE_SERVICE_UNAVAILABLE = OT_COAP_CODE(5, 3),
  OT_COAP_CODE_GATEWAY_TIMEOUT = OT_COAP_CODE(5, 4),
  OT_COAP_CODE_PROXY_NOT_SUPPORTED = OT_COAP_CODE(5, 5)
}
 CoAP Code values. More...
 
enum  otCoapOptionType {
  OT_COAP_OPTION_IF_MATCH = 1,
  OT_COAP_OPTION_URI_HOST = 3,
  OT_COAP_OPTION_E_TAG = 4,
  OT_COAP_OPTION_IF_NONE_MATCH = 5,
  OT_COAP_OPTION_OBSERVE = 6,
  OT_COAP_OPTION_URI_PORT = 7,
  OT_COAP_OPTION_LOCATION_PATH = 8,
  OT_COAP_OPTION_URI_PATH = 11,
  OT_COAP_OPTION_CONTENT_FORMAT = 12,
  OT_COAP_OPTION_MAX_AGE = 14,
  OT_COAP_OPTION_URI_QUERY = 15,
  OT_COAP_OPTION_ACCEPT = 17,
  OT_COAP_OPTION_LOCATION_QUERY = 20,
  OT_COAP_OPTION_PROXY_URI = 35,
  OT_COAP_OPTION_PROXY_SCHEME = 39,
  OT_COAP_OPTION_SIZE1 = 60
}
 CoAP Option Numbers. More...
 
enum  otCoapOptionContentFormat {
  OT_COAP_OPTION_CONTENT_FORMAT_TEXT_PLAIN = 0,
  OT_COAP_OPTION_CONTENT_FORMAT_LINK_FORMAT = 40,
  OT_COAP_OPTION_CONTENT_FORMAT_XML = 41,
  OT_COAP_OPTION_CONTENT_FORMAT_OCTET_STREAM = 42,
  OT_COAP_OPTION_CONTENT_FORMAT_EXI = 47,
  OT_COAP_OPTION_CONTENT_FORMAT_JSON = 50
}
 CoAP Content Format codes. More...
 

Functions

void otCoapHeaderInit (otCoapHeader *aHeader, otCoapType aType, otCoapCode aCode)
 This function initializes the CoAP header. More...
 
void otCoapHeaderSetToken (otCoapHeader *aHeader, const uint8_t *aToken, uint8_t aTokenLength)
 This function sets the Token value and length in a header. More...
 
void otCoapHeaderGenerateToken (otCoapHeader *aHeader, uint8_t aTokenLength)
 This function sets the Token length and randomizes its value. More...
 
otError otCoapHeaderAppendContentFormatOption (otCoapHeader *aHeader, otCoapOptionContentFormat aContentFormat)
 This function appends the Content Format CoAP option as specified in https://tools.ietf.org/html/rfc7252#page-92. More...
 
otError otCoapHeaderAppendOption (otCoapHeader *aHeader, const otCoapOption *aOption)
 This function appends a CoAP option in a header. More...
 
otError otCoapHeaderAppendUintOption (otCoapHeader *aHeader, uint16_t aNumber, uint32_t aValue)
 This function appends an unsigned integer CoAP option as specified in https://tools.ietf.org/html/rfc7252#section-3.2. More...
 
otError otCoapHeaderAppendObserveOption (otCoapHeader *aHeader, uint32_t aObserve)
 This function appends an Observe option. More...
 
otError otCoapHeaderAppendUriPathOptions (otCoapHeader *aHeader, const char *aUriPath)
 This function appends an Uri-Path option. More...
 
otError otCoapHeaderAppendMaxAgeOption (otCoapHeader *aHeader, uint32_t aMaxAge)
 This function appends a Max-Age option. More...
 
otError otCoapHeaderAppendUriQueryOption (otCoapHeader *aHeader, const char *aUriQuery)
 This function appends a single Uri-Query option. More...
 
void otCoapHeaderSetPayloadMarker (otCoapHeader *aHeader)
 This function adds Payload Marker indicating beginning of the payload to the CoAP header. More...
 
void otCoapHeaderSetMessageId (otCoapHeader *aHeader, uint16_t aMessageId)
 This function sets the Message ID value. More...
 
otCoapType otCoapHeaderGetType (const otCoapHeader *aHeader)
 This function returns the Type value. More...
 
otCoapCode otCoapHeaderGetCode (const otCoapHeader *aHeader)
 This function returns the Code value. More...
 
uint16_t otCoapHeaderGetMessageId (const otCoapHeader *aHeader)
 This function returns the Message ID value. More...
 
uint8_t otCoapHeaderGetTokenLength (const otCoapHeader *aHeader)
 This function returns the Token length. More...
 
const uint8_t * otCoapHeaderGetToken (const otCoapHeader *aHeader)
 This function returns a pointer to the Token value. More...
 
const otCoapOptionotCoapHeaderGetFirstOption (otCoapHeader *aHeader)
 This function returns a pointer to the first option. More...
 
const otCoapOptionotCoapHeaderGetNextOption (otCoapHeader *aHeader)
 This function returns a pointer to the next option. More...
 
otMessageotCoapNewMessage (otInstance *aInstance, const otCoapHeader *aHeader)
 This function creates a new message with a CoAP header. More...
 
otError otCoapSendRequest (otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext)
 This function sends a CoAP request. More...
 
otError otCoapStart (otInstance *aInstance, uint16_t aPort)
 This function starts the CoAP server. More...
 
otError otCoapStop (otInstance *aInstance)
 This function stops the CoAP server. More...
 
otError otCoapAddResource (otInstance *aInstance, otCoapResource *aResource)
 This function adds a resource to the CoAP server. More...
 
void otCoapRemoveResource (otInstance *aInstance, otCoapResource *aResource)
 This function removes a resource from the CoAP server. More...
 
void otCoapSetDefaultHandler (otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
 This function sets the default handler for unhandled CoAP requests. More...
 
otError otCoapSendResponse (otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
 This function sends a CoAP response from the server. More...
 

Detailed Description

This module includes functions that control CoAP communication.

The functions in this module are available when application-coap feature (OPENTHREAD_ENABLE_APPLICATION_COAP) is enabled.

Typedef Documentation

§ otCoapOptionContentFormat

CoAP Content Format codes.

The full list is documented at https://tools.ietf.org/html/rfc7252#page-92

§ otCoapRequestHandler

typedef void(* otCoapRequestHandler) (void *aContext, otCoapHeader *aHeader, otMessage *aMessage, const otMessageInfo *aMessageInfo)

This function pointer is called when a CoAP request with a given Uri-Path is received.

Parameters
[in]aContextA pointer to arbitrary context information.
[in]aHeaderA pointer to the CoAP header.
[in]aMessageA pointer to the message.
[in]aMessageInfoA pointer to the message info for aMessage.

§ otCoapResponseHandler

typedef void(* otCoapResponseHandler) (void *aContext, otCoapHeader *aHeader, otMessage *aMessage, const otMessageInfo *aMessageInfo, otError aResult)

This function pointer is called when a CoAP response is received or on the request timeout.

Parameters
[in]aContextA pointer to application-specific context.
[in]aHeaderA pointer to the received CoAP header. NULL if no response was received.
[in]aMessageA pointer to the message buffer containing the response. NULL if no response was received.
[in]aMessageInfoA pointer to the message info for aMessage. NULL if no response was received.
[in]aResultA result of the CoAP transaction.
Return values
OT_ERROR_NONEA response was received successfully.
OT_ERROR_ABORTA CoAP transaction was reseted by peer.
OT_ERROR_RESPONSE_TIMEOUTNo response or acknowledgment received during timeout period.

Enumeration Type Documentation

§ otCoapCode

enum otCoapCode

CoAP Code values.

Enumerator
OT_COAP_CODE_EMPTY 

Empty message code.

OT_COAP_CODE_GET 

Get.

OT_COAP_CODE_POST 

Post.

OT_COAP_CODE_PUT 

Put.

OT_COAP_CODE_DELETE 

Delete.

OT_COAP_CODE_RESPONSE_MIN 

2.00

OT_COAP_CODE_CREATED 

Created.

OT_COAP_CODE_DELETED 

Deleted.

OT_COAP_CODE_VALID 

Valid.

OT_COAP_CODE_CHANGED 

Changed.

OT_COAP_CODE_CONTENT 

Content.

OT_COAP_CODE_BAD_REQUEST 

Bad Request.

OT_COAP_CODE_UNAUTHORIZED 

Unauthorized.

OT_COAP_CODE_BAD_OPTION 

Bad Option.

OT_COAP_CODE_FORBIDDEN 

Forbidden.

OT_COAP_CODE_NOT_FOUND 

Not Found.

OT_COAP_CODE_METHOD_NOT_ALLOWED 

Method Not Allowed.

OT_COAP_CODE_NOT_ACCEPTABLE 

Not Acceptable.

OT_COAP_CODE_PRECONDITION_FAILED 

Precondition Failed.

OT_COAP_CODE_REQUEST_TOO_LARGE 

Request Entity Too Large.

OT_COAP_CODE_UNSUPPORTED_FORMAT 

Unsupported Content-Format.

OT_COAP_CODE_INTERNAL_ERROR 

Internal Server Error.

OT_COAP_CODE_NOT_IMPLEMENTED 

Not Implemented.

OT_COAP_CODE_BAD_GATEWAY 

Bad Gateway.

OT_COAP_CODE_SERVICE_UNAVAILABLE 

Service Unavailable.

OT_COAP_CODE_GATEWAY_TIMEOUT 

Gateway Timeout.

OT_COAP_CODE_PROXY_NOT_SUPPORTED 

Proxying Not Supported.

§ otCoapOptionContentFormat

CoAP Content Format codes.

The full list is documented at https://tools.ietf.org/html/rfc7252#page-92

Enumerator
OT_COAP_OPTION_CONTENT_FORMAT_TEXT_PLAIN 

text/plain

OT_COAP_OPTION_CONTENT_FORMAT_LINK_FORMAT 

application/link-format

OT_COAP_OPTION_CONTENT_FORMAT_XML 

application/xml

OT_COAP_OPTION_CONTENT_FORMAT_OCTET_STREAM 

application/octet-stream

OT_COAP_OPTION_CONTENT_FORMAT_EXI 

application/exi

OT_COAP_OPTION_CONTENT_FORMAT_JSON 

application/json

§ otCoapOptionType

CoAP Option Numbers.

Enumerator
OT_COAP_OPTION_IF_MATCH 

If-Match.

OT_COAP_OPTION_URI_HOST 

Uri-Host.

OT_COAP_OPTION_E_TAG 

ETag.

OT_COAP_OPTION_IF_NONE_MATCH 

If-None-Match.

OT_COAP_OPTION_OBSERVE 

Observe.

OT_COAP_OPTION_URI_PORT 

Uri-Port.

OT_COAP_OPTION_LOCATION_PATH 

Location-Path.

OT_COAP_OPTION_URI_PATH 

Uri-Path.

OT_COAP_OPTION_CONTENT_FORMAT 

Content-Format.

OT_COAP_OPTION_MAX_AGE 

Max-Age.

OT_COAP_OPTION_URI_QUERY 

Uri-Query.

OT_COAP_OPTION_ACCEPT 

Accept.

OT_COAP_OPTION_LOCATION_QUERY 

Location-Query.

OT_COAP_OPTION_PROXY_URI 

Proxy-Uri.

OT_COAP_OPTION_PROXY_SCHEME 

Proxy-Scheme.

OT_COAP_OPTION_SIZE1 

Size1.

§ otCoapType

enum otCoapType

CoAP Type values.

Enumerator
OT_COAP_TYPE_CONFIRMABLE 

Confirmable.

OT_COAP_TYPE_NON_CONFIRMABLE 

Non-confirmable.

OT_COAP_TYPE_ACKNOWLEDGMENT 

Acknowledgment.

OT_COAP_TYPE_RESET 

Reset.

Function Documentation

§ otCoapAddResource()

otError otCoapAddResource ( otInstance aInstance,
otCoapResource aResource 
)

This function adds a resource to the CoAP server.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aResourceA pointer to the resource.
Return values
OT_ERROR_NONESuccessfully added aResource.
OT_ERROR_ALREADYThe aResource was already added.

§ otCoapHeaderAppendContentFormatOption()

otError otCoapHeaderAppendContentFormatOption ( otCoapHeader aHeader,
otCoapOptionContentFormat  aContentFormat 
)

This function appends the Content Format CoAP option as specified in https://tools.ietf.org/html/rfc7252#page-92.

This must be called before setting otCoapHeaderSetPayloadMarker if a payload is to be included in the message.

The function is a convenience wrapper around otCoapHeaderAppendUintOption, and if the desired format type code isn't listed in otCoapOptionContentFormat, this base function should be used instead.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aContentFormatOne of the content formats listed in otCoapOptionContentFormat above.
Return values
OT_ERROR_NONESuccessfully appended the option.
OT_ERROR_INVALID_ARGSThe option type is not equal or greater than the last option type.
OT_ERROR_NO_BUFSThe option length exceeds the buffer size.

§ otCoapHeaderAppendMaxAgeOption()

otError otCoapHeaderAppendMaxAgeOption ( otCoapHeader aHeader,
uint32_t  aMaxAge 
)

This function appends a Max-Age option.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aMaxAgeThe Max-Age value.
Return values
OT_ERROR_NONESuccessfully appended the option.
OT_ERROR_INVALID_ARGSThe option type is not equal or greater than the last option type.
OT_ERROR_NO_BUFSThe option length exceeds the buffer size.

§ otCoapHeaderAppendObserveOption()

otError otCoapHeaderAppendObserveOption ( otCoapHeader aHeader,
uint32_t  aObserve 
)

This function appends an Observe option.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aObserveObserve field value.
Return values
OT_ERROR_NONESuccessfully appended the option.
OT_ERROR_INVALID_ARGSThe option type is not equal or greater than the last option type.
OT_ERROR_NO_BUFSThe option length exceeds the buffer size.

§ otCoapHeaderAppendOption()

otError otCoapHeaderAppendOption ( otCoapHeader aHeader,
const otCoapOption aOption 
)

This function appends a CoAP option in a header.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aOptionA pointer to the CoAP option.
Return values
OT_ERROR_NONESuccessfully appended the option.
OT_ERROR_INVALID_ARGSThe option type is not equal or greater than the last option type.
OT_ERROR_NO_BUFSThe option length exceeds the buffer size.

§ otCoapHeaderAppendUintOption()

otError otCoapHeaderAppendUintOption ( otCoapHeader aHeader,
uint16_t  aNumber,
uint32_t  aValue 
)

This function appends an unsigned integer CoAP option as specified in https://tools.ietf.org/html/rfc7252#section-3.2.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aNumberThe CoAP Option number.
[in]aValueThe CoAP Option unsigned integer value.
Return values
OT_ERROR_NONESuccessfully appended the option.
OT_ERROR_INVALID_ARGSThe option type is not equal or greater than the last option type.
OT_ERROR_NO_BUFSThe option length exceeds the buffer size.

§ otCoapHeaderAppendUriPathOptions()

otError otCoapHeaderAppendUriPathOptions ( otCoapHeader aHeader,
const char *  aUriPath 
)

This function appends an Uri-Path option.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aUriPathA pointer to a NULL-terminated string.
Return values
OT_ERROR_NONESuccessfully appended the option.
OT_ERROR_INVALID_ARGSThe option type is not equal or greater than the last option type.
OT_ERROR_NO_BUFSThe option length exceeds the buffer size.

§ otCoapHeaderAppendUriQueryOption()

otError otCoapHeaderAppendUriQueryOption ( otCoapHeader aHeader,
const char *  aUriQuery 
)

This function appends a single Uri-Query option.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aUriQueryA pointer to NULL-terminated string, which should contain a single key=value pair.
Return values
OT_ERROR_NONESuccessfully appended the option.
OT_ERROR_INVALID_ARGSThe option type is not equal or greater than the last option type.
OT_ERROR_NO_BUFSThe option length exceeds the buffer size.

§ otCoapHeaderGenerateToken()

void otCoapHeaderGenerateToken ( otCoapHeader aHeader,
uint8_t  aTokenLength 
)

This function sets the Token length and randomizes its value.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aTokenLengthThe Length of a Token to set.

§ otCoapHeaderGetCode()

otCoapCode otCoapHeaderGetCode ( const otCoapHeader aHeader)

This function returns the Code value.

Parameters
[in]aHeaderA pointer to the CoAP header.
Returns
The Code value.

§ otCoapHeaderGetFirstOption()

const otCoapOption* otCoapHeaderGetFirstOption ( otCoapHeader aHeader)

This function returns a pointer to the first option.

Parameters
[in]aHeaderA pointer to the CoAP header.
Returns
A pointer to the first option. If no option is present NULL pointer is returned.

§ otCoapHeaderGetMessageId()

uint16_t otCoapHeaderGetMessageId ( const otCoapHeader aHeader)

This function returns the Message ID value.

Parameters
[in]aHeaderA pointer to the CoAP header.
Returns
The Message ID value.

§ otCoapHeaderGetNextOption()

const otCoapOption* otCoapHeaderGetNextOption ( otCoapHeader aHeader)

This function returns a pointer to the next option.

Parameters
[in]aHeaderA pointer to the CoAP header.
Returns
A pointer to the next option. If no more options are present NULL pointer is returned.

§ otCoapHeaderGetToken()

const uint8_t* otCoapHeaderGetToken ( const otCoapHeader aHeader)

This function returns a pointer to the Token value.

Parameters
[in]aHeaderA pointer to the CoAP header.
Returns
A pointer to the Token value.

§ otCoapHeaderGetTokenLength()

uint8_t otCoapHeaderGetTokenLength ( const otCoapHeader aHeader)

This function returns the Token length.

Parameters
[in]aHeaderA pointer to the CoAP header.
Returns
The Token length.

§ otCoapHeaderGetType()

otCoapType otCoapHeaderGetType ( const otCoapHeader aHeader)

This function returns the Type value.

Parameters
[in]aHeaderA pointer to the CoAP header.
Returns
The Type value.

§ otCoapHeaderInit()

void otCoapHeaderInit ( otCoapHeader aHeader,
otCoapType  aType,
otCoapCode  aCode 
)

This function initializes the CoAP header.

Parameters
[in,out]aHeaderA pointer to the CoAP header to initialize.
[in]aTypeCoAP message type.
[in]aCodeCoAP message code.

§ otCoapHeaderSetMessageId()

void otCoapHeaderSetMessageId ( otCoapHeader aHeader,
uint16_t  aMessageId 
)

This function sets the Message ID value.

Parameters
[in]aHeaderA pointer to the CoAP header.
[in]aMessageIdThe Message ID value.

§ otCoapHeaderSetPayloadMarker()

void otCoapHeaderSetPayloadMarker ( otCoapHeader aHeader)

This function adds Payload Marker indicating beginning of the payload to the CoAP header.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
Return values
OT_ERROR_NONEPayload Marker successfully added.
OT_ERROR_NO_BUFSHeader Payload Marker exceeds the buffer size.

§ otCoapHeaderSetToken()

void otCoapHeaderSetToken ( otCoapHeader aHeader,
const uint8_t *  aToken,
uint8_t  aTokenLength 
)

This function sets the Token value and length in a header.

Parameters
[in,out]aHeaderA pointer to the CoAP header.
[in]aTokenA pointer to the Token value.
[in]aTokenLengthThe Length of aToken.

§ otCoapNewMessage()

otMessage* otCoapNewMessage ( otInstance aInstance,
const otCoapHeader aHeader 
)

This function creates a new message with a CoAP header.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aHeaderA pointer to a CoAP header that is used to create the message.
Returns
A pointer to the message or NULL if failed to allocate message.

§ otCoapRemoveResource()

void otCoapRemoveResource ( otInstance aInstance,
otCoapResource aResource 
)

This function removes a resource from the CoAP server.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aResourceA pointer to the resource.

§ otCoapSendRequest()

otError otCoapSendRequest ( otInstance aInstance,
otMessage aMessage,
const otMessageInfo aMessageInfo,
otCoapResponseHandler  aHandler,
void *  aContext 
)

This function sends a CoAP request.

If a response for a request is expected, respective function and context information should be provided. If no response is expected, these arguments should be NULL pointers.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aMessageA pointer to the message to send.
[in]aMessageInfoA pointer to the message info associated with aMessage.
[in]aHandlerA function pointer that shall be called on response reception or timeout.
[in]aContextA pointer to arbitrary context information. May be NULL if not used.
Return values
OT_ERROR_NONESuccessfully sent CoAP message.
OT_ERROR_NO_BUFSFailed to allocate retransmission data.

§ otCoapSendResponse()

otError otCoapSendResponse ( otInstance aInstance,
otMessage aMessage,
const otMessageInfo aMessageInfo 
)

This function sends a CoAP response from the server.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aMessageA pointer to the CoAP response to send.
[in]aMessageInfoA pointer to the message info associated with aMessage.
Return values
OT_ERROR_NONESuccessfully enqueued the CoAP response message.
OT_ERROR_NO_BUFSInsufficient buffers available to send the CoAP response.

§ otCoapSetDefaultHandler()

void otCoapSetDefaultHandler ( otInstance aInstance,
otCoapRequestHandler  aHandler,
void *  aContext 
)

This function sets the default handler for unhandled CoAP requests.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aHandlerA function pointer that shall be called when an unhandled request arrives.
[in]aContextA pointer to arbitrary context information. May be NULL if not used.

§ otCoapStart()

otError otCoapStart ( otInstance aInstance,
uint16_t  aPort 
)

This function starts the CoAP server.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aPortThe local UDP port to bind to.
Return values
OT_ERROR_NONESuccessfully started the CoAP server.

§ otCoapStop()

otError otCoapStop ( otInstance aInstance)

This function stops the CoAP server.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
OT_ERROR_NONESuccessfully stopped the CoAP server.