运营数据集

包含用于 Operational Dataset API 的函数。

摘要

仅适用于 FTD build,数据集更新程序包含用于管理数据集更新的函数。

对于 FTD 和 MTD build,Operational Dataset API 包含用于管理活跃和待处理数据集及数据集 TLV 的函数。

枚举

otMeshcopTlvType{
  OT_MESHCOP_TLV_CHANNEL = 0,
  OT_MESHCOP_TLV_PANID = 1,
  OT_MESHCOP_TLV_EXTPANID = 2,
  OT_MESHCOP_TLV_NETWORKNAME = 3,
  OT_MESHCOP_TLV_PSKC = 4,
  OT_MESHCOP_TLV_NETWORKKEY = 5,
  OT_MESHCOP_TLV_NETWORK_KEY_SEQUENCE = 6,
  OT_MESHCOP_TLV_MESHLOCALPREFIX = 7,
  OT_MESHCOP_TLV_STEERING_DATA = 8,
  OT_MESHCOP_TLV_BORDER_AGENT_RLOC = 9,
  OT_MESHCOP_TLV_COMMISSIONER_ID = 10,
  OT_MESHCOP_TLV_COMM_SESSION_ID = 11,
  OT_MESHCOP_TLV_SECURITYPOLICY = 12,
  OT_MESHCOP_TLV_GET = 13,
  OT_MESHCOP_TLV_ACTIVETIMESTAMP = 14,
  OT_MESHCOP_TLV_COMMISSIONER_UDP_PORT = 15,
  OT_MESHCOP_TLV_STATE = 16,
  OT_MESHCOP_TLV_JOINER_DTLS = 17,
  OT_MESHCOP_TLV_JOINER_UDP_PORT = 18,
  OT_MESHCOP_TLV_JOINER_IID = 19,
  OT_MESHCOP_TLV_JOINER_RLOC = 20,
  OT_MESHCOP_TLV_JOINER_ROUTER_KEK = 21,
  OT_MESHCOP_TLV_PROVISIONING_URL = 32,
  OT_MESHCOP_TLV_VENDOR_NAME_TLV = 33,
  OT_MESHCOP_TLV_VENDOR_MODEL_TLV = 34,
  OT_MESHCOP_TLV_VENDOR_SW_VERSION_TLV = 35,
  OT_MESHCOP_TLV_VENDOR_DATA_TLV = 36,
  OT_MESHCOP_TLV_VENDOR_STACK_VERSION_TLV = 37,
  OT_MESHCOP_TLV_UDP_ENCAPSULATION_TLV = 48,
  OT_MESHCOP_TLV_IPV6_ADDRESS_TLV = 49,
  OT_MESHCOP_TLV_PENDINGTIMESTAMP = 51,
  OT_MESHCOP_TLV_DELAYTIMER = 52,
  OT_MESHCOP_TLV_CHANNELMASK = 53,
  OT_MESHCOP_TLV_COUNT = 54,
  OT_MESHCOP_TLV_PERIOD = 55,
  OT_MESHCOP_TLV_SCAN_DURATION = 56,
  OT_MESHCOP_TLV_ENERGY_LIST = 57,
  OT_MESHCOP_TLV_DISCOVERYREQUEST = 128,
  OT_MESHCOP_TLV_DISCOVERYRESPONSE = 129,
  OT_MESHCOP_TLV_JOINERADVERTISEMENT = 241
}
枚举
表示 Meshcop TLV 类型。

类型定义符

otChannelMask typedef
uint32_t
表示频道掩码。
otDatasetMgmtSetCallback)(otError aResult, void *aContext) typedef
void(*
当收到对 MGMT_SET 请求的响应或超时时,系统会调用指针。
otDatasetUpdaterCallback)(otError aError, void *aContext) typedef
void(*
当数据集更新请求完成时,系统会调用此回调函数指针,报告数据集更新请求的成功或失败状态。
otExtendedPanId typedef
表示扩展的 PAN ID。
otMeshLocalPrefix typedef
表示网格本地前缀。
otMeshcopTlvType typedef
表示 Meshcop TLV 类型。
otNetworkKey typedef
struct otNetworkKey
表示线程网络键。
otNetworkKeyRef typedef
此数据类型表示对 NetworkKey 的 KeyRef。
otNetworkName typedef
struct otNetworkName
表示网络名称。
otOperationalDataset typedef
表示有效或待处理的运营数据集。
otOperationalDatasetComponents typedef
表示活跃或待处理运营数据集中是否存在不同的组件。
otOperationalDatasetTlvs typedef
表示有效或待处理的运营数据集。
otPskc typedef
struct otPskc
表示 PSKc。
otPskcRef typedef
此数据类型表示对 PSKc 的 KeyRef。
otSecurityPolicy typedef
代表安全政策。
otTimestamp typedef
struct otTimestamp
表示线程数据集时间戳组件。

变量

OT_TOOL_PACKED_END

函数

otDatasetConvertToTlvs(const otOperationalDataset *aDataset, otOperationalDatasetTlvs *aDatasetTlvs)
将指定的操作数据集转换为 otOperationalDatasetTlvs
otDatasetCreateNewNetwork(otInstance *aInstance, otOperationalDataset *aDataset)
创建在构建新网络时使用的新运营数据集(仅限 FTD)。
otDatasetGeneratePskc(const char *aPassPhrase, const otNetworkName *aNetworkName, const otExtendedPanId *aExtPanId, otPskc *aPskc)
根据给定的密码、网络名称和扩展 PAN ID 生成 PSKc。
otDatasetGetActive(otInstance *aInstance, otOperationalDataset *aDataset)
获取活跃操作数据集。
otDatasetGetActiveTlvs(otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
获取活跃操作数据集。
otDatasetGetDelayTimerMinimal(otInstance *aInstance)
uint32_t
仅适用于 FTD,获取最小延迟计时器。
otDatasetGetPending(otInstance *aInstance, otOperationalDataset *aDataset)
获取待处理的操作数据集。
otDatasetGetPendingTlvs(otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
获取待处理的操作数据集。
otDatasetIsCommissioned(otInstance *aInstance)
bool
指示有效运营数据集中是否存在有效网络。
otDatasetParseTlvs(const otOperationalDatasetTlvs *aDatasetTlvs, otOperationalDataset *aDataset)
解析给定 otOperationalDatasetTlvs 中的操作数据集。
otDatasetSendMgmtActiveGet(otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
发送 MGMT_ACTIVE_GET。
otDatasetSendMgmtActiveSet(otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext)
发送 MGMT_ACTIVE_SET。
otDatasetSendMgmtPendingGet(otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
发送 MGMT_PENDING_GET。
otDatasetSendMgmtPendingSet(otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext)
发送 MGMT_PENDING_SET。
otDatasetSetActive(otInstance *aInstance, const otOperationalDataset *aDataset)
设置活跃操作数据集。
otDatasetSetActiveTlvs(otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
设置活跃操作数据集。
otDatasetSetDelayTimerMinimal(otInstance *aInstance, uint32_t aDelayTimerMinimal)
仅适用于 FTD,设置最小延迟计时器。
otDatasetSetPending(otInstance *aInstance, const otOperationalDataset *aDataset)
设置待处理操作数据集。
otDatasetSetPendingTlvs(otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
设置待处理操作数据集。
otDatasetUpdateTlvs(const otOperationalDataset *aDataset, otOperationalDatasetTlvs *aDatasetTlvs)
更新给定的操作数据集。
otDatasetUpdaterCancelUpdate(otInstance *aInstance)
void
取消正在进行的(如有)操作数据集更新请求。
otDatasetUpdaterIsUpdateOngoing(otInstance *aInstance)
bool
指明是否有正在进行的操作数据集更新请求。
otDatasetUpdaterRequestUpdate(otInstance *aInstance, const otOperationalDataset *aDataset, otDatasetUpdaterCallback aCallback, void *aContext)
请求更新操作数据集。
otNetworkNameFromString(otNetworkName *aNetworkName, const char *aNameString)
根据指定的以 null 终止的 C 字符串设置 otNetworkName 实例。

结构体

otExtendedPanId

表示扩展的 PAN ID。

otNetworkKey

表示线程网络键。

otNetworkNameotNetworkName

表示网络名称。

otOperationalDataset

表示有效或待处理的运营数据集。

otOperationalDatasetComponents

表示活跃或待处理运营数据集中是否存在不同的组件。

otOperationalDatasetTlvs

表示有效或待处理的运营数据集。

otPskc

表示 PSKc。

otSecurityPolicy

代表安全政策。

otTimestamp

表示线程数据集时间戳组件。

枚举

otMeshcopTlvType

 otMeshcopTlvType

表示 Meshcop TLV 类型。

属性
OT_MESHCOP_TLV_ACTIVETIMESTAMP

Meshcop 活跃时间戳 TLV

OT_MESHCOP_TLV_BORDER_AGENT_RLOC

Meshcop 边境特工定位器 TLV

OT_MESHCOP_TLV_CHANNEL

MeshCop 频道 TLV

OT_MESHCOP_TLV_CHANNELMASK

Meshcop Channel Mask TLV

OT_MESHCOP_TLV_COMMISSIONER_ID

Meshcop Commissioner ID TLV

OT_MESHCOP_TLV_COMMISSIONER_UDP_PORT

Meshcop Commissioner UDP 端口 TLV

OT_MESHCOP_TLV_COMM_SESSION_ID

Meshcop Commissioner 会话 ID TLV

OT_MESHCOP_TLV_COUNT

Meshcop Count TLV

OT_MESHCOP_TLV_DELAYTIMER

Meshcop 延迟计时器 TLV

OT_MESHCOP_TLV_DISCOVERYREQUEST

Meshcop Discovery 请求 TLV

OT_MESHCOP_TLV_DISCOVERYRESPONSE

Meshcop Discovery Response TLV

OT_MESHCOP_TLV_ENERGY_LIST

Meshcop 能源列表 TLV

OT_MESHCOP_TLV_EXTPANID

Meshcop 扩展平移 ID TLV

OT_MESHCOP_TLV_GET

CANNOT TRANSLATE

OT_MESHCOP_TLV_IPV6_ADDRESS_TLV

Meshcop IPv6 地址 TLV

OT_MESHCOP_TLV_JOINERADVERTISEMENT

Meshcop 联接广告 TLV

OT_MESHCOP_TLV_JOINER_DTLS

Meshcop Joiner DTLS 封装 TLV

OT_MESHCOP_TLV_JOINER_IID

Meshcop 连接符 IID TLV

OT_MESHCOP_TLV_JOINER_RLOC

Meshcop 连接符路由器定位器 TLV

OT_MESHCOP_TLV_JOINER_ROUTER_KEK

Meshcop 连接符路由器 KEK TLV

OT_MESHCOP_TLV_JOINER_UDP_PORT

Meshcop 连接符 UDP 端口 TLV

OT_MESHCOP_TLV_MESHLOCALPREFIX

Meshcop Mesh 本地前缀 TLV

OT_MESHCOP_TLV_NETWORKKEY

Meshcop 网络密钥 TLV

OT_MESHCOP_TLV_NETWORKNAME

Meshcop 网络名称 TLV

OT_MESHCOP_TLV_NETWORK_KEY_SEQUENCE

Meshcop 网络键序列 TLV

OT_MESHCOP_TLV_PANID

Meshcop Pan Id TLV

OT_MESHCOP_TLV_PENDINGTIMESTAMP

Meshcop 待处理时间戳 TLV

OT_MESHCOP_TLV_PERIOD

MeshCop 时段 TLV

OT_MESHCOP_TLV_PROVISIONING_URL

Meshcop 配置网址 TLV

OT_MESHCOP_TLV_PSKC

Meshcop PSKc TLV

OT_MESHCOP_TLV_SCAN_DURATION

Meshcop 扫描时长 TLV

OT_MESHCOP_TLV_SECURITYPOLICY

Meshcop 安全政策 TLV

OT_MESHCOP_TLV_STATE

Meshcop State TLV

OT_MESHCOP_TLV_STEERING_DATA

Meshcop 导向数据 TLV

OT_MESHCOP_TLV_UDP_ENCAPSULATION_TLV

Meshcop UDP 封装 TLV

OT_MESHCOP_TLV_VENDOR_DATA_TLV

Meshcop 供应商数据 TLV

OT_MESHCOP_TLV_VENDOR_MODEL_TLV

Meshcop 供应商模型 TLV

OT_MESHCOP_TLV_VENDOR_NAME_TLV

Meshcop 供应商名称 TLV

OT_MESHCOP_TLV_VENDOR_STACK_VERSION_TLV

Meshcop 供应商堆栈版本 TLV

OT_MESHCOP_TLV_VENDOR_SW_VERSION_TLV

Meshcop 供应商 SW 版本 TLV

类型定义符

otChannelMask

uint32_t otChannelMask

表示频道掩码。

otDatasetMgmtSetCallback

void(* otDatasetMgmtSetCallback)(otError aResult, void *aContext)

当收到对 MGMT_SET 请求的响应或超时时,系统会调用指针。

具体说明
参数
[in] aResult
操作的结果。
[in] aContext
指向应用特定上下文的指针。
返回值
OT_ERROR_NONE
领导者接受了请求。
OT_ERROR_REJECTED
请求被主要副本拒绝。
OT_ERROR_PARSE
解析响应时出错。
OT_ERROR_ABORT
请求已由对等方重置。
OT_ERROR_RESPONSE_TIMEOUT
在超时期限内未收到响应或确认。

otDatasetUpdaterCallback

void(* otDatasetUpdaterCallback)(otError aError, void *aContext)

当数据集更新请求完成时,系统会调用此回调函数指针,报告数据集更新请求的成功或失败状态。

启用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 后可用。

具体说明
参数
[in] aError
错误状态。OT_ERROR_NONE 表示数据集更新成功。OT_ERROR_INVALID_STATE 表示失败,原因是状态无效(MLE 正在被停用)。OT_ERROR_ALREADY 表示失败,原因是网络中的其他设备请求了有冲突的数据集更新。
[in] aContext
指向任意上下文的指针(由用户在 otDatasetUpdaterRequestUpdate() 中提供)。

otExtendedPanId

struct otExtendedPanId otExtendedPanId

表示扩展的 PAN ID。

otMeshLocalPrefix

otIp6NetworkPrefix otMeshLocalPrefix

表示网格本地前缀。

otMeshcopTlvType

enum otMeshcopTlvType otMeshcopTlvType

表示 Meshcop TLV 类型。

otNetworkKey

struct otNetworkKey otNetworkKey

表示线程网络键。

otNetworkKeyRef

otCryptoKeyRef otNetworkKeyRef

此数据类型表示对 NetworkKey 的 KeyRef。

引用键

otNetworkName

struct otNetworkName otNetworkName

表示网络名称。

otNetworkName 是以 null 结尾的 C 字符串(即m8 个字符数组必须以 null 字符 \0 结尾。

otOperationalDataset

struct otOperationalDataset otOperationalDataset

表示有效或待处理的运营数据集。

数据集中的组件是可选的。mComponents 结构指定数据集中显示的组件。

otOperationalDatasetComponents

struct otOperationalDatasetComponents otOperationalDatasetComponents

表示活跃或待处理运营数据集中是否存在不同的组件。

otOperationalDatasetTlvs

struct otOperationalDatasetTlvs otOperationalDatasetTlvs

表示有效或待处理的运营数据集。

操作数据集按 Thread 指定的方式进行 TLV 编码。

otPskc

struct otPskc otPskc

表示 PSKc。

otPskcRef

otCryptoKeyRef otPskcRef

此数据类型表示对 PSKc 的 KeyRef。

引用键

otSecurityPolicy

struct otSecurityPolicy otSecurityPolicy

代表安全政策。

otTimestamp

struct otTimestamp otTimestamp

表示线程数据集时间戳组件。

变量

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otNetworkKey OT_TOOL_PACKED_END

函数

otDatasetConvertToTlvs

otError otDatasetConvertToTlvs(
  const otOperationalDataset *aDataset,
  otOperationalDatasetTlvs *aDatasetTlvs
)

将指定的操作数据集转换为 otOperationalDatasetTlvs

具体说明
参数
[in] aDataset
将转换为 TLV 的操作数据集。
[out] aDatasetTlvs
指向用于返回结果的数据集 TLV 的指针。
返回值
OT_ERROR_NONE
已成功转换“aDataset”并更新了“aDatasetTlvs”。
OT_ERROR_INVALID_ARGS
aDataset 无效,不包含有效或待处理的时间戳。

otDatasetCreateNewNetwork

otError otDatasetCreateNewNetwork(
  otInstance *aInstance,
  otOperationalDataset *aDataset
)

创建在构建新网络时使用的新运营数据集(仅限 FTD)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aDataset
运维数据集。
返回值
OT_ERROR_NONE
已成功创建新的运营数据集。
OT_ERROR_FAILED
未能为新参数生成随机值。

otDatasetGeneratePskc

otError otDatasetGeneratePskc(
  const char *aPassPhrase,
  const otNetworkName *aNetworkName,
  const otExtendedPanId *aExtPanId,
  otPskc *aPskc
)

根据给定的密码、网络名称和扩展 PAN ID 生成 PSKc。

PSKc 用于建立委员会会话。

具体说明
参数
[in] aPassPhrase
调试密码。
[in] aNetworkName
用于 PSKc 计算的网络名称。
[in] aExtPanId
用于 PSKc 计算的扩展 PAN ID。
[out] aPskc
指向用于输出生成的 PSKc 的变量的指针。
返回值
OT_ERROR_NONE
成功生成 PSKc。
OT_ERROR_INVALID_ARGS
如果有任何输入参数无效。

otDatasetGetActive

otError otDatasetGetActive(
  otInstance *aInstance,
  otOperationalDataset *aDataset
)

获取活跃操作数据集。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aDataset
指向活跃操作数据集所要放置位置的指针。
返回值
OT_ERROR_NONE
已成功检索到活跃操作数据集。
OT_ERROR_NOT_FOUND
设置存储区中没有对应的值。

otDatasetGetActiveTlvs

otError otDatasetGetActiveTlvs(
  otInstance *aInstance,
  otOperationalDatasetTlvs *aDataset
)

获取活跃操作数据集。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aDataset
指向活跃操作数据集所要放置位置的指针。
返回值
OT_ERROR_NONE
已成功检索到活跃操作数据集。
OT_ERROR_NOT_FOUND
设置存储区中没有对应的值。

otDatasetGetDelayTimerMinimal

uint32_t otDatasetGetDelayTimerMinimal(
  otInstance *aInstance
)

仅适用于 FTD,获取最小延迟计时器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
the
最短延迟计时器的值(以毫秒为单位)。

otDatasetGetPending

otError otDatasetGetPending(
  otInstance *aInstance,
  otOperationalDataset *aDataset
)

获取待处理的操作数据集。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aDataset
指向待处理操作数据集的放置位置的指针。
返回值
OT_ERROR_NONE
已成功检索到待处理操作数据集。
OT_ERROR_NOT_FOUND
设置存储区中没有对应的值。

otDatasetGetPendingTlvs

otError otDatasetGetPendingTlvs(
  otInstance *aInstance,
  otOperationalDatasetTlvs *aDataset
)

获取待处理的操作数据集。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aDataset
指向待处理操作数据集的放置位置的指针。
返回值
OT_ERROR_NONE
已成功检索到待处理操作数据集。
OT_ERROR_NOT_FOUND
设置存储区中没有对应的值。

otDatasetIsCommissioned

bool otDatasetIsCommissioned(
  otInstance *aInstance
)

指示有效运营数据集中是否存在有效网络。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
如果有效运营数据集中存在有效网络,则为 TRUE,否则为 FALSE。

otDatasetParseTlvs

otError otDatasetParseTlvs(
  const otOperationalDatasetTlvs *aDatasetTlvs,
  otOperationalDataset *aDataset
)

解析给定 otOperationalDatasetTlvs 中的操作数据集。

具体说明
参数
[in] aDatasetTlvs
指向数据集 TLV 的指针。
[out] aDataset
指向数据集放置位置的指针。
返回值
OT_ERROR_NONE
已成功通过 aDatasetTlvs 设置 aDataset
OT_ERROR_INVALID_ARGS
aDatasetTlvs无效。

otDatasetSendMgmtActiveGet

otError otDatasetSendMgmtActiveGet(
  otInstance *aInstance,
  const otOperationalDatasetComponents *aDatasetComponents,
  const uint8_t *aTlvTypes,
  uint8_t aLength,
  const otIp6Address *aAddress
)

发送 MGMT_ACTIVE_GET。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDatasetComponents
指向数据集组件结构的指针,用于指定要请求哪些组件。
[in] aTlvTypes
指向包含要请求的其他原始 TLV 类型的数组的指针。
[in] aLength
aTlvTypes 的长度。
[in] aAddress
指向 IPv6 目标的指针(如果为 NULL)将使用主要副本 ALOC。
返回值
OT_ERROR_NONE
成功发送 Meshcop 数据集命令。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法发送。

otDatasetSendMgmtActiveSet

otError otDatasetSendMgmtActiveSet(
  otInstance *aInstance,
  const otOperationalDataset *aDataset,
  const uint8_t *aTlvs,
  uint8_t aLength,
  otDatasetMgmtSetCallback aCallback,
  void *aContext
)

发送 MGMT_ACTIVE_SET。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDataset
指向操作数据集的指针。
[in] aTlvs
指向 TLV 的指针。
[in] aLength
TLV 的长度。
[in] aCallback
指向在收到响应或超时后调用的函数的指针。
[in] aContext
指向 aCallback 的应用特定上下文的指针。
返回值
OT_ERROR_NONE
成功发送 Meshcop 数据集命令。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法发送。
OT_ERROR_BUSY
上一个请求正在处理中。

otDatasetSendMgmtPendingGet

otError otDatasetSendMgmtPendingGet(
  otInstance *aInstance,
  const otOperationalDatasetComponents *aDatasetComponents,
  const uint8_t *aTlvTypes,
  uint8_t aLength,
  const otIp6Address *aAddress
)

发送 MGMT_PENDING_GET。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDatasetComponents
指向数据集组件结构的指针,用于指定要请求哪些组件。
[in] aTlvTypes
指向包含要请求的其他原始 TLV 类型的数组的指针。
[in] aLength
aTlvTypes 的长度。
[in] aAddress
指向 IPv6 目标的指针(如果为 NULL)将使用主要副本 ALOC。
返回值
OT_ERROR_NONE
成功发送 Meshcop 数据集命令。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法发送。

otDatasetSendMgmtPendingSet

otError otDatasetSendMgmtPendingSet(
  otInstance *aInstance,
  const otOperationalDataset *aDataset,
  const uint8_t *aTlvs,
  uint8_t aLength,
  otDatasetMgmtSetCallback aCallback,
  void *aContext
)

发送 MGMT_PENDING_SET。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDataset
指向操作数据集的指针。
[in] aTlvs
指向 TLV 的指针。
[in] aLength
TLV 的长度。
[in] aCallback
指向在收到响应或超时后调用的函数的指针。
[in] aContext
指向 aCallback 的应用特定上下文的指针。
返回值
OT_ERROR_NONE
成功发送 Meshcop 数据集命令。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法发送。
OT_ERROR_BUSY
上一个请求正在处理中。

otDatasetSetActive

otError otDatasetSetActive(
  otInstance *aInstance,
  const otOperationalDataset *aDataset
)

设置活跃操作数据集。

如果数据集不包含活跃时间戳,则表示数据集仅部分完成。

如果在具有部分完整有效数据集的设备上启用 Thread,则设备将尝试使用数据集中的任何现有信息连接到现有 Thread 网络。只需使用 Thread 网络密钥即可连接到网络。

如果数据集中不包含该通道,则设备将跨不同通道发送 MLE Announce 消息,以查找其他通道上的相邻通道。

如果设备成功连接到 Thread 网络,则会从其父级检索完整的活跃数据集。请注意,支持路由器的设备在具有完整的活跃数据集之前,不会转换为 Router 或 Leader 角色。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDataset
指向活跃操作数据集的指针。
返回值
OT_ERROR_NONE
成功设置活跃运营数据集。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法设置活跃操作数据集。
OT_ERROR_NOT_IMPLEMENTED
平台未实现设置功能。

otDatasetSetActiveTlvs

otError otDatasetSetActiveTlvs(
  otInstance *aInstance,
  const otOperationalDatasetTlvs *aDataset
)

设置活跃操作数据集。

如果数据集不包含活跃时间戳,则表示数据集仅部分完成。

如果在具有部分完整有效数据集的设备上启用 Thread,则设备将尝试使用数据集中的任何现有信息连接到现有 Thread 网络。只需使用 Thread 网络密钥即可连接到网络。

如果数据集中不包含该通道,则设备将跨不同通道发送 MLE Announce 消息,以查找其他通道上的相邻通道。

如果设备成功连接到 Thread 网络,则会从其父级检索完整的活跃数据集。请注意,支持路由器的设备在具有完整的活跃数据集之前,不会转换为 Router 或 Leader 角色。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDataset
指向活跃操作数据集的指针。
返回值
OT_ERROR_NONE
成功设置活跃运营数据集。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法设置活跃操作数据集。
OT_ERROR_NOT_IMPLEMENTED
平台未实现设置功能。

otDatasetSetDelayTimerMinimal

otError otDatasetSetDelayTimerMinimal(
  otInstance *aInstance,
  uint32_t aDelayTimerMinimal
)

仅适用于 FTD,设置最小延迟计时器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDelayTimerMinimal
最短延迟计时器的值(以毫秒为单位)。
返回值
OT_ERROR_NONE
已成功设置最短延迟时间计时器。
OT_ERROR_INVALID_ARGS
如果 aDelayTimerMinimal 无效,则会发生此错误。

otDatasetSetPending

otError otDatasetSetPending(
  otInstance *aInstance,
  const otOperationalDataset *aDataset
)

设置待处理操作数据集。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDataset
指向待处理操作数据集的指针。
返回值
OT_ERROR_NONE
成功设置待处理操作数据集。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法设置待处理操作数据集。
OT_ERROR_NOT_IMPLEMENTED
平台未实现设置功能。

otDatasetSetPendingTlvs

otError otDatasetSetPendingTlvs(
  otInstance *aInstance,
  const otOperationalDatasetTlvs *aDataset
)

设置待处理操作数据集。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDataset
指向待处理操作数据集的指针。
返回值
OT_ERROR_NONE
成功设置待处理操作数据集。
OT_ERROR_NO_BUFS
缓冲区空间不足,无法设置待处理操作数据集。
OT_ERROR_NOT_IMPLEMENTED
平台未实现设置功能。

otDatasetUpdateTlvs

otError otDatasetUpdateTlvs(
  const otOperationalDataset *aDataset,
  otOperationalDatasetTlvs *aDatasetTlvs
)

更新给定的操作数据集。

aDataset 包含要更新的字段及其新值。

具体说明
参数
[in] aDataset
指定要更新的类型和值集。
[in,out] aDatasetTlvs
指向要更新的数据集 TLV 的指针。
返回值
OT_ERROR_NONE
已成功更新“aDatasetTlvs”。
OT_ERROR_INVALID_ARGS
aDataset”包含无效值。
OT_ERROR_NO_BUFS
aDatasetTlvs中的空间不足,无法应用更新。

otDatasetUpdaterCancelUpdate

void otDatasetUpdaterCancelUpdate(
  otInstance *aInstance
)

取消正在进行的(如有)操作数据集更新请求。

启用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 后可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。

otDatasetUpdaterIsUpdateOngoing

bool otDatasetUpdaterIsUpdateOngoing(
  otInstance *aInstance
)

指明是否有正在进行的操作数据集更新请求。

启用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 后可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
TRUE
有正在进行的更新。
FALSE
没有正在进行的更新。

otDatasetUpdaterRequestUpdate

otError otDatasetUpdaterRequestUpdate(
  otInstance *aInstance,
  const otOperationalDataset *aDataset,
  otDatasetUpdaterCallback aCallback,
  void *aContext
)

请求更新操作数据集。

启用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 后可用。

aDataset 应包含要更新的字段及其新值。此字段不得包含“有效”或“待处理时间戳”字段。Delay 字段是可选字段;如果未提供该字段,则会使用默认值(1000 毫秒)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDataset
指向包含要更改的字段的数据集的指针。
[in] aCallback
指示数据集更新请求何时完成的回调。
[in] aContext
传递给回调函数的任意上下文。
返回值
OT_ERROR_NONE
已成功开始数据集更新(完成后将调用 aCallback)。
OT_ERROR_INVALID_STATE
设备已停用(MLE 已停用)。
OT_ERROR_INVALID_ARGS
aDataset 无效(包含“Active”或“Pending Timestamp”)。
OT_ERROR_BUSY
无法开始更新,之前的更新正在进行中。
OT_ERROR_NO_BUFS
未能分配缓冲区以保存数据集。

otNetworkNameFromString

otError otNetworkNameFromString(
  otNetworkName *aNetworkName,
  const char *aNameString
)

根据指定的以 null 终止的 C 字符串设置 otNetworkName 实例。

aNameString 必须遵循 UTF-8 编码,并且网络名称的长度不得超过 OT_NETWORK_NAME_MAX_SIZE

具体说明
参数
[out] aNetworkName
指向要设置的 otNetworkName 的指针。
[in] aNameString
名称 C 字符串。
返回值
OT_ERROR_NONE
已成功通过 aNameString 设置 aNetworkName
OT_ERROR_INVALID_ARGS
aNameStrng 无效(过长或未遵循 UTF-8 编码)。

OT_CHANNEL_10_MASK

 OT_CHANNEL_10_MASK (1 << 10)

渠道 10。

OT_CHANNEL_11_MASK

 OT_CHANNEL_11_MASK (1 << 11)

频道 11。

OT_CHANNEL_12_MASK

 OT_CHANNEL_12_MASK (1 << 12)

频道 12。

OT_CHANNEL_13_MASK

 OT_CHANNEL_13_MASK (1 << 13)

频道 13。

OT_CHANNEL_14_MASK

 OT_CHANNEL_14_MASK (1 << 14)

频道 14。

OT_CHANNEL_15_MASK

 OT_CHANNEL_15_MASK (1 << 15)

频道 15。

OT_CHANNEL_16_MASK

 OT_CHANNEL_16_MASK (1 << 16)

频道 16。

OT_CHANNEL_17_MASK

 OT_CHANNEL_17_MASK (1 << 17)

频道 17。

OT_CHANNEL_18_MASK

 OT_CHANNEL_18_MASK (1 << 18)

频道 18。

OT_CHANNEL_19_MASK

 OT_CHANNEL_19_MASK (1 << 19)

频道 19。

OT_CHANNEL_1_MASK

 OT_CHANNEL_1_MASK (1 << 1)

渠道 1.

OT_CHANNEL_20_MASK

 OT_CHANNEL_20_MASK (1 << 20)

频道 20。

OT_CHANNEL_21_MASK

 OT_CHANNEL_21_MASK (1 << 21)

频道 21。

OT_CHANNEL_22_MASK

 OT_CHANNEL_22_MASK (1 << 22)

频道 22。

OT_CHANNEL_23_MASK

 OT_CHANNEL_23_MASK (1 << 23)

频道 23。

OT_CHANNEL_24_MASK

 OT_CHANNEL_24_MASK (1 << 24)

频道 24。

OT_CHANNEL_25_MASK

 OT_CHANNEL_25_MASK (1 << 25)

频道 25。

OT_CHANNEL_26_MASK

 OT_CHANNEL_26_MASK (1 << 26)

频道 26。

OT_CHANNEL_2_MASK

 OT_CHANNEL_2_MASK (1 << 2)

渠道 2.

OT_CHANNEL_3_MASK

 OT_CHANNEL_3_MASK (1 << 3)

渠道 3.

OT_CHANNEL_4_MASK

 OT_CHANNEL_4_MASK (1 << 4)

渠道 4.

OT_CHANNEL_5_MASK

 OT_CHANNEL_5_MASK (1 << 5)

渠道 5.

OT_CHANNEL_6_MASK

 OT_CHANNEL_6_MASK (1 << 6)

渠道 6.

OT_CHANNEL_7_MASK

 OT_CHANNEL_7_MASK (1 << 7)

频道 7.

OT_CHANNEL_8_MASK

 OT_CHANNEL_8_MASK (1 << 8)

频道 8。

OT_CHANNEL_9_MASK

 OT_CHANNEL_9_MASK (1 << 9)

频道 9。

OT_EXT_PAN_ID_SIZE

 OT_EXT_PAN_ID_SIZE 8

线程 PAN ID 大小(字节)

OT_MESH_LOCAL_PREFIX_SIZE

 OT_MESH_LOCAL_PREFIX_SIZE OT_IP6_PREFIX_SIZE

网状网本地前缀的大小(字节)

OT_NETWORK_KEY_SIZE

 OT_NETWORK_KEY_SIZE 16

线程网络键的大小(字节)

OT_NETWORK_NAME_MAX_SIZE

 OT_NETWORK_NAME_MAX_SIZE 16

“Thread Network Name”字段的大小上限(字节)

OT_OPERATIONAL_DATASET_MAX_LENGTH

 OT_OPERATIONAL_DATASET_MAX_LENGTH 254

可操作数据集的最大长度(以字节为单位)。

OT_PSKC_MAX_SIZE

 OT_PSKC_MAX_SIZE 16

PSKc 的大小上限(字节)

资源

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