美国 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 Code 值。
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 Code 值。
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-Path 的 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)
附加一个 Observe 选项。
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 Code 值。

属性
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

土耳其里拉

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

application/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

application/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

application/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

Block1 (RFC7959)

OT_COAP_OPTION_BLOCK2

Block2 (RFC7959)

OT_COAP_OPTION_CONTENT_FORMAT

内容-格式。

OT_COAP_OPTION_E_TAG

ETag。

OT_COAP_OPTION_IF_MATCH

If-Match。

OT_COAP_OPTION_IF_NONE_MATCH

If-None-Match.

OT_COAP_OPTION_LOCATION_PATH

位置路径。

OT_COAP_OPTION_LOCATION_QUERY

位置查询。

OT_COAP_OPTION_MAX_AGE

最大存在时间。

OT_COAP_OPTION_OBSERVE

注意 [RFC7641]。

OT_COAP_OPTION_PROXY_SCHEME

代理架构

OT_COAP_OPTION_PROXY_URI

Proxy-Uri。

OT_COAP_OPTION_SIZE1

大小 1。

OT_COAP_OPTION_SIZE2

大小 2 (RFC7959)

OT_COAP_OPTION_URI_HOST

Uri-Host。

OT_COAP_OPTION_URI_PATH

Uri-Path。

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 配置时可用。

通过更改 aBlockLength 的值,将会重新协商整个交换库的块大小。建议在收到第一个代码块之后再执行,因为后续更改可能会导致其他 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 Code 值。

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-Path 的 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
块大小指数。
返回值
实际大小指数值。

otCoapMessageAttachBlock1Option

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
选项长度超过了缓冲区空间大小。

otCoapMessageAttachBlock2Option

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
选项长度超过了缓冲区空间大小。

otCoapMessageAttachContentFormatOption

otError otCoapMessageAppendContentFormatOption(
  otMessage *aMessage,
  otCoapOptionContentFormat aContentFormat
)

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

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

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

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

otCoapMessageAttachMaxAgeOption

otError otCoapMessageAppendMaxAgeOption(
  otMessage *aMessage,
  uint32_t aMaxAge
)

用于附加 Max-Age 选项。

具体说明
参数
[in,out] aMessage
指向 CoAP 消息的指针。
[in] aMaxAge
Max-Age 值。
返回值
OT_ERROR_NONE
已成功附加选项。
OT_ERROR_INVALID_ARGS
选项类型不等于或大于最后一个选项类型。
OT_ERROR_NO_BUFS
选项长度超过了缓冲区空间大小。

otCoapMessageAttachObserveOption

otError otCoapMessageAppendObserveOption(
  otMessage *aMessage,
  uint32_t aObserve
)

附加一个 Observe 选项。

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

otCoapMessageAttachOption

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
选项长度超过了缓冲区空间大小。

otCoapMessageAttachProxyUriOption

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
选项长度超过了缓冲区空间大小。

otCoapMessageAttachUintOption

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

otCoapMessageAttachUriPathOptions

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
选项长度超过了缓冲区空间大小。

otCoapMessageAttachUriQueryOption

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 消息的指针。
返回值
Code 值。

otCoapMessageGetMessageId

uint16_t otCoapMessageGetMessageId(
  const otMessage *aMessage
)

返回消息 ID 值。

具体说明
参数
[in] aMessage
指向 CoAP 消息的指针。
返回值
消息 ID 值。

otCoapMessageGetToken

const uint8_t * otCoapMessageGetToken(
  const otMessage *aMessage
)

返回指向令牌值的指针。

具体说明
参数
[in] aMessage
指向 CoAP 消息的指针。
返回值
指向 Token 值的指针。

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
指向 Token 值的指针。
[in] aTokenLength
aToken 的长度。
返回值
OT_ERROR_NONE
成功设置 Token 值。
OT_ERROR_NO_BUFS
缓冲区不足,无法设置 Token 值。

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 中。
另请参阅
otCoapMessageAttachUintOption

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
未能分配重新传输数据。
OT_ERROR_INVALID_ARGS
提供的参数无效。

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_NONE
已成功发送 CoAP 消息。
OT_ERROR_NO_BUFS
未能分配重新传输数据。
OT_ERROR_INVALID_ARGS
提供的参数无效。

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 响应。
OT_ERROR_INVALID_ARGS
提供的参数无效。

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 响应。
OT_ERROR_INVALID_ARGS
提供的参数无效。

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

默认 CoAP 端口,如 RFC 7252 中所指定。

资源

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