nRF5 SDK for Thread v0.10.0
Data Structures | Macros | Typedefs | Enumerations

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

Data Structures

struct  otCoapOption
 
struct  otCoapHeader
 
struct  otCoapResource
 

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))
 
#define OT_COAP_HEADER_MAX_LENGTH   128
 Max CoAP header length (bytes)
 

Typedefs

typedef enum otCoapType otCoapType
 
typedef enum otCoapCode otCoapCode
 
typedef enum otCoapOptionType otCoapOptionType
 
typedef struct otCoapOption otCoapOption
 
typedef enum
otCoapOptionContentFormat 
otCoapOptionContentFormat
 
typedef struct otCoapHeader otCoapHeader
 
typedef void(* otCoapResponseHandler )(void *aContext, otCoapHeader *aHeader, otMessage *aMessage, const otMessageInfo *aMessageInfo, otError aResult)
 
typedef void(* otCoapRequestHandler )(void *aContext, otCoapHeader *aHeader, otMessage *aMessage, const otMessageInfo *aMessageInfo)
 
typedef struct otCoapResource otCoapResource
 

Enumerations

enum  otCoapType { OT_COAP_TYPE_CONFIRMABLE = 0x00, OT_COAP_TYPE_NON_CONFIRMABLE = 0x10, OT_COAP_TYPE_ACKNOWLEDGMENT = 0x20, OT_COAP_TYPE_RESET = 0x30 }
 
enum  otCoapCode {
  OT_COAP_CODE_EMPTY = (((( 0 ) & 0x7) << 5) | (( 0 ) & 0x1f)), OT_COAP_CODE_GET = (((( 0 ) & 0x7) << 5) | (( 1 ) & 0x1f)), OT_COAP_CODE_POST = (((( 0 ) & 0x7) << 5) | (( 2 ) & 0x1f)), OT_COAP_CODE_PUT = (((( 0 ) & 0x7) << 5) | (( 3 ) & 0x1f)),
  OT_COAP_CODE_DELETE = (((( 0 ) & 0x7) << 5) | (( 4 ) & 0x1f)), OT_COAP_CODE_RESPONSE_MIN = (((( 2 ) & 0x7) << 5) | (( 0 ) & 0x1f)), OT_COAP_CODE_CREATED = (((( 2 ) & 0x7) << 5) | (( 1 ) & 0x1f)), OT_COAP_CODE_DELETED = (((( 2 ) & 0x7) << 5) | (( 2 ) & 0x1f)),
  OT_COAP_CODE_VALID = (((( 2 ) & 0x7) << 5) | (( 3 ) & 0x1f)), OT_COAP_CODE_CHANGED = (((( 2 ) & 0x7) << 5) | (( 4 ) & 0x1f)), OT_COAP_CODE_CONTENT = (((( 2 ) & 0x7) << 5) | (( 5 ) & 0x1f)), OT_COAP_CODE_BAD_REQUEST = (((( 4 ) & 0x7) << 5) | (( 0 ) & 0x1f)),
  OT_COAP_CODE_UNAUTHORIZED = (((( 4 ) & 0x7) << 5) | (( 1 ) & 0x1f)), OT_COAP_CODE_BAD_OPTION = (((( 4 ) & 0x7) << 5) | (( 2 ) & 0x1f)), OT_COAP_CODE_FORBIDDEN = (((( 4 ) & 0x7) << 5) | (( 3 ) & 0x1f)), OT_COAP_CODE_NOT_FOUND = (((( 4 ) & 0x7) << 5) | (( 4 ) & 0x1f)),
  OT_COAP_CODE_METHOD_NOT_ALLOWED = (((( 4 ) & 0x7) << 5) | (( 5 ) & 0x1f)), OT_COAP_CODE_NOT_ACCEPTABLE = (((( 4 ) & 0x7) << 5) | (( 6 ) & 0x1f)), OT_COAP_CODE_PRECONDITION_FAILED = (((( 4 ) & 0x7) << 5) | (( 12 ) & 0x1f)), OT_COAP_CODE_REQUEST_TOO_LARGE = (((( 4 ) & 0x7) << 5) | (( 13 ) & 0x1f)),
  OT_COAP_CODE_UNSUPPORTED_FORMAT = (((( 4 ) & 0x7) << 5) | (( 15 ) & 0x1f)), OT_COAP_CODE_INTERNAL_ERROR = (((( 5 ) & 0x7) << 5) | (( 0 ) & 0x1f)), OT_COAP_CODE_NOT_IMPLEMENTED = (((( 5 ) & 0x7) << 5) | (( 1 ) & 0x1f)), OT_COAP_CODE_BAD_GATEWAY = (((( 5 ) & 0x7) << 5) | (( 2 ) & 0x1f)),
  OT_COAP_CODE_SERVICE_UNAVAILABLE = (((( 5 ) & 0x7) << 5) | (( 3 ) & 0x1f)), OT_COAP_CODE_GATEWAY_TIMEOUT = (((( 5 ) & 0x7) << 5) | (( 4 ) & 0x1f)), OT_COAP_CODE_PROXY_NOT_SUPPORTED = (((( 5 ) & 0x7) << 5) | (( 5 ) & 0x1f))
}
 
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
}
 
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
}
 

Detailed Description

This module includes functions that control CoAP communication.

Macro Definition Documentation

#define OT_COAP_CODE (   c,
 
)    ((((c) & 0x7) << 5) | ((d) & 0x1f))

Helper macro to define CoAP Code values.

Typedef Documentation

typedef enum otCoapCode otCoapCode

CoAP Code values.

typedef struct otCoapHeader otCoapHeader

This structure represents a CoAP header.

typedef struct otCoapOption otCoapOption

This structure represents a CoAP option.

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

CoAP Option Numbers

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.

This structure represents a CoAP resource.

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.
typedef enum otCoapType otCoapType

CoAP Type values.

Enumeration Type Documentation

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.

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

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.

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.


Documentation feedback | Developer Zone | Subscribe | Updated