Google 致力于为黑人社区推动种族平等。查看具体行动

CoAP

此模块包含控制 CoAP 通信的函数。

摘要

此模块中的函数在启用 CoAP API 功能 (OPENTHREAD_CONFIG_COAP_API_ENABLE) 后可用。

枚举

otCoapBlockSzx 枚举
CoAP 块大小指数。
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_CONTINUE = (((( 2 )&0x7) << 5) | (( 31 )&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_REQUEST_INCOMPLETE = (((( 4 )&0x7) << 5) | (( 8 )&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))
}
枚举
CoAP 代码值。
otCoapOptionContentFormat{
  OT_COAP_OPTION_CONTENT_FORMAT_TEXT_PLAIN = 0,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT0 = 16,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC0 = 17,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN1 = 18,
  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,
  OT_COAP_OPTION_CONTENT_FORMAT_JSON_PATCH_JSON = 51,
  OT_COAP_OPTION_CONTENT_FORMAT_MERGE_PATCH_JSON = 52,
  OT_COAP_OPTION_CONTENT_FORMAT_CBOR = 60,
  OT_COAP_OPTION_CONTENT_FORMAT_CWT = 61,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT = 96,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC = 97,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN = 98,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY = 101,
  OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY_SET = 102,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_JSON = 110,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_JSON = 111,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_CBOR = 112,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_CBOR = 113,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_EXI = 114,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_EXI = 115,
  OT_COAP_OPTION_CONTENT_FORMAT_COAP_GROUP_JSON = 256,
  OT_COAP_OPTION_CONTENT_FORMAT_SENML_XML = 310,
  OT_COAP_OPTION_CONTENT_FORMAT_SENSML_XML = 311
}
枚举
CoAP 内容格式代码。
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_BLOCK2 = 23,
  OT_COAP_OPTION_BLOCK1 = 27,
  OT_COAP_OPTION_SIZE2 = 28,
  OT_COAP_OPTION_PROXY_URI = 35,
  OT_COAP_OPTION_PROXY_SCHEME = 39,
  OT_COAP_OPTION_SIZE1 = 60
}
枚举
CoAP 选项编号。
otCoapType{
  OT_COAP_TYPE_CONFIRMABLE = 0,
  OT_COAP_TYPE_NON_CONFIRMABLE = 1,
  OT_COAP_TYPE_ACKNOWLEDGMENT = 2,
  OT_COAP_TYPE_RESET = 3
}
枚举
CoAP 类型值(2 位无符号整数)。

类型定义符

otCoapBlockSzx typedef
CoAP 块大小指数。
otCoapBlockwiseReceiveHook)(void *aContext, const uint8_t *aBlock, uint32_t aPosition, uint16_t aBlockLength, bool aMore, uint32_t aTotalLength) typedef
在收到具有分块传输选项的 CoAP 消息时,系统会调用此函数指针。
otCoapBlockwiseResource typedef
此结构表示采用分块传输的 CoAP 资源。
otCoapBlockwiseTransmitHook)(void *aContext, uint8_t *aBlock, uint32_t aPosition, uint16_t *aBlockLength, bool *aMore) typedef
此函数指针在发送分块传输的下一个块之前调用。
otCoapCode typedef
enum otCoapCode
CoAP 代码值。
otCoapOption typedef
struct otCoapOption
此结构表示一个 CoAP 选项。
otCoapOptionContentFormat typedef
CoAP 内容格式代码。
otCoapOptionIterator typedef
此结构充当 CoAP 选项的迭代器。
otCoapOptionType typedef
CoAP 选项编号。
otCoapRequestHandler)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
void(*
在收到具有指定 URI 路径的 CoAP 请求时,系统会调用此函数指针。
otCoapResource typedef
此结构表示一个 CoAP 资源。
otCoapResponseHandler)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, otError aResult) typedef
void(*
在收到 CoAP 响应时或请求超时时,系统会调用此函数指针。
otCoapTxParameters typedef
此结构表示 CoAP 传输参数。
otCoapType typedef
enum otCoapType
CoAP 类型值(2 位无符号整数)。

函数

otCoapAddBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
此函数在 CoAP 服务器中添加分组式资源。
otCoapAddResource(otInstance *aInstance, otCoapResource *aResource)
void
此函数会将资源添加到 CoAP 服务器。
otCoapBlockSizeFromExponent(otCoapBlockSzx aSize)
uint16_t
此函数会将 CoAP 块选项 SZX 字段转换为实际块大小。
otCoapMessageAppendBlock1Option(otMessage *aMessage, uint32_t aNum, bool aMore, otCoapBlockSzx aSize)
此函数会附加 Block1 选项。
otCoapMessageAppendBlock2Option(otMessage *aMessage, uint32_t aNum, bool aMore, otCoapBlockSzx aSize)
此函数会附加 Block2 选项。
otCoapMessageAppendContentFormatOption(otMessage *aMessage, otCoapOptionContentFormat aContentFormat)
此函数会附加 https://tools.ietf.org/html/rfc7252#page-92 中指定的内容格式 CoAP 选项。
otCoapMessageAppendMaxAgeOption(otMessage *aMessage, uint32_t aMaxAge)
此函数会附加 Max-Age 选项。
otCoapMessageAppendObserveOption(otMessage *aMessage, uint32_t aObserve)
此函数会附加一个“观察”选项。
otCoapMessageAppendOption(otMessage *aMessage, uint16_t aNumber, uint16_t aLength, const void *aValue)
此函数会在标头中附加 CoAP 选项。
otCoapMessageAppendProxyUriOption(otMessage *aMessage, const char *aUriPath)
此函数会附加 Proxy-Uri 选项。
otCoapMessageAppendUintOption(otMessage *aMessage, uint16_t aNumber, uint32_t aValue)
此函数会如 https://tools.ietf.org/html/rfc7252#section-3.2 的规定附加一个无符号整数 CoAP 选项。
otCoapMessageAppendUriPathOptions(otMessage *aMessage, const char *aUriPath)
此函数会附加一个 Uri-Path 选项。
otCoapMessageAppendUriQueryOption(otMessage *aMessage, const char *aUriQuery)
此函数会附加一个 Uri-Query 选项。
otCoapMessageCodeToString(const otMessage *aMessage)
const char *
此方法以用户可读的字符串形式返回 CoAP 代码。
otCoapMessageGenerateToken(otMessage *aMessage, uint8_t aTokenLength)
void
此函数设置令牌长度并随机化其值。
otCoapMessageGetCode(const otMessage *aMessage)
此函数返回代码值。
otCoapMessageGetMessageId(const otMessage *aMessage)
uint16_t
此函数返回消息 ID 值。
otCoapMessageGetToken(const otMessage *aMessage)
const uint8_t *
此函数返回一个指向令牌值的指针。
otCoapMessageGetTokenLength(const otMessage *aMessage)
uint8_t
此函数返回令牌长度。
otCoapMessageGetType(const otMessage *aMessage)
此函数返回类型值。
otCoapMessageInit(otMessage *aMessage, otCoapType aType, otCoapCode aCode)
void
此函数会初始化 CoAP 标头。
otCoapMessageInitResponse(otMessage *aResponse, const otMessage *aRequest, otCoapType aType, otCoapCode aCode)
此函数初始化响应消息。
otCoapMessageSetCode(otMessage *aMessage, otCoapCode aCode)
void
此函数设置代码值。
otCoapMessageSetPayloadMarker(otMessage *aMessage)
此函数会将指示载荷开始的载荷标记添加到 CoAP 标头中。
otCoapMessageSetToken(otMessage *aMessage, const uint8_t *aToken, uint8_t aTokenLength)
此函数设置标头中的 Token 值和长度。
otCoapNewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
此函数会创建新的 CoAP 消息。
otCoapOptionIteratorGetFirstOption(otCoapOptionIterator *aIterator)
const otCoapOption *
此函数会返回第一个选项的指针。
otCoapOptionIteratorGetFirstOptionMatching(otCoapOptionIterator *aIterator, uint16_t aOption)
const otCoapOption *
此函数将返回指向与指定选项编号匹配的第一个选项的指针。
otCoapOptionIteratorGetNextOption(otCoapOptionIterator *aIterator)
const otCoapOption *
此函数会返回指向下一个选项的指针。
otCoapOptionIteratorGetNextOptionMatching(otCoapOptionIterator *aIterator, uint16_t aOption)
const otCoapOption *
此函数会返回指向与指定选项编号匹配的下一个选项的指针。
otCoapOptionIteratorGetOptionUintValue(otCoapOptionIterator *aIterator, uint64_t *aValue)
此函数将当前选项值填充到 aValue(假定当前值是按照 https://tools.ietf.org/html/rfc7252#section-3.2 编码的无符号整数)。
otCoapOptionIteratorGetOptionValue(otCoapOptionIterator *aIterator, void *aValue)
此函数会将当前选项值填充到 aValue 中。
otCoapOptionIteratorInit(otCoapOptionIterator *aIterator, const otMessage *aMessage)
此函数可初始化指定消息中选项的迭代器。
otCoapRemoveBlockWiseResource(otInstance *aInstance, otCoapBlockwiseResource *aResource)
void
此函数从 CoAP 服务器中移除分组式资源。
otCoapRemoveResource(otInstance *aInstance, otCoapResource *aResource)
void
此函数从 CoAP 服务器中移除资源。
otCoapSendRequest(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext)
此函数会发送 CoAP 请求。
otCoapSendRequestBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
此函数以块为单位发送 CoAP 请求。
otCoapSendRequestBlockWiseWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext, const otCoapTxParameters *aTxParameters, otCoapBlockwiseTransmitHook aTransmitHook, otCoapBlockwiseReceiveHook aReceiveHook)
此函数以自定义传输参数分块发送 CoAP 请求。
otCoapSendRequestWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, otCoapResponseHandler aHandler, void *aContext, const otCoapTxParameters *aTxParameters)
此函数会发送包含自定义传输参数的 CoAP 请求。
otCoapSendResponse(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo)
此函数从服务器发送 CoAP 响应。
otCoapSendResponseBlockWise(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
此函数从服务器以块为单位发送 CoAP 响应。
otCoapSendResponseBlockWiseWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otCoapTxParameters *aTxParameters, void *aContext, otCoapBlockwiseTransmitHook aTransmitHook)
此函数使用自定义传送参数从服务器逐块发送 CoAP 响应。
otCoapSendResponseWithParameters(otInstance *aInstance, otMessage *aMessage, const otMessageInfo *aMessageInfo, const otCoapTxParameters *aTxParameters)
此函数通过自定义传输参数从服务器发送 CoAP 响应。
otCoapSetDefaultHandler(otInstance *aInstance, otCoapRequestHandler aHandler, void *aContext)
void
此函数会为未处理的 CoAP 请求设置默认处理程序。
otCoapStart(otInstance *aInstance, uint16_t aPort)
此函数会启动 CoAP 服务器。
otCoapStop(otInstance *aInstance)
此函数停止 CoAP 服务器。

结构体

otCoapBlockwiseResource

此结构表示采用分块传输的 CoAP 资源。

otCoapOption

此结构表示一个 CoAP 选项。

otCoapOptionIterator

此结构充当 CoAP 选项的迭代器。

otCoapResource

此结构表示一个 CoAP 资源。

otCoapTxParameters

此结构表示 CoAP 传输参数。

枚举

otCoapBlockSzx

 otCoapBlockSzx

CoAP 块大小指数。

otCoapCode

 otCoapCode

CoAP 代码值。

属性
OT_COAP_CODE_BAD_GATEWAY

网关错误。

OT_COAP_CODE_BAD_OPTION

选项无效。

OT_COAP_CODE_BAD_REQUEST

请求有误。

OT_COAP_CODE_CHANGED

已更改。

OT_COAP_CODE_CONTENT

内容。

OT_COAP_CODE_CONTINUE

RFC7959 继续。

OT_COAP_CODE_CREATED

已创建。

OT_COAP_CODE_DELETE

删除。

OT_COAP_CODE_DELETED

已删除。

OT_COAP_CODE_EMPTY

邮件代码为空。

OT_COAP_CODE_FORBIDDEN

禁止。

OT_COAP_CODE_GATEWAY_TIMEOUT

网关超时。

OT_COAP_CODE_GET

获取。

OT_COAP_CODE_INTERNAL_ERROR

内部服务器错误。

OT_COAP_CODE_METHOD_NOT_ALLOWED

方法未获允许。

OT_COAP_CODE_NOT_ACCEPTABLE

不接受。

OT_COAP_CODE_NOT_FOUND

未找到。

OT_COAP_CODE_NOT_IMPLEMENTED

未实现。

OT_COAP_CODE_POST

帖子。

OT_COAP_CODE_PRECONDITION_FAILED

前提条件失败。

OT_COAP_CODE_PROXY_NOT_SUPPORTED

代理不受支持。

OT_COAP_CODE_PUT

放置。

OT_COAP_CODE_REQUEST_INCOMPLETE

RFC7959 请求实体不完整。

OT_COAP_CODE_REQUEST_TOO_LARGE

请求实体过大。

OT_COAP_CODE_RESPONSE_MIN

2.00

OT_COAP_CODE_SERVICE_UNAVAILABLE

服务不可用。

OT_COAP_CODE_UNAUTHORIZED

未授权。

OT_COAP_CODE_UNSUPPORTED_FORMAT

内容格式不受支持。

OT_COAP_CODE_VALID

有效。

otCoapOptionContentFormat

 otCoapOptionContentFormat

CoAP 内容格式代码。

如需查看完整列表,请访问 https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats

属性
OT_COAP_OPTION_CONTENT_FORMAT_CBOR

应用/cbor:[RFC7049]

OT_COAP_OPTION_CONTENT_FORMAT_COAP_GROUP_JSON

application/coap-group+json:[RFC7390]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT

application/cose; cose-type="cose-encrypt":[RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_ENCRYPT0

application/cose; cose-type="cose-encrypt0":[RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY

application/cose-key:[RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_KEY_SET

application/cose-key-set:[RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC

application/cose; cose-type="cose-mac":[RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_MAC0

application/cose; cose-type="cose-mac0":[RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN

application/cose; cose-type="cose-sign": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_COSE_SIGN1

application/cose; cose-type="cose-sign1": [RFC8152]

OT_COAP_OPTION_CONTENT_FORMAT_CWT

应用/Cwt:[RFC8392]

OT_COAP_OPTION_CONTENT_FORMAT_EXI

application/exi:[《高效 XML 交换 (EXI) 格式 1.0(第二版)》,2014 年 2 月]

OT_COAP_OPTION_CONTENT_FORMAT_JSON

application/json:[RFC7159]

OT_COAP_OPTION_CONTENT_FORMAT_JSON_PATCH_JSON

application/json-patch+json:[RFC6902]

OT_COAP_OPTION_CONTENT_FORMAT_LINK_FORMAT

应用/链接格式:[RFC6690]

OT_COAP_OPTION_CONTENT_FORMAT_MERGE_PATCH_JSON

application/merge-patch+json:[RFC7396]

OT_COAP_OPTION_CONTENT_FORMAT_OCTET_STREAM

application/octet-stream:[RFC2045][RFC2046]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_CBOR

application/senml+cbor:[RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_EXI

application/senml-exi:[RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_JSON

application/senml+json:[RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENML_XML

application/senml+xml:[RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_CBOR

application/sensml+cbor:[RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_EXI

application/sensml-exi:[RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_JSON

application/sensml+json:[RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_SENSML_XML

application/sensml+xml: [RFC8428]

OT_COAP_OPTION_CONTENT_FORMAT_TEXT_PLAIN

text/plain; charset=utf-8:[RFC2046][RFC3676][RFC5147]

OT_COAP_OPTION_CONTENT_FORMAT_XML

application/xml:[RFC3023]

otCoapOptionType

 otCoapOptionType

CoAP 选项编号。

属性
OT_COAP_OPTION_ACCEPT

接受。

OT_COAP_OPTION_BLOCK1

块 1 (RFC7959)

OT_COAP_OPTION_BLOCK2

块 2 (RFC7959)

OT_COAP_OPTION_CONTENT_FORMAT

内容格式。

OT_COAP_OPTION_E_TAG

ETag。

OT_COAP_OPTION_IF_MATCH

如果匹配。

OT_COAP_OPTION_IF_NONE_MATCH

If-None-Match。

OT_COAP_OPTION_LOCATION_PATH

Location-Path。

OT_COAP_OPTION_LOCATION_QUERY

Location-Query。

OT_COAP_OPTION_MAX_AGE

最长存在时间。

OT_COAP_OPTION_OBSERVE

注意遵守 [RFC7641]。

OT_COAP_OPTION_PROXY_SCHEME

Proxy-Scheme。

OT_COAP_OPTION_PROXY_URI

Proxy-Uri。

OT_COAP_OPTION_SIZE1

Size1.

OT_COAP_OPTION_SIZE2

大小 2 (RFC7959)

OT_COAP_OPTION_URI_HOST

URI-Host。

OT_COAP_OPTION_URI_PATH

URI.

OT_COAP_OPTION_URI_PORT

URI-端口。

OT_COAP_OPTION_URI_QUERY

Uri-Query。

otCoapType

 otCoapType

CoAP 类型值(2 位无符号整数)。

属性
OT_COAP_TYPE_ACKNOWLEDGMENT

确认。

OT_COAP_TYPE_CONFIRMABLE

可确认。

OT_COAP_TYPE_NON_CONFIRMABLE

无法确认。

OT_COAP_TYPE_RESET

重置。

类型定义符

otCoapBlockSzx

enum otCoapBlockSzx otCoapBlockSzx

CoAP 块大小指数。

otCoapBlockwiseReceiveHook

otError(* otCoapBlockwiseReceiveHook)(void *aContext, const uint8_t *aBlock, uint32_t aPosition, uint16_t aBlockLength, bool aMore, uint32_t aTotalLength)

在收到具有分块传输选项的 CoAP 消息时,系统会调用此函数指针。

启用 OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 配置后,便可使用此函数。

详情
参数
[in] aContext
指向应用特定上下文的指针。
[in] aBlock
指向块细分的指针。
[in] aPosition
aBlock 在序列中的位置,以字节为单位。
[in] aBlockLength
分块的长度(以字节为单位)。
[in] aMore
标记后续是否有更多块。
[in] aTotalLength
传输的信息的总长度(以 Size1 或 Size2 选项表示)。
返回值
OT_ERROR_NONE
已成功存储块。
OT_ERROR_NO_BUFS
不再需要内存来存储块。
OT_ERROR_NO_FRAME_RECEIVED
缺少细分受众群。

otCoapBlockwiseResource

struct otCoapBlockwiseResource otCoapBlockwiseResource

此结构表示采用分块传输的 CoAP 资源。

otCoapBlockwiseTransmitHook

otError(* otCoapBlockwiseTransmitHook)(void *aContext, uint8_t *aBlock, uint32_t aPosition, uint16_t *aBlockLength, bool *aMore)

此函数指针在发送分块传输的下一个块之前调用。

启用 OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 配置后,便可使用此函数。

通过更改 BlockBlockLength 值,系统将重新协商整个广告交易平台的块大小。建议在收到第一个数据块后执行此操作,因为后续的更改可能会导致其他 CoAP 实现出现问题。

详情
参数
[in] aContext
指向应用特定上下文的指针。
[in,out] aBlock
指向可以向其中写入块块的指针。
[in] aPosition
从中获取块细分的序列中的位置。
[in,out] aBlockLength
输入时,分段最大长度(以字节为单位)。
[out] aMore
指向该标记的标记,指示后续将有更多块。
返回值
OT_ERROR_NONE
未发生任何错误。
OT_ERROR_INVALID_ARGS
aPosition 禁播。

otCoapCode

enum otCoapCode otCoapCode

CoAP 代码值。

otCoapOption

struct otCoapOption otCoapOption

此结构表示一个 CoAP 选项。

otCoapOptionContentFormat

enum otCoapOptionContentFormat otCoapOptionContentFormat

CoAP 内容格式代码。

如需查看完整列表,请访问 https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats

otCoapOptionIterator

struct otCoapOptionIterator otCoapOptionIterator

此结构充当 CoAP 选项的迭代器。

otCoapOptionType

enum otCoapOptionType otCoapOptionType

CoAP 选项编号。

otCoapRequestHandler

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

在收到具有指定 URI 路径的 CoAP 请求时,系统会调用此函数指针。

详情
参数
[in] aContext
指向任意上下文信息的指针。
[in] aMessage
指向消息的指针。
[in] aMessageInfo
指向 aMessage 消息信息的指针。

otCoapResource

struct otCoapResource otCoapResource

此结构表示一个 CoAP 资源。

otCoapResponseHandler

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

在收到 CoAP 响应时或请求超时时,系统会调用此函数指针。

详情
参数
[in] aContext
指向应用特定上下文的指针。
[in] aMessage
指向包含响应的消息缓冲区的指针。如果未收到响应,则为 NULL。
[in] aMessageInfo
指向 aMessage 消息信息的指针。如果未收到响应,则为 NULL。
[in] aResult
CoAP 交易的结果。
返回值
OT_ERROR_NONE
成功收到响应。
OT_ERROR_ABORT
CoAP 事务被对等方重置。
OT_ERROR_RESPONSE_TIMEOUT
在超时期限内未收到任何响应或确认。

otCoapTxParameters

struct otCoapTxParameters otCoapTxParameters

此结构表示 CoAP 传输参数。

中删除验证视频。

otCoapType

enum otCoapType otCoapType

CoAP 类型值(2 位无符号整数)。

函数

otCoapAddBlockWiseResource

void otCoapAddBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

此函数在 CoAP 服务器中添加分组式资源。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aResource
指向资源的指针。

otCoapAddResource

void otCoapAddResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

此函数会将资源添加到 CoAP 服务器。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aResource
指向资源的指针。

otCoapBlockSizeFromExponent

uint16_t otCoapBlockSizeFromExponent(
  otCoapBlockSzx aSize
)

此函数会将 CoAP 块选项 SZX 字段转换为实际块大小。

详情
参数
[in] aSize
块大小指数。
返回值
实际大小指数值。

otCoapMessageAppendBlock1Option

otError otCoapMessageAppendBlock1Option(
  otMessage *aMessage,
  uint32_t aNum,
  bool aMore,
  otCoapBlockSzx aSize
)

此函数会附加 Block1 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aNum
当前块编号。
[in] aMore
指示要发送的块的布尔值。
[in] aSize
块大小指数。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendBlock2Option

otError otCoapMessageAppendBlock2Option(
  otMessage *aMessage,
  uint32_t aNum,
  bool aMore,
  otCoapBlockSzx aSize
)

此函数会附加 Block2 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aNum
当前块编号。
[in] aMore
指示要发送的块的布尔值。
[in] aSize
块大小指数。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendContentFormatOption

otError otCoapMessageAppendContentFormatOption(
  otMessage *aMessage,
  otCoapOptionContentFormat aContentFormat
)

此函数会附加 https://tools.ietf.org/html/rfc7252#page-92 中指定的内容格式 CoAP 选项。

如果消息中应包含载荷,则必须在设置 otCoapMessageSetPayloadMarker 之前调用该方法。

该函数是 otCoapMessageAppendUintOption 的便捷封装容器,如果所需的格式类型代码未列在 otCoapOptionContentFormat 中,则应改用此基本函数。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aContentFormat
上文的 otCoapOptionContentFormat 中列出的内容格式之一。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendMaxAgeOption

otError otCoapMessageAppendMaxAgeOption(
  otMessage *aMessage,
  uint32_t aMaxAge
)

此函数会附加 Max-Age 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aMaxAge
最长存在时间值。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendObserveOption

otError otCoapMessageAppendObserveOption(
  otMessage *aMessage,
  uint32_t aObserve
)

此函数会附加一个“观察”选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aObserve
观察字段值。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendOption

otError otCoapMessageAppendOption(
  otMessage *aMessage,
  uint16_t aNumber,
  uint16_t aLength,
  const void *aValue
)

此函数会在标头中附加 CoAP 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aNumber
CoAP 选项编号。
[in] aLength
CoAP 选项长度。
[in] aValue
指向 CoAP 值的指针。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendProxyUriOption

otError otCoapMessageAppendProxyUriOption(
  otMessage *aMessage,
  const char *aUriPath
)

此函数会附加 Proxy-Uri 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aUriPath
指向以 NULL 终止的字符串的指针。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendUintOption

otError otCoapMessageAppendUintOption(
  otMessage *aMessage,
  uint16_t aNumber,
  uint32_t aValue
)

此函数会如 https://tools.ietf.org/html/rfc7252#section-3.2 的规定附加一个无符号整数 CoAP 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aNumber
CoAP 选项编号。
[in] aValue
CoAP 选项无符号整数值。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。
另请参阅
otCoapMessageGetOptionUintValue

otCoapMessageAppendUriPathOptions

otError otCoapMessageAppendUriPathOptions(
  otMessage *aMessage,
  const char *aUriPath
)

此函数会附加一个 Uri-Path 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aUriPath
指向以 NULL 终止的字符串的指针。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageAppendUriQueryOption

otError otCoapMessageAppendUriQueryOption(
  otMessage *aMessage,
  const char *aUriQuery
)

此函数会附加一个 Uri-Query 选项。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aUriQuery
指向以 NULL 终止的字符串的指针,应该包含一个键值对。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区大小。

otCoapMessageCodeToString

const char * otCoapMessageCodeToString(
  const otMessage *aMessage
)

此方法以用户可读的字符串形式返回 CoAP 代码。

@ 以字符串形式返回 CoAP 代码。

详情
参数
[in] aMessage
指向 CoAP 消息的指针。

otCoapMessageGenerateToken

void otCoapMessageGenerateToken(
  otMessage *aMessage,
  uint8_t aTokenLength
)

此函数设置令牌长度并随机化其值。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aTokenLength
要设置的令牌的长度。

otCoapMessageGetCode

otCoapCode otCoapMessageGetCode(
  const otMessage *aMessage
)

此函数返回代码值。

详情
参数
[in] aMessage
指向 CoAP 消息的指针。
返回值
代码值。

otCoapMessageGetMessageId

uint16_t otCoapMessageGetMessageId(
  const otMessage *aMessage
)

此函数返回消息 ID 值。

详情
参数
[in] aMessage
指向 CoAP 消息的指针。
返回值
邮件 ID 值。

otCoapMessageGetToken

const uint8_t * otCoapMessageGetToken(
  const otMessage *aMessage
)

此函数返回一个指向令牌值的指针。

详情
参数
[in] aMessage
指向 CoAP 消息的指针。
返回值
一个指向令牌值的指针。

otCoapMessageGetTokenLength

uint8_t otCoapMessageGetTokenLength(
  const otMessage *aMessage
)

此函数返回令牌长度。

详情
参数
[in] aMessage
指向 CoAP 消息的指针。
返回值
令牌长度。

otCoapMessageGetType

otCoapType otCoapMessageGetType(
  const otMessage *aMessage
)

此函数返回类型值。

详情
参数
[in] aMessage
指向 CoAP 消息的指针。
返回值
类型值。

otCoapMessageInit

void otCoapMessageInit(
  otMessage *aMessage,
  otCoapType aType,
  otCoapCode aCode
)

此函数会初始化 CoAP 标头。

详情
参数
[in,out] aMessage
指向要初始化的 CoAP 消息的指针。
[in] aType
CoAP 消息类型。
[in] aCode
CoAP 消息代码。

otCoapMessageInitResponse

otError otCoapMessageInitResponse(
  otMessage *aResponse,
  const otMessage *aRequest,
  otCoapType aType,
  otCoapCode aCode
)

此函数初始化响应消息。

详情
参数
[in,out] aResponse
指向 CoAP 响应消息的指针。
[in] aRequest
指向 CoAP 请求消息的指针。
[in] aType
CoAP 消息类型。
[in] aCode
CoAP 消息代码。
返回值
OT_ERROR_NONE
已成功初始化响应消息。
OT_ERROR_NO_BUFS
消息缓冲区不足,无法初始化响应消息。

otCoapMessageSetCode

void otCoapMessageSetCode(
  otMessage *aMessage,
  otCoapCode aCode
)

此函数设置代码值。

详情
参数
[in,out] aMessage
指向要初始化的 CoAP 消息的指针。
[in] aCode
CoAP 消息代码。

otCoapMessageSetPayloadMarker

otError otCoapMessageSetPayloadMarker(
  otMessage *aMessage
)

此函数会将指示载荷开始的载荷标记添加到 CoAP 标头中。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
返回值
OT_ERROR_NONE
已成功添加载荷标记。
OT_ERROR_NO_BUFS
标头载荷标记超出了缓冲区大小。

otCoapMessageSetToken

otError otCoapMessageSetToken(
  otMessage *aMessage,
  const uint8_t *aToken,
  uint8_t aTokenLength
)

此函数设置标头中的 Token 值和长度。

详情
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aToken
一个指向令牌值的指针。
[in] aTokenLength
aToken 的长度。
返回值
OT_ERROR_NONE
已成功设置令牌值。
OT_ERROR_NO_BUFS
缓冲区不足,无法设置令牌值。

otCoapNewMessage

otMessage * otCoapNewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

此函数会创建新的 CoAP 消息。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aSettings
指向消息设置或指向 NULL 以设定默认设置的指针。
返回值
指向消息缓冲区的指针,如果未提供消息缓冲区或者参数无效,则为 NULL。

otCoapOptionIteratorGetFirstOption

const otCoapOption * otCoapOptionIteratorGetFirstOption(
  otCoapOptionIterator *aIterator
)

此函数会返回第一个选项的指针。

详情
参数
[in,out] aIterator
指向 CoAP 消息选项迭代器的指针。
返回值
指向第一个选项的指针。如果不存在选项,则返回 NULL 指针。

otCoapOptionIteratorGetFirstOptionMatching

const otCoapOption * otCoapOptionIteratorGetFirstOptionMatching(
  otCoapOptionIterator *aIterator,
  uint16_t aOption
)

此函数将返回指向与指定选项编号匹配的第一个选项的指针。

详情
参数
[in] aIterator
指向 CoAP 消息选项迭代器的指针。
[in] aOption
寻求的选项编号。
返回值
指向第一个匹配选项的指针。如果没有匹配的选项,则返回 NULL 指针。

otCoapOptionIteratorGetNextOption

const otCoapOption * otCoapOptionIteratorGetNextOption(
  otCoapOptionIterator *aIterator
)

此函数会返回指向下一个选项的指针。

详情
参数
[in,out] aIterator
指向 CoAP 消息选项迭代器的指针。
返回值
指向下一个选项的指针。如果没有更多选项,则返回 NULL 指针。

otCoapOptionIteratorGetNextOptionMatching

const otCoapOption * otCoapOptionIteratorGetNextOptionMatching(
  otCoapOptionIterator *aIterator,
  uint16_t aOption
)

此函数会返回指向与指定选项编号匹配的下一个选项的指针。

详情
参数
[in] aIterator
指向 CoAP 消息选项迭代器的指针。
[in] aOption
寻求的选项编号。
返回值
指向下一个匹配选项的指针。如果没有其他匹配选项,则返回 NULL 指针。

otCoapOptionIteratorGetOptionUintValue

otError otCoapOptionIteratorGetOptionUintValue(
  otCoapOptionIterator *aIterator,
  uint64_t *aValue
)

此函数将当前选项值填充到 aValue(假定当前值是按照 https://tools.ietf.org/html/rfc7252#section-3.2 编码的无符号整数)。

详情
参数
[in,out] aIterator
指向 CoAP 消息选项迭代器的指针。
[out] aValue
指向未签名整数的指针,用于接收选项值。
返回值
OT_ERROR_NONE
已成功填充值。
OT_ERROR_NOT_FOUND
当前没有选项。
OT_ERROR_NO_BUFS
值太长,无法放入 uint64_t。
另请参阅
otCoapMessageAppendUintOption

otCoapOptionIteratorGetOptionValue

otError otCoapOptionIteratorGetOptionValue(
  otCoapOptionIterator *aIterator,
  void *aValue
)

此函数会将当前选项值填充到 aValue 中。

详情
参数
[in,out] aIterator
指向 CoAP 消息选项迭代器的指针。
[out] aValue
指向接收选项值的缓冲区的指针。
返回值
OT_ERROR_NONE
已成功填充值。
OT_ERROR_NOT_FOUND
当前没有选项。

otCoapOptionIteratorInit

otError otCoapOptionIteratorInit(
  otCoapOptionIterator *aIterator,
  const otMessage *aMessage
)

此函数可初始化指定消息中选项的迭代器。

详情
参数
[in,out] aIterator
指向 CoAP 消息选项迭代器的指针。
[in] aMessage
指向 CoAP 消息的指针。
返回值
OT_ERROR_NONE
已成功初始化。
OT_ERROR_PARSE
邮件状态不一致。

otCoapRemoveBlockWiseResource

void otCoapRemoveBlockWiseResource(
  otInstance *aInstance,
  otCoapBlockwiseResource *aResource
)

此函数从 CoAP 服务器中移除分组式资源。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aResource
指向资源的指针。

otCoapRemoveResource

void otCoapRemoveResource(
  otInstance *aInstance,
  otCoapResource *aResource
)

此函数从 CoAP 服务器中移除资源。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aResource
指向资源的指针。

otCoapSendRequest

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

此函数会发送 CoAP 请求。

如果需要对请求进行响应,应提供相应的函数和上下文信息。如果不需要响应,则这些参数应为 NULL 指针。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
指向要发送消息的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aHandler
应在收到响应或超时时调用的函数指针。
[in] aContext
指向任意上下文信息的指针。如果未使用,则可能为 NULL。
返回值
OT_ERROR_NONE
已成功发送 CoAP 消息。
OT_ERROR_NO_BUFS
未能分配重新传输数据。

otCoapSendRequestBlockWise

otError otCoapSendRequestBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  otCoapResponseHandler aHandler,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook,
  otCoapBlockwiseReceiveHook aReceiveHook
)

此函数以块为单位发送 CoAP 请求。

启用 OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 配置后,便可使用此函数。

如果需要对请求进行响应,应提供相应的函数和上下文信息。如果响应应该是分组的,应提供相应的钩子函数。如果不需要响应,则这些参数应为 NULL 指针。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
指向要发送消息的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aHandler
应在收到响应或超时时调用的函数指针。
[in] aContext
指向任意上下文信息的指针。如果未使用,则可能为 NULL。
[in] aTransmitHook
指向传出传出钩子函数的指针。
[in] aReceiveHook
指向块级传入传入钩子函数的指针。
返回值
OT_ERROR_NONE
已成功发送 CoAP 消息。
OT_ERROR_NO_BUFS
未能分配重新传输数据。

otCoapSendRequestBlockWiseWithParameters

otError otCoapSendRequestBlockWiseWithParameters(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  otCoapResponseHandler aHandler,
  void *aContext,
  const otCoapTxParameters *aTxParameters,
  otCoapBlockwiseTransmitHook aTransmitHook,
  otCoapBlockwiseReceiveHook aReceiveHook
)

此函数以自定义传输参数分块发送 CoAP 请求。

启用 OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 配置后,便可使用此函数。

如果需要对请求进行响应,应提供相应的函数和上下文信息。如果响应应该是分组的,应提供相应的钩子函数。如果不需要响应,则这些参数应为 NULL 指针。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
指向要发送消息的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aHandler
应在收到响应或超时时调用的函数指针。
[in] aContext
指向任意上下文信息的指针。如果未使用,则可能为 NULL。
[in] aTxParameters
指向此请求的传输参数的指针。使用 NULL 作为默认值。
[in] aTransmitHook
指向传出传出钩子函数的指针。
[in] aReceiveHook
指向块级传入传入钩子函数的指针。
返回值
OT_ERROR_NONE
已成功发送 CoAP 消息。
OT_ERROR_NO_BUFS
未能分配重新传输数据。

otCoapSendRequestWithParameters

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

此函数会发送包含自定义传输参数的 CoAP 请求。

如果需要对请求进行响应,应提供相应的函数和上下文信息。如果不需要响应,则这些参数应为 NULL 指针。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
指向要发送消息的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aHandler
应在收到响应或超时时调用的函数指针。
[in] aContext
指向任意上下文信息的指针。如果未使用,则可能为 NULL。
[in] aTxParameters
指向此请求的传输参数的指针。使用 NULL 作为默认值。否则,指定的参数必须满足以下条件:
  1. mMaxRetransmit 的值不超过 OT_COAP_MAX_RETRANSMIT。
  2. mAckRandomFactorNumerator / mAckRandomFactorDenominator 不得低于 1.0。
  3. 计算出的广告交易平台有效期不得溢出 uint32_t。
返回值
OT_ERROR_INVALID_ARGS
aTxParameters无效。
OT_ERROR_NONE
已成功发送 CoAP 消息。
OT_ERROR_NO_BUFS
未能分配重新传输数据。

otCoapSendResponse

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

此函数从服务器发送 CoAP 响应。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
要发送的 CoAP 响应的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
返回值
OT_ERROR_NONE
已成功将 CoAP 响应消息加入队列。
OT_ERROR_NO_BUFS
可用缓冲区不足,无法发送 CoAP 响应。

otCoapSendResponseBlockWise

otError otCoapSendResponseBlockWise(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook
)

此函数从服务器以块为单位发送 CoAP 响应。

启用 OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 配置后,便可使用此函数。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
要发送的 CoAP 响应的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aContext
指向任意上下文信息的指针。如果未使用,则可能为 NULL。
[in] aTransmitHook
指向传出传出钩子函数的指针。
返回值
OT_ERROR_NONE
已成功将 CoAP 响应消息加入队列。
OT_ERROR_NO_BUFS
可用缓冲区不足,无法发送 CoAP 响应。

otCoapSendResponseBlockWiseWithParameters

otError otCoapSendResponseBlockWiseWithParameters(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  const otCoapTxParameters *aTxParameters,
  void *aContext,
  otCoapBlockwiseTransmitHook aTransmitHook
)

此函数使用自定义传送参数从服务器逐块发送 CoAP 响应。

启用 OPENThread_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE 配置后,便可使用此函数。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
要发送的 CoAP 响应的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aTxParameters
指向此响应的传输参数的指针。使用 NULL 作为默认值。
[in] aContext
指向任意上下文信息的指针。如果未使用,则可能为 NULL。
[in] aTransmitHook
指向传出传出钩子函数的指针。
返回值
OT_ERROR_NONE
已成功将 CoAP 响应消息加入队列。
OT_ERROR_NO_BUFS
可用缓冲区不足,无法发送 CoAP 响应。

otCoapSendResponseWithParameters

otError otCoapSendResponseWithParameters(
  otInstance *aInstance,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo,
  const otCoapTxParameters *aTxParameters
)

此函数通过自定义传输参数从服务器发送 CoAP 响应。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMessage
要发送的 CoAP 响应的指针。
[in] aMessageInfo
指向与 aMessage 关联的消息信息的指针。
[in] aTxParameters
指向此响应的传输参数的指针。使用 NULL 作为默认值。
返回值
OT_ERROR_NONE
已成功将 CoAP 响应消息加入队列。
OT_ERROR_NO_BUFS
可用缓冲区不足,无法发送 CoAP 响应。

otCoapSetDefaultHandler

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

此函数会为未处理的 CoAP 请求设置默认处理程序。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aHandler
应在未处理的请求到达时调用的函数指针。
[in] aContext
指向任意上下文信息的指针。如果未使用,则可能为 NULL。

otCoapStart

otError otCoapStart(
  otInstance *aInstance,
  uint16_t aPort
)

此函数会启动 CoAP 服务器。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPort
要绑定的本地 UDP 端口。
返回值
OT_ERROR_NONE
已成功启动 CoAP 服务器。
OT_ERROR_FAILED
未能启动 CoAP 服务器。

otCoapStop

otError otCoapStop(
  otInstance *aInstance
)

此函数停止 CoAP 服务器。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
已成功停止 CoAP 服务器。

OT_COAP_CODE

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

用于定义 CoAP 代码值的辅助宏。

OT_COAP_DEFAULT_TOKEN_LENGTH

 OT_COAP_DEFAULT_TOKEN_LENGTH 2

默认令牌长度。

OT_COAP_MAX_RETRANSMIT

 OT_COAP_MAX_RETRANSMIT 20

OpenThread 支持的最大传输量。

OT_COAP_MAX_TOKEN_LENGTH

 OT_COAP_MAX_TOKEN_LENGTH 8

指定的令牌长度上限(RFC 7252)。

OT_COAP_MIN_ACK_TIMEOUT

 OT_COAP_MIN_ACK_TIMEOUT 1000

OpenThread 支持的最短 ACK 超时(以毫秒为单位)。

OT_DEFAULT_COAP_PORT

 OT_DEFAULT_COAP_PORT 5683

RFC 7252 中指定的默认 CoAP 端口。

资源

OpenThread API 参考主题源自源代码,可在 GitHub 上找到。 如需了解详情或为我们的文档做贡献,请参阅资源