一般措施

此模块包含所有 Thread 角色的函数。

摘要

网络数据发布者通过监控网络数据以及管理是否或何时添加或移除条目,提供了限制 Thread 网络数据中类似服务和/或前缀(网状前缀或外部路由)条目的数量的机制。

此模块中的所有函数都需要启用 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE

枚举

anonymous enum{
  OT_NETWORK_DIAGNOSTIC_TLV_EXT_ADDRESS = 0,
  OT_NETWORK_DIAGNOSTIC_TLV_SHORT_ADDRESS = 1,
  OT_NETWORK_DIAGNOSTIC_TLV_MODE = 2,
  OT_NETWORK_DIAGNOSTIC_TLV_TIMEOUT = 3,
  OT_NETWORK_DIAGNOSTIC_TLV_CONNECTIVITY = 4,
  OT_NETWORK_DIAGNOSTIC_TLV_ROUTE = 5,
  OT_NETWORK_DIAGNOSTIC_TLV_LEADER_DATA = 6,
  OT_NETWORK_DIAGNOSTIC_TLV_NETWORK_DATA = 7,
  OT_NETWORK_DIAGNOSTIC_TLV_IP6_ADDR_LIST = 8,
  OT_NETWORK_DIAGNOSTIC_TLV_MAC_COUNTERS = 9,
  OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL = 14,
  OT_NETWORK_DIAGNOSTIC_TLV_SUPPLY_VOLTAGE = 15,
  OT_NETWORK_DIAGNOSTIC_TLV_CHILD_TABLE = 16,
  OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES = 17,
  OT_NETWORK_DIAGNOSTIC_TLV_TYPE_LIST = 18,
  OT_NETWORK_DIAGNOSTIC_TLV_MAX_CHILD_TIMEOUT = 19,
  OT_NETWORK_DIAGNOSTIC_TLV_VERSION = 24,
  OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_NAME = 25,
  OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_MODEL = 26,
  OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_SW_VERSION = 27,
  OT_NETWORK_DIAGNOSTIC_TLV_THREAD_STACK_VERSION = 28,
  OT_NETWORK_DIAGNOSTIC_TLV_CHILD = 29,
  OT_NETWORK_DIAGNOSTIC_TLV_CHILD_IP6_ADDR_LIST = 30,
  OT_NETWORK_DIAGNOSTIC_TLV_ROUTER_NEIGHBOR = 31,
  OT_NETWORK_DIAGNOSTIC_TLV_ANSWER = 32,
  OT_NETWORK_DIAGNOSTIC_TLV_QUERY_ID = 33,
  OT_NETWORK_DIAGNOSTIC_TLV_MLE_COUNTERS = 34
}
枚举
otDeviceRole{
  OT_DEVICE_ROLE_DISABLED = 0,
  OT_DEVICE_ROLE_DETACHED = 1,
  OT_DEVICE_ROLE_CHILD = 2,
  OT_DEVICE_ROLE_ROUTER = 3,
  OT_DEVICE_ROLE_LEADER = 4
}
枚举
表示 Thread 设备角色。
otNetDataPublisherEvent{
  OT_NETDATA_PUBLISHER_EVENT_ENTRY_ADDED = 0,
  OT_NETDATA_PUBLISHER_EVENT_ENTRY_REMOVED = 1
}
枚举
表示从发布商回调报告的事件。
otRoutePreference{
  OT_ROUTE_PREFERENCE_LOW = -1,
  OT_ROUTE_PREFERENCE_MED = 0,
  OT_ROUTE_PREFERENCE_HIGH = 1
}
枚举
otExternalRouteConfigotBorderRouterConfig 中定义有效的 mPreference 值。

类型定义符

otBorderRouterConfig typedef
表示边界路由器配置。
otDetachGracefullyCallback)(void *aContext) typedef
void(*
此回调通知应用分离过程已完成。
otExternalRouteConfig typedef
表示外部路由配置。
otIpCounters typedef
struct otIpCounters
表示 IP 级计数器。
otLeaderData typedef
struct otLeaderData
表示线程前导数据。
otLinkModeConfig typedef
表示 MLE 链接模式配置。
otLowpanContextInfo typedef
表示与网络数据中的前缀关联的 6LoWPAN 上下文 ID 信息。
otMleCounters typedef
struct otMleCounters
表示 Thread MLE 计数器。
otNeighborInfoIterator typedef
int16_t
用于遍历相邻表。
otNetDataDnsSrpServicePublisherCallback)(otNetDataPublisherEvent aEvent, void *aContext) typedef
void(*
指针类型定义了在向 Thread 网络数据添加或从中移除“DNS/SRP 服务”条目时用于通知的回调。
otNetDataPrefixPublisherCallback)(otNetDataPublisherEvent aEvent, const otIp6Prefix *aPrefix, void *aContext) typedef
void(*
指针类型定义了在向 Thread 网络数据添加或从中移除前缀(网状网络或外部路由)条目时用于通知的回调。
otNetDataPublisherEvent typedef
表示从发布商回调报告的事件。
otNetworkDataIterator typedef
uint32_t
用于遍历网络数据信息。
otNetworkDiagChildEntry typedef
表示网络诊断子表条目。
otNetworkDiagConnectivity typedef
表示网络诊断连接值。
otNetworkDiagIterator typedef
uint16_t
用于迭代 Network Diagnostic TLV。
otNetworkDiagMacCounters typedef
表示网络诊断 Mac 计数器值。
otNetworkDiagMleCounters typedef
表示网络诊断 MLE 计数器值。
otNetworkDiagRoute typedef
表示网络诊断路由 TLV 值。
otNetworkDiagRouteData typedef
表示网络诊断路由数据。
otNetworkDiagTlv typedef
表示网络诊断 TLV。
otReceiveDiagnosticGetCallback)(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext) typedef
void(*
收到网络诊断获取响应时,系统会调用指针。
otRoutePreference typedef
otExternalRouteConfigotBorderRouterConfig 中定义有效的 mPreference 值。
otServerConfig typedef
表示服务器配置。
otServiceConfig typedef
表示 Service 配置。
otThreadAnycastLocatorCallback)(void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16) typedef
void(*
指针类型定义了用于通知 otThreadLocateAnycastDestination() 请求结果的回调。
otThreadDiscoveryRequestCallback)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext) typedef
void(*
每次收到 MLE 发现请求消息时都会调用指针。
otThreadDiscoveryRequestInfo typedef
表示线程发现请求数据。
otThreadParentResponseCallback)(otThreadParentResponseInfo *aInfo, void *aContext) typedef
void(*
每次收到 MLE 父级响应消息时都会调用指针。
otThreadParentResponseInfo typedef
表示 MLE 父响应数据。

函数

otConvertDurationInSecondsToString(uint32_t aDuration, char *aBuffer, uint16_t aSize)
void
uint32_t 时长(以秒为单位)转换为直观易懂的字符串。
otNetDataContainsOmrPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
bool
检查给定的前缀是否可以充当有效的 OMR 前缀,以及领先的网络数据是否包含此前缀。
otNetDataGet(otInstance *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)
提供分区的 Thread 网络数据的完整或稳定副本。
otNetDataGetCommissioningDataset(otInstance *aInstance, otCommissioningDataset *aDataset)
void
从分区的网络数据中获取调试数据集。
otNetDataGetLength(otInstance *aInstance)
uint8_t
获取分区的线程网络数据的当前长度(字节数)。
otNetDataGetMaxLength(otInstance *aInstance)
uint8_t
获取自从 OT 堆栈初始化或上次调用 otNetDataResetMaxLength() 以来观察到的线程网络数据的最大长度。
otNetDataGetNextLowpanContextInfo(otInstance *aInstance, otNetworkDataIterator *aIterator, otLowpanContextInfo *aContextInfo)
获取该分区的网络数据中的下一个 6LoWPAN 上下文 ID 信息。
otNetDataGetNextOnMeshPrefix(otInstance *aInstance, otNetworkDataIterator *aIterator, otBorderRouterConfig *aConfig)
获取分区的网络数据中的下一个网状网络前缀。
otNetDataGetNextRoute(otInstance *aInstance, otNetworkDataIterator *aIterator, otExternalRouteConfig *aConfig)
获取分区的网络数据中的下一个外部路由。
otNetDataGetNextService(otInstance *aInstance, otNetworkDataIterator *aIterator, otServiceConfig *aConfig)
获取分区的网络数据中的下一个服务。
otNetDataGetStableVersion(otInstance *aInstance)
uint8_t
获取稳定版网络数据版本。
otNetDataGetVersion(otInstance *aInstance)
uint8_t
获取网络数据版本。
otNetDataIsDnsSrpServiceAdded(otInstance *aInstance)
bool
指明“DNS/SRP 服务”条目当前是否已添加到 Thread 网络数据中。
otNetDataIsPrefixAdded(otInstance *aInstance, const otIp6Prefix *aPrefix)
bool
指示当前是否已将已发布的前缀条目(网状网络或外部路由)添加到 Thread 网络数据中。
otNetDataPublishDnsSrpServiceAnycast(otInstance *aInstance, uint8_t aSequenceNUmber)
void
请求在 Thread Network Data 中发布“DNS/SRP 服务任播地址”。
otNetDataPublishDnsSrpServiceUnicast(otInstance *aInstance, const otIp6Address *aAddress, uint16_t aPort)
void
请求在 Thread Network Data 中发布“DNS/SRP 服务单播地址”。
otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(otInstance *aInstance, uint16_t aPort)
void
请求在 Thread Network Data 中发布“DNS/SRP 服务单播地址”。
otNetDataPublishExternalRoute(otInstance *aInstance, const otExternalRouteConfig *aConfig)
请求要在 Thread Network Data 中发布的外部路由前缀。
otNetDataPublishOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
请求网状前缀,以便在 Thread 网络数据中发布。
otNetDataReplacePublishedExternalRoute(otInstance *aInstance, const otIp6Prefix *aPrefix, const otExternalRouteConfig *aConfig)
替换 Thread 网络数据中之前发布的外部路由。
otNetDataResetMaxLength(otInstance *aInstance)
void
重置 Thread 网络数据跟踪的最大长度。
otNetDataSetDnsSrpServicePublisherCallback(otInstance *aInstance, otNetDataDnsSrpServicePublisherCallback aCallback, void *aContext)
void
设置回调,以便在已发布的“DNS/SRP 服务”实际添加到 Thread 网络数据或从 Thread 网络数据中移除时发出通知。
otNetDataSetPrefixPublisherCallback(otInstance *aInstance, otNetDataPrefixPublisherCallback aCallback, void *aContext)
void
设置回调,以便在实际向 Thread 网络数据添加或从中移除已发布的前缀条目时发出通知。
otNetDataSteeringDataCheckJoiner(otInstance *aInstance, const otExtAddress *aEui64)
检查导向数据是否包含连接符。
otNetDataSteeringDataCheckJoinerWithDiscerner(otInstance *aInstance, const struct otJoinerDiscerner *aDiscerner)
检查导向数据是否包含具有给定识别器值的联接器。
otNetDataUnpublishDnsSrpService(otInstance *aInstance)
void
从 Thread 网络数据中取消发布之前添加的任何 DNS/SRP(任播或 Unicast)服务条目。
otNetDataUnpublishPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
取消发布之前发布的网状网或外部路由前缀。
otThreadBecomeChild(otInstance *aInstance)
尝试重新附加为子文件。
otThreadBecomeDetached(otInstance *aInstance)
与 Thread 网络分离。
otThreadDetachGracefully(otInstance *aInstance, otDetachGracefullyCallback aCallback, void *aContext)
通知网络中的其他节点(如果有),然后停止 Thread 协议操作。
otThreadDeviceRoleToString(otDeviceRole aRole)
const char *
将设备角色转换为人类可读的字符串。
otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, bool aEnableEui64Filtering, otHandleActiveScanResult aCallback, void *aCallbackContext)
启动 Thread Discovery 扫描。
otThreadGetChildTimeout(otInstance *aInstance)
uint32_t
获取以 Child 角色执行操作时使用的 Thread Child Timeout(以秒为单位)。
otThreadGetDeviceRole(otInstance *aInstance)
获取设备角色。
otThreadGetDomainName(otInstance *aInstance)
const char *
获取线程域名。
otThreadGetExtendedPanId(otInstance *aInstance)
const otExtendedPanId *
获取 IEEE 802.15.4 扩展 PAN ID。
otThreadGetFixedDuaInterfaceIdentifier(otInstance *aInstance)
获取为线程网域 Unicast 地址手动指定的接口标识符。
otThreadGetIp6Counters(otInstance *aInstance)
const otIpCounters *
获取 IPv6 计数器。
otThreadGetKeySequenceCounter(otInstance *aInstance)
uint32_t
获取 thrKeySequenceCounter。
otThreadGetKeySwitchGuardTime(otInstance *aInstance)
uint32_t
获取 thrKeySwitchGuardTime(以小时为单位)。
otThreadGetLeaderData(otInstance *aInstance, otLeaderData *aLeaderData)
获取线程主管数据。
otThreadGetLeaderRloc(otInstance *aInstance, otIp6Address *aLeaderRloc)
返回指向主管的 RLOC 的指针。
otThreadGetLeaderRouterId(otInstance *aInstance)
uint8_t
获取主管的路由器 ID。
otThreadGetLeaderWeight(otInstance *aInstance)
uint8_t
获取队长的体重。
otThreadGetLinkLocalAllThreadNodesMulticastAddress(otInstance *aInstance)
const otIp6Address *
获取 Thread Link-Local 所有线程节点的多播地址。
otThreadGetLinkLocalIp6Address(otInstance *aInstance)
const otIp6Address *
获取 Thread 链路本地 IPv6 地址。
otThreadGetLinkMode(otInstance *aInstance)
获取 MLE 链接模式配置。
otThreadGetMaxTimeInQueue(otInstance *aInstance)
uint32_t
获取 TX 队列中消息的最长排队时间。
otThreadGetMeshLocalEid(otInstance *aInstance)
const otIp6Address *
获取网格本地 EID 地址。
otThreadGetMeshLocalPrefix(otInstance *aInstance)
返回指向网格本地前缀的指针。
otThreadGetMleCounters(otInstance *aInstance)
const otMleCounters *
获取 Thread MLE 计数器。
otThreadGetNetworkKey(otInstance *aInstance, otNetworkKey *aNetworkKey)
void
获取 Thread 网络密钥。
otThreadGetNetworkKeyRef(otInstance *aInstance)
获取 Thread 网络密钥的 otNetworkKeyRef
otThreadGetNetworkName(otInstance *aInstance)
const char *
获取 Thread 网络名称。
otThreadGetNextDiagnosticTlv(const otMessage *aMessage, otNetworkDiagIterator *aIterator, otNetworkDiagTlv *aNetworkDiagTlv)
获取消息中的下一个网络诊断 TLV。
otThreadGetNextNeighborInfo(otInstance *aInstance, otNeighborInfoIterator *aIterator, otNeighborInfo *aInfo)
获取下一个相邻项信息。
otThreadGetParentAverageRssi(otInstance *aInstance, int8_t *aParentRssi)
该函数会检索线程父级的平均 RSSI。
otThreadGetParentInfo(otInstance *aInstance, otRouterInfo *aParentInfo)
函数检索作为父级的线程路由器的诊断信息。
otThreadGetParentLastRssi(otInstance *aInstance, int8_t *aLastRssi)
该函数会从线程父级检索最后一个数据包的 RSSI。
otThreadGetPartitionId(otInstance *aInstance)
uint32_t
获取分区 ID。
otThreadGetRealmLocalAllThreadNodesMulticastAddress(otInstance *aInstance)
const otIp6Address *
获取 Thread Realm-Local 所有线程节点的多播地址。
otThreadGetRloc(otInstance *aInstance)
const otIp6Address *
获取线程路由定位器 (RLOC) 地址。
otThreadGetRloc16(otInstance *aInstance)
uint16_t
获取 RLOC16。
otThreadGetServiceAloc(otInstance *aInstance, uint8_t aServiceId, otIp6Address *aServiceAloc)
检索指定服务 ID 的服务 ALOC。
otThreadGetTimeInQueueHistogram(otInstance *aInstance, uint16_t *aNumBins, uint32_t *aBinInterval)
const uint32_t *
获取 TX 队列中消息的排队时间直方图。
otThreadGetVendorModel(otInstance *aInstance)
const char *
获取供应商模型字符串。
otThreadGetVendorName(otInstance *aInstance)
const char *
获取供应商名称字符串。
otThreadGetVendorSwVersion(otInstance *aInstance)
const char *
获取供应商 sw 版本字符串。
otThreadGetVersion(void)
uint16_t
获取 Thread 协议版本。
otThreadIsAnycastLocateInProgress(otInstance *aInstance)
bool
指示任播定位请求当前是否正在进行。
otThreadIsDiscoverInProgress(otInstance *aInstance)
bool
确定 MLE 线程发现当前正在进行中。
otThreadIsSingleton(otInstance *aInstance)
bool
指示节点是否是网络中唯一的路由器。
otThreadLocateAnycastDestination(otInstance *aInstance, const otIp6Address *aAnycastAddress, otThreadAnycastLocatorCallback aCallback, void *aContext)
请求要定位的给定任播地址的最近目的地。
otThreadRegisterParentResponseCallback(otInstance *aInstance, otThreadParentResponseCallback aCallback, void *aContext)
void
注册一个回调,以接收 MLE 父级响应数据。
otThreadResetIp6Counters(otInstance *aInstance)
void
重置 IPv6 计数器。
otThreadResetMleCounters(otInstance *aInstance)
void
重置 Thread MLE 计数器。
otThreadResetTimeInQueueStat(otInstance *aInstance)
void
重置 TX 队列排队时间统计信息。
otThreadSearchForBetterParent(otInstance *aInstance)
启动以下过程:子级搜索更好的父级,同时保持与其当前的父级保持连接。
otThreadSendAddressNotification(otInstance *aInstance, otIp6Address *aDestination, otIp6Address *aTarget, otIp6InterfaceIdentifier *aMlIid)
void
发送主动地址通知 (ADDR_NTF.ntf) 消息。
otThreadSendDiagnosticGet(otInstance *aInstance, const otIp6Address *aDestination, const uint8_t aTlvTypes[], uint8_t aCount, otReceiveDiagnosticGetCallback aCallback, void *aCallbackContext)
发送网络诊断获取请求。
otThreadSendDiagnosticReset(otInstance *aInstance, const otIp6Address *aDestination, const uint8_t aTlvTypes[], uint8_t aCount)
发送网络诊断重置请求。
otThreadSendProactiveBackboneNotification(otInstance *aInstance, otIp6Address *aTarget, otIp6InterfaceIdentifier *aMlIid, uint32_t aTimeSinceLastTransaction)
在骨干链路上发送主动骨干通知 (PRO_BB.ntf) 消息。
otThreadSetChildTimeout(otInstance *aInstance, uint32_t aTimeout)
void
设置以子角色执行操作时使用的线程子超时(以秒为单位)。
otThreadSetDiscoveryRequestCallback(otInstance *aInstance, otThreadDiscoveryRequestCallback aCallback, void *aContext)
void
设置回调以接收 MLE 发现请求数据。
otThreadSetDomainName(otInstance *aInstance, const char *aDomainName)
设置线程域名。
otThreadSetEnabled(otInstance *aInstance, bool aEnabled)
启动 Thread 协议操作。
otThreadSetExtendedPanId(otInstance *aInstance, const otExtendedPanId *aExtendedPanId)
设置 IEEE 802.15.4 Extended PAN ID。
otThreadSetFixedDuaInterfaceIdentifier(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
设置或清除为线程网域 Unicast 地址手动指定的接口标识符。
otThreadSetJoinerAdvertisement(otInstance *aInstance, uint32_t aOui, const uint8_t *aAdvData, uint8_t aAdvDataLength)
设置发现 Thread 网络时的线程连接程序通告。
otThreadSetKeySequenceCounter(otInstance *aInstance, uint32_t aKeySequenceCounter)
void
设置 thrKeySequenceCounter。
otThreadSetKeySwitchGuardTime(otInstance *aInstance, uint32_t aKeySwitchGuardTime)
void
设置 thrKeySwitchGuardTime(以小时为单位)。
otThreadSetLinkMode(otInstance *aInstance, otLinkModeConfig aConfig)
设置 MLE 链接模式配置。
otThreadSetMeshLocalPrefix(otInstance *aInstance, const otMeshLocalPrefix *aMeshLocalPrefix)
设置网格本地前缀。
otThreadSetNetworkKey(otInstance *aInstance, const otNetworkKey *aKey)
设置 Thread 网络密钥。
otThreadSetNetworkKeyRef(otInstance *aInstance, otNetworkKeyRef aKeyRef)
将 Thread 网络键设置为 otNetworkKeyRef
otThreadSetNetworkName(otInstance *aInstance, const char *aNetworkName)
设置 Thread 网络名称。
otThreadSetVendorModel(otInstance *aInstance, const char *aVendorModel)
设置供应商模型字符串。
otThreadSetVendorName(otInstance *aInstance, const char *aVendorName)
设置供应商名称字符串。
otThreadSetVendorSwVersion(otInstance *aInstance, const char *aVendorSwVersion)
设置供应商软件版本字符串。

结构体

otBorderRouterConfig

表示边界路由器配置。

otExternalRouteConfig

表示外部路由配置。

otIpCounters

表示 IP 级计数器。

otLeaderData

表示线程前导数据。

otLinkModeConfig

表示 MLE 链接模式配置。

otLowpanContextInfo

表示与网络数据中的前缀关联的 6LoWPAN 上下文 ID 信息。

otMleCounters

表示 Thread MLE 计数器。

otNeighborInfo

保存相邻 Thread 节点的诊断信息。

otNetworkDiagChildEntry

表示网络诊断子表条目。

otNetworkDiagConnectivity

表示网络诊断连接值。

otNetworkDiagMacCounters

表示网络诊断 Mac 计数器值。

otNetworkDiagMleCounters

表示网络诊断 MLE 计数器值。

otNetworkDiagRoute

表示网络诊断路由 TLV 值。

otNetworkDiagRouteData

表示网络诊断路由数据。

otNetworkDiagTlv

表示网络诊断 TLV。

otRouterInfo

保存 Thread Router 的诊断信息。

otServerConfig

表示服务器配置。

otServiceConfig

表示 Service 配置。

otThreadDiscoveryRequestInfo 类中的方法

表示线程发现请求数据。

otThreadParentResponseInfo

表示 MLE 父响应数据。

枚举

匿名枚举

 anonymous enum
属性
OT_NETWORK_DIAGNOSTIC_TLV_ANSWER

回答 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL

电池电量 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES

频道页 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_CHILD

子级 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_CHILD_IP6_ADDR_LIST

子 IPv6 地址列表 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_CHILD_TABLE

子表 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_CONNECTIVITY

连接 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_EXT_ADDRESS

MAC 扩展地址 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_IP6_ADDR_LIST

IPv6 地址列表 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_LEADER_DATA

主要数据 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_MAC_COUNTERS

MAC 计数器 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_MAX_CHILD_TIMEOUT

子超时时长上限 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_MLE_COUNTERS

MLE 计数器 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_MODE

模式 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_NETWORK_DATA

Network Data TLV。

OT_NETWORK_DIAGNOSTIC_TLV_QUERY_ID

查询 ID TLV。

OT_NETWORK_DIAGNOSTIC_TLV_ROUTE

Route64 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_ROUTER_NEIGHBOR

路由器相邻 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_SHORT_ADDRESS

Address16 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_SUPPLY_VOLTAGE

供电电压 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_THREAD_STACK_VERSION

线程堆栈版本 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_TIMEOUT

超时 TLV(SED 的最长轮询时间段)

OT_NETWORK_DIAGNOSTIC_TLV_TYPE_LIST

类型 List TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_MODEL

供应商模型 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_NAME

供应商名称 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_SW_VERSION

供应商软件版本 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VERSION

版本 TLV。

otDeviceRole

 otDeviceRole

表示 Thread 设备角色。

属性
OT_DEVICE_ROLE_CHILD

Thread Child 角色。

OT_DEVICE_ROLE_DETACHED

当前未加入 Thread 网络/分区。

OT_DEVICE_ROLE_DISABLED

线程堆栈已停用。

OT_DEVICE_ROLE_LEADER

“讨论帖负责人”角色。

OT_DEVICE_ROLE_ROUTER

Thread Router 角色。

otNetDataPublisherEvent

 otNetDataPublisherEvent

表示从发布商回调报告的事件。

属性
OT_NETDATA_PUBLISHER_EVENT_ENTRY_ADDED

已发布的条目已添加到 Thread 网络数据中。

OT_NETDATA_PUBLISHER_EVENT_ENTRY_REMOVED

已发布的条目已从 Thread 网络数据中移除。

otRoutePreference

 otRoutePreference

otExternalRouteConfigotBorderRouterConfig 中定义有效的 mPreference 值。

属性
OT_ROUTE_PREFERENCE_HIGH

高路线偏好。

OT_ROUTE_PREFERENCE_LOW

路线偏好较低。

OT_ROUTE_PREFERENCE_MED

中等路由偏好设置。

类型定义符

otBorderRouterConfig

struct otBorderRouterConfig otBorderRouterConfig

表示边界路由器配置。

otDetachGracefullyCallback

void(* otDetachGracefullyCallback)(void *aContext)

此回调通知应用分离过程已完成。

具体说明
参数
[in] aContext
指向应用特定上下文的指针。

otExternalRouteConfig

struct otExternalRouteConfig otExternalRouteConfig

表示外部路由配置。

otIpCounters

struct otIpCounters otIpCounters

表示 IP 级计数器。

otLeaderData

struct otLeaderData otLeaderData

表示线程前导数据。

otLinkModeConfig

struct otLinkModeConfig otLinkModeConfig

表示 MLE 链接模式配置。

otLowpanContextInfo

struct otLowpanContextInfo otLowpanContextInfo

表示与网络数据中的前缀关联的 6LoWPAN 上下文 ID 信息。

otMleCounters

struct otMleCounters otMleCounters

表示 Thread MLE 计数器。

otNeighborInfoIterator

int16_t otNeighborInfoIterator

用于遍历相邻表。

otNetDataDnsSrpServicePublisherCallback

void(* otNetDataDnsSrpServicePublisherCallback)(otNetDataPublisherEvent aEvent, void *aContext)

指针类型定义了在向 Thread 网络数据添加或从中移除“DNS/SRP 服务”条目时用于通知的回调。

移除时,无论该条目是被 Publisher 移除(例如,当网络数据中已经存在太多类似条目时),还是通过调用取消发布该条目(即调用 otNetDataUnpublishDnsSrpService())移除该条目,系统都会调用回调函数。

具体说明
参数
[in] aEvent
表示事件(是否添加或移除了条目)。
[in] aContext
指向应用特定上下文的指针。

otNetDataPrefixPublisherCallback

void(* otNetDataPrefixPublisherCallback)(otNetDataPublisherEvent aEvent, const otIp6Prefix *aPrefix, void *aContext)

指针类型定义了在向 Thread 网络数据添加或从中移除前缀(网状网络或外部路由)条目时用于通知的回调。

移除时,无论该条目是被 Publisher 移除(例如,当网络数据中已经存在太多类似条目时),还是通过调用取消发布该条目的显式调用移除该条目。

具体说明
参数
[in] aEvent
表示事件(是否添加或移除了条目)。
[in] aPrefix
指向前缀条目的指针。
[in] aContext
指向应用特定上下文的指针。

otNetDataPublisherEvent

enum otNetDataPublisherEvent otNetDataPublisherEvent

表示从发布商回调报告的事件。

otNetworkDataIterator

uint32_t otNetworkDataIterator

用于遍历网络数据信息。

otNetworkDiagChildEntry

struct otNetworkDiagChildEntry otNetworkDiagChildEntry

表示网络诊断子表条目。

otNetworkDiagConnectivity

struct otNetworkDiagConnectivity otNetworkDiagConnectivity

表示网络诊断连接值。

otNetworkDiagIterator

uint16_t otNetworkDiagIterator

用于迭代 Network Diagnostic TLV。

otNetworkDiagMacCounters

struct otNetworkDiagMacCounters otNetworkDiagMacCounters

表示网络诊断 Mac 计数器值。

如需了解成员字段的定义,请参阅 RFC 2863

otNetworkDiagMleCounters

struct otNetworkDiagMleCounters otNetworkDiagMleCounters

表示网络诊断 MLE 计数器值。

otNetworkDiagRoute

struct otNetworkDiagRoute otNetworkDiagRoute

表示网络诊断路由 TLV 值。

otNetworkDiagRouteData

struct otNetworkDiagRouteData otNetworkDiagRouteData

表示网络诊断路由数据。

otNetworkDiagTlv

struct otNetworkDiagTlv otNetworkDiagTlv

表示网络诊断 TLV。

otReceiveDiagnosticGetCallback

void(* otReceiveDiagnosticGetCallback)(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext)

收到网络诊断获取响应时,系统会调用指针。

具体说明
参数
[in] aError
未能获取响应时发生的错误。
[in] aMessage
指向包含收到的网络诊断获取响应载荷的消息缓冲区的指针。仅当 aError 设为 OT_ERROR_NONE 时可用。
[in] aMessageInfo
指向 aMessage 的消息信息的指针。仅当 aError 设为 OT_ERROR_NONE 时可用。
[in] aContext
指向应用特定上下文的指针。

otRoutePreference

enum otRoutePreference otRoutePreference

otExternalRouteConfigotBorderRouterConfig 中定义有效的 mPreference 值。

otServerConfig

struct otServerConfig otServerConfig

表示服务器配置。

otServiceConfig

struct otServiceConfig otServiceConfig

表示 Service 配置。

otThreadAnycastLocatorCallback

void(* otThreadAnycastLocatorCallback)(void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16)

指针类型定义了用于通知 otThreadLocateAnycastDestination() 请求结果的回调。

具体说明
参数
[in] aContext
指向任意上下文的指针(在注册回调时提供)。
[in] aError
处理请求时发生的错误。OT_ERROR_NONE 表示成功。OT_ERROR_response_TIMEOUT 表示找不到目标。OT_ERROR_ABORT 表示请求已中止。
[in] aMeshLocalAddress
aError 为 OT_ERROR_NONE 时,指向任播地址最近目的地的网状网本地 EID 的指针,否则为 NULL。
[in] aRloc16
目的地的 RLOC16(如果找到),否则无效 RLOC16 (0xfffe)。

otThreadDiscoveryRequestCallback

void(* otThreadDiscoveryRequestCallback)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext)

每次收到 MLE 发现请求消息时都会调用指针。

具体说明
参数
[in] aInfo
指向发现请求信息数据的指针。
[in] aContext
指向回调应用特定上下文的指针。

otThreadDiscoveryRequestInfo

struct otThreadDiscoveryRequestInfo otThreadDiscoveryRequestInfo

表示线程发现请求数据。

otThreadParentResponseCallback

void(* otThreadParentResponseCallback)(otThreadParentResponseInfo *aInfo, void *aContext)

每次收到 MLE 父级响应消息时都会调用指针。

otThreadRegisterParentResponseCallback() 中会用到它。

具体说明
参数
[in] aInfo
指向堆栈上存储统计数据的位置的指针。
[in] aContext
指向回调客户端特定上下文的指针。

otThreadParentResponseInfo

struct otThreadParentResponseInfo otThreadParentResponseInfo

表示 MLE 父响应数据。

函数

otConvertDurationInSecondsToString

void otConvertDurationInSecondsToString(
  uint32_t aDuration,
  char *aBuffer,
  uint16_t aSize
)

uint32_t 时长(以秒为单位)转换为直观易懂的字符串。

需要启用 OPENTHREAD_CONFIG_UPTIME_ENABLE

该字符串使用以下格式:“::”表示小时、分钟、秒(如果时长少于一天),或“

d.::”(如果超过 1 天)。

如果生成的字符串不适合 aBuffer(在其 aSize 字符内),该字符串将被截断,但输出的字符串始终以空字符结尾。

旨在与 otNeighborInfootChildInfo 结构中的 mAgemConnectionTime 搭配使用。

具体说明
参数
[in] aDuration
持续时间间隔(以秒为单位)。
[out] aBuffer
指向用于输出字符串的字符数组的指针。
[in] aSize
aBuffer 的大小(以字节为单位)。建议使用 OT_DURATION_STRING_SIZE

otNetDataContainsOmrPrefix

bool otNetDataContainsOmrPrefix(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)

检查给定的前缀是否可以充当有效的 OMR 前缀,以及领先的网络数据是否包含此前缀。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPrefix
指向 IPv6 前缀的指针。
返回值
指明 aPrefix 是否为有效的 OMR 前缀,以及领先企业的网络数据是否包含 OMR 前缀 aPrefix

otNetDataGet

otError otNetDataGet(
  otInstance *aInstance,
  bool aStable,
  uint8_t *aData,
  uint8_t *aDataLength
)

提供分区的 Thread 网络数据的完整或稳定副本。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aStable
如果复制稳定版,则为 TRUE;如果复制完整版本,则为 FALSE。
[out] aData
指向数据缓冲区的指针。
[in,out] aDataLength
条目时,由 aData 指向的数据缓冲区的大小。退出时复制的字节数。
返回值
OT_ERROR_NONE
已成功将 Thread 网络数据复制到 aData 并更新了 aDataLength
OT_ERROR_NO_BUFS
aData 中的空间不足,无法完整复制 Thread 网络数据。

otNetDataGetCommissioningDataset

void otNetDataGetCommissioningDataset(
  otInstance *aInstance,
  otCommissioningDataset *aDataset
)

从分区的网络数据中获取调试数据集。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aDataset
指向要填充的 otCommissioningDataset 的指针。

otNetDataGetLength

uint8_t otNetDataGetLength(
  otInstance *aInstance
)

获取分区的线程网络数据的当前长度(字节数)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
网络数据的长度。

otNetDataGetMaxLength

uint8_t otNetDataGetMaxLength(
  otInstance *aInstance
)

获取自从 OT 堆栈初始化或上次调用 otNetDataResetMaxLength() 以来观察到的线程网络数据的最大长度。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
网络数据的最大长度(网络数据长度的高水印)。

otNetDataGetNextLowpanContextInfo

otError otNetDataGetNextLowpanContextInfo(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otLowpanContextInfo *aContextInfo
)

获取该分区的网络数据中的下一个 6LoWPAN 上下文 ID 信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向网络数据迭代器的指针。要获取第一个服务条目,应将其设置为 OT_NETWORK_DATA_ITERATOR_INIT。
[out] aContextInfo
指向检索到的 6LoWPAN 上下文 ID 信息的放置位置的指针。
返回值
OT_ERROR_NONE
已成功找到后续 6LoWPAN 上下文 ID 信息。
OT_ERROR_NOT_FOUND
该分区的网络数据中不存在后续的 6LoWPAN 上下文信息。

otNetDataGetNextOnMeshPrefix

otError otNetDataGetNextOnMeshPrefix(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otBorderRouterConfig *aConfig
)

获取分区的网络数据中的下一个网状网络前缀。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向网络数据迭代器上下文的指针。要获取第一个网状条目,应将其设置为 OT_NETWORK_DATA_ITERATOR_INIT。
[out] aConfig
指向将放置“网状网前缀”信息的指针。
返回值
OT_ERROR_NONE
已成功找到下一个“网状网”前缀。
OT_ERROR_NOT_FOUND
Thread 网络数据中没有后续的 On Mesh 前缀。

otNetDataGetNextRoute

otError otNetDataGetNextRoute(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otExternalRouteConfig *aConfig
)

获取分区的网络数据中的下一个外部路由。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向网络数据迭代器上下文的指针。要获取第一个外部路由条目,应将其设置为 OT_NETWORK_DATA_ITERATOR_INIT。
[out] aConfig
指向外部路由信息所要放置位置的指针。
返回值
OT_ERROR_NONE
已成功找到下一个外部路由。
OT_ERROR_NOT_FOUND
Thread 网络数据中没有后续的外部路由条目。

otNetDataGetNextService

otError otNetDataGetNextService(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otServiceConfig *aConfig
)

获取分区的网络数据中的下一个服务。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向网络数据迭代器上下文的指针。要获取第一个服务条目,应将其设置为 OT_NETWORK_DATA_ITERATOR_INIT。
[out] aConfig
指向服务信息的放置位置的指针。
返回值
OT_ERROR_NONE
成功找到下一项服务。
OT_ERROR_NOT_FOUND
分区的网络数据中不存在后续服务。

otNetDataGetStableVersion

uint8_t otNetDataGetStableVersion(
  otInstance *aInstance
)

获取稳定版网络数据版本。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
稳定的网络数据版本。

otNetDataGetVersion

uint8_t otNetDataGetVersion(
  otInstance *aInstance
)

获取网络数据版本。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
网络数据版本。

otNetDataIsDnsSrpServiceAdded

bool otNetDataIsDnsSrpServiceAdded(
  otInstance *aInstance
)

指明“DNS/SRP 服务”条目当前是否已添加到 Thread 网络数据中。

需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
TRUE
已发布的 DNS/SRP 服务条目会添加到 Thread 网络数据中。
FALSE
该条目未添加到 Thread 网络数据中,或没有可发布的条目。

otNetDataIsPrefixAdded

bool otNetDataIsPrefixAdded(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)

指示当前是否已将已发布的前缀条目(网状网络或外部路由)添加到 Thread 网络数据中。

需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPrefix
指向前缀的指针(不得为 NULL)。
返回值
TRUE
已发布的前缀条目会添加到 Thread 网络数据中。
FALSE
该条目未添加到 Thread 网络数据中,或没有可发布的条目。

otNetDataPublishDnsSrpServiceAnycast

void otNetDataPublishDnsSrpServiceAnycast(
  otInstance *aInstance,
  uint8_t aSequenceNUmber
)

请求在 Thread Network Data 中发布“DNS/SRP 服务任播地址”。

需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

调用此函数将移除并替换之前对任何 otNetDataPublishDnsSrpService{Type}() 函数的调用而发布的所有旧“DNS/SRP 服务”条目。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aSequenceNUmber
DNS/SRP 任播服务的序列号。

otNetDataPublishDnsSrpServiceUnicast

void otNetDataPublishDnsSrpServiceUnicast(
  otInstance *aInstance,
  const otIp6Address *aAddress,
  uint16_t aPort
)

请求在 Thread Network Data 中发布“DNS/SRP 服务单播地址”。

需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

调用此函数将移除并替换之前对任何 otNetDataPublishDnsSrpService{Type}() 函数的调用而发布的所有旧“DNS/SRP 服务”条目。

通过在服务 TLV 数据中添加地址和端口信息来发布“DNS/SRP 服务 Unicast 地址”。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aAddress
要发布的 DNS/SRP 服务器地址(不得为 NULL)。
[in] aPort
要发布的 SRP 服务器端口号。

otNetDataPublishDnsSrpServiceUnicastMeshLocalEid

void otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(
  otInstance *aInstance,
  uint16_t aPort
)

请求在 Thread Network Data 中发布“DNS/SRP 服务单播地址”。

需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

调用此函数将移除并替换之前对任何 otNetDataPublishDnsSrpService{Type}() 函数的调用而发布的所有旧“DNS/SRP 服务”条目。

otNetDataPublishDnsSrpServiceUnicast() 要求提供已发布的地址,并将相关信息包含在服务 TLV 数据中,而此函数与之不同,它使用设备的网状网本地 EID,并将信息包含在服务器 TLV 数据中。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPort
要发布的 SRP 服务器端口号。

otNetDataPublishExternalRoute

otError otNetDataPublishExternalRoute(
  otInstance *aInstance,
  const otExternalRouteConfig *aConfig
)

请求要在 Thread Network Data 中发布的外部路由前缀。

需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

只能发布稳定版(即aConfig.mStable 必须为 TRUE)。

对该方法的后续调用将替换之前针对相同前缀发出的请求。特别是,如果新调用仅更改标记(例如首选项级别),并且前缀已添加到网络数据中,则对标记的更改会立即反映在网络数据中。这样可以确保网络数据中的现有条目不会被突然移除。请注意,在确定还有其他节点发布了相同或更高优先级的相同前缀后,更改优先级可能会导致稍后从网络数据中删除该条目。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aConfig
要发布的外部路由配置(不得为 NULL)。
返回值
OT_ERROR_NONE
外部路由已成功发布。
OT_ERROR_INVALID_ARGS
aConfig 无效(前缀错误、标志组合无效或不稳定)。
OT_ERROR_NO_BUFS
无法为新请求分配条目。发布商支持由 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES 配置确定的有限数量的条目(在网状前缀和外部路由之间共享)。

otNetDataPublishOnMeshPrefix

otError otNetDataPublishOnMeshPrefix(
  otInstance *aInstance,
  const otBorderRouterConfig *aConfig
)

请求网状前缀,以便在 Thread 网络数据中发布。

需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

只能发布稳定版(即aConfig.mStable 必须为 TRUE)。

对该方法的后续调用将替换之前针对相同前缀发出的请求。特别是,如果新调用仅更改标记(例如首选项级别),并且前缀已添加到网络数据中,则对标记的更改会立即反映在网络数据中。这样可以确保网络数据中的现有条目不会被突然移除。请注意,在确定还有其他节点发布了相同或更高优先级的相同前缀后,更改优先级可能会导致稍后从网络数据中删除该条目。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aConfig
要发布的网状前缀配置(不得为 NULL)。
返回值
OT_ERROR_NONE
网状前缀已成功发布。
OT_ERROR_INVALID_ARGS
aConfig 无效(前缀错误、标志组合无效或不稳定)。
OT_ERROR_NO_BUFS
无法为新请求分配条目。发布商支持由 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES 配置确定的有限数量的条目(在网状前缀和外部路由之间共享)。

otNetDataReplacePublishedExternalRoute

otError otNetDataReplacePublishedExternalRoute(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix,
  const otExternalRouteConfig *aConfig
)

替换 Thread 网络数据中之前发布的外部路由。

需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

如果之前没有发布与 aPrefix 匹配的外部路由,则此函数的行为类似于 otNetDataPublishExternalRoute(),即它会开始将 aConfig 发布为 Thread 网络数据中的外部路由。

如果存在与 aPrefix 匹配的之前发布的路由条目,系统会将其替换为 aConfig 中的新前缀。

  • 如果网络数据中已添加 aPrefix,则对 aConfig 中新前缀的更改会立即反映在网络数据中。这可确保网络数据中的路由条目不会突然移除,并且从 aPrefix 过渡到新前缀。
  • 如果之前发布的 aPrefix 未添加到网络数据中,则会被替换为新的 aConfig 前缀,但不会立即添加。而是会开始将其发布在网络数据中(监控网络数据以确定何时/是否添加前缀,具体取决于网络数据中存在的类似前缀的数量)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPrefix
之前发布的要替换的外部路由前缀。
[in] aConfig
要发布的外部路由配置。
返回值
OT_ERROR_NONE
外部路由已成功发布。
OT_ERROR_INVALID_ARGS
aConfig 无效(前缀错误、标志组合无效或不稳定)。
OT_ERROR_NO_BUFS
无法为新请求分配条目。发布商支持由 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES 配置确定的有限数量的条目(在网状前缀和外部路由之间共享)。

otNetDataResetMaxLength

void otNetDataResetMaxLength(
  otInstance *aInstance
)

重置 Thread 网络数据跟踪的最大长度。

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

otNetDataSetDnsSrpServicePublisherCallback

void otNetDataSetDnsSrpServicePublisherCallback(
  otInstance *aInstance,
  otNetDataDnsSrpServicePublisherCallback aCallback,
  void *aContext
)

设置回调,以便在已发布的“DNS/SRP 服务”实际添加到 Thread 网络数据或从 Thread 网络数据中移除时发出通知。

对此函数的后续调用将替换之前设置的任何回调函数。

需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
回调函数指针(如果不需要,可以为 NULL)。
[in] aContext
指向应用特定上下文的指针(在调用 aCallback 时使用)。

otNetDataSetPrefixPublisherCallback

void otNetDataSetPrefixPublisherCallback(
  otInstance *aInstance,
  otNetDataPrefixPublisherCallback aCallback,
  void *aContext
)

设置回调,以便在实际向 Thread 网络数据添加或从中移除已发布的前缀条目时发出通知。

对此函数的后续调用将替换之前设置的任何回调函数。

需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
回调函数指针(如果不需要,可以为 NULL)。
[in] aContext
指向应用特定上下文的指针(在调用 aCallback 时使用)。

otNetDataSteeringDataCheckJoiner

otError otNetDataSteeringDataCheckJoiner(
  otInstance *aInstance,
  const otExtAddress *aEui64
)

检查导向数据是否包含连接符。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEui64
指向连接符的 IEEE EUI-64 的指针。
返回值
OT_ERROR_NONE
aEui64 包含在转向数据中。
OT_ERROR_INVALID_STATE
不存在导向数据。
OT_ERROR_NOT_FOUND
aEui64 未包含在转向数据中。

otNetDataSteeringDataCheckJoinerWithDiscerner

otError otNetDataSteeringDataCheckJoinerWithDiscerner(
  otInstance *aInstance,
  const struct otJoinerDiscerner *aDiscerner
)

检查导向数据是否包含具有给定识别器值的联接器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDiscerner
指向细木识别器的指针。
返回值
OT_ERROR_NONE
aDiscerner 包含在转向数据中。
OT_ERROR_INVALID_STATE
不存在导向数据。
OT_ERROR_NOT_FOUND
aDiscerner 未包含在转向数据中。

otNetDataUnpublishDnsSrpService

void otNetDataUnpublishDnsSrpService(
  otInstance *aInstance
)

从 Thread 网络数据中取消发布之前添加的任何 DNS/SRP(任播或 Unicast)服务条目。

必须启用“OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE”。

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

otNetDataUnpublishPrefix

otError otNetDataUnpublishPrefix(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)

取消发布之前发布的网状网或外部路由前缀。

必须启用“OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE”。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aPrefix
要取消发布的前缀(不得为 NULL)。
返回值
OT_ERROR_NONE
已成功取消发布前缀。
OT_ERROR_NOT_FOUND
在发布的列表中找不到相应前缀。

otThreadBecomeChild

otError otThreadBecomeChild(
  otInstance *aInstance
)

尝试重新附加为子文件。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
成功开始尝试成为儿童。
OT_ERROR_INVALID_STATE
线程已停用。

otThreadBecomeDetached

otError otThreadBecomeDetached(
  otInstance *aInstance
)

与 Thread 网络分离。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
已成功与 Thread 网络分离。
OT_ERROR_INVALID_STATE
线程已停用。

otThreadDetachGracefully

otError otThreadDetachGracefully(
  otInstance *aInstance,
  otDetachGracefullyCallback aCallback,
  void *aContext
)

通知网络中的其他节点(如果有),然后停止 Thread 协议操作。

如果是路由器,则发送地址释放;如果是子级,则将其子节点超时设为 0。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
指向在完成分离时调用的函数的指针。
[in] aContext
指向回调应用特定上下文的指针。
返回值
OT_ERROR_NONE
已成功开始分离。
OT_ERROR_BUSY
已在进行分离。

otThreadDeviceRoleToString

const char * otThreadDeviceRoleToString(
  otDeviceRole aRole
)

将设备角色转换为人类可读的字符串。

具体说明
参数
[in] aRole
要转换的设备角色。
返回值
一个表示 aRole 的字符串。

otThreadDiscover

otError otThreadDiscover(
  otInstance *aInstance,
  uint32_t aScanChannels,
  uint16_t aPanId,
  bool aJoiner,
  bool aEnableEui64Filtering,
  otHandleActiveScanResult aCallback,
  void *aCallbackContext
)

启动 Thread Discovery 扫描。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aScanChannels
表示要扫描的频道的位矢量(例如 OT_CHANNEL_11_MASK)。
[in] aPanId
PAN ID 过滤器(设置为“广播 PAN”以停用过滤器)。
[in] aJoiner
发现请求 TLV 中连接符标记的值。
[in] aEnableEui64Filtering
如果为 EUI-64 过滤响应,则为 TRUE,否则为 FALSE。
[in] aCallback
收到 MLE 发现响应或扫描完成时调用的函数的指针。
[in] aCallbackContext
指向应用特定上下文的指针。
返回值
OT_ERROR_NONE
已成功启动 Thread Discovery 扫描。
OT_ERROR_INVALID_STATE
IPv6 接口未启用(netif 未启动)。
OT_ERROR_NO_BUFS
无法为发现请求分配消息。
OT_ERROR_BUSY
Thread Discovery 扫描已在进行中。

otThreadGetChildTimeout

uint32_t otThreadGetChildTimeout(
  otInstance *aInstance
)

获取以 Child 角色执行操作时使用的 Thread Child Timeout(以秒为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
Thread Child Timeout 值(以秒为单位)。
另请参阅
otThreadSetChildTimeout

otThreadGetDeviceRole

otDeviceRole otThreadGetDeviceRole(
  otInstance *aInstance
)

获取设备角色。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_DEVICE_ROLE_DISABLED
线程堆栈已停用。
OT_DEVICE_ROLE_DETACHED
设备目前未加入 Thread 网络/分区。
OT_DEVICE_ROLE_CHILD
设备目前以线程子项的形式运行。
OT_DEVICE_ROLE_ROUTER
设备目前以线程路由器的形式运行。
OT_DEVICE_ROLE_LEADER
设备目前以线程主管的身份运行。

otThreadGetDomainName

const char * otThreadGetDomainName(
  otInstance *aInstance
)

获取线程域名。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向线程域名的指针。
另请参阅
otThreadSetDomainName

otThreadGetExtendedPanId

const otExtendedPanId * otThreadGetExtendedPanId(
  otInstance *aInstance
)

获取 IEEE 802.15.4 扩展 PAN ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 IEEE 802.15.4 扩展 PAN ID 的指针。
另请参阅
otThreadSetExtendedPanId

otThreadGetFixedDuaInterfaceIdentifier

const otIp6InterfaceIdentifier * otThreadGetFixedDuaInterfaceIdentifier(
  otInstance *aInstance
)

获取为线程网域 Unicast 地址手动指定的接口标识符。

启用 OPENTHREAD_CONFIG_DUA_ENABLE 后可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向手动设置的接口标识符的指针,如果未设置,则为 NULL。
另请参阅
otThreadSetFixedDuaInterfaceIdentifier

otThreadGetIp6Counters

const otIpCounters * otThreadGetIp6Counters(
  otInstance *aInstance
)

获取 IPv6 计数器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 IPv6 计数器的指针。

otThreadGetKeySequenceCounter

uint32_t otThreadGetKeySequenceCounter(
  otInstance *aInstance
)

获取 thrKeySequenceCounter。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
thrKeySequenceCounter 值。
另请参阅
otThreadSetKeySequenceCounter

otThreadGetKeySwitchGuardTime

uint32_t otThreadGetKeySwitchGuardTime(
  otInstance *aInstance
)

获取 thrKeySwitchGuardTime(以小时为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
thrKeySwitchGuardTime 值(以小时为单位)。
另请参阅
otThreadSetKeySwitchGuardTime

otThreadGetLeaderData

otError otThreadGetLeaderData(
  otInstance *aInstance,
  otLeaderData *aLeaderData
)

获取线程主管数据。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aLeaderData
指向主要数据所存储位置的指针。
返回值
OT_ERROR_NONE
已成功检索到主要数据。
OT_ERROR_DETACHED
目前未附加。

otThreadGetLeaderRloc

otError otThreadGetLeaderRloc(
  otInstance *aInstance,
  otIp6Address *aLeaderRloc
)

返回指向主管的 RLOC 的指针。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aLeaderRloc
指向主管的 RLOC 的指针。
返回值
OT_ERROR_NONE
主管的 RLOC 已成功写入 aLeaderRloc
OT_ERROR_INVALID_ARGS
aLeaderRloc 为 NULL。
OT_ERROR_DETACHED
目前未附加到线程分区。

otThreadGetLeaderRouterId

uint8_t otThreadGetLeaderRouterId(
  otInstance *aInstance
)

获取主管的路由器 ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
领导者的路由器 ID。

otThreadGetLeaderWeight

uint8_t otThreadGetLeaderWeight(
  otInstance *aInstance
)

获取队长的体重。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
队长的体重。

otThreadGetLinkLocalAllThreadNodesMulticastAddress

const otIp6Address * otThreadGetLinkLocalAllThreadNodesMulticastAddress(
  otInstance *aInstance
)

获取 Thread Link-Local 所有线程节点的多播地址。

该地址是链路本地基于 Unicast 前缀的多播地址 [RFC 3306],具有:

  • flgs 设置为 3(P = 1 且 T = 1)
  • scop 设置为 2
  • plen 设置为 64
  • 网络前缀设置为网状网本地前缀
  • 群组 ID 设为 1

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向线程链路本地所有线程节点多播地址的指针。

otThreadGetLinkLocalIp6Address

const otIp6Address * otThreadGetLinkLocalIp6Address(
  otInstance *aInstance
)

获取 Thread 链路本地 IPv6 地址。

线程链接本地地址使用 IEEE802.15.4 扩展地址作为接口标识符派生。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 Thread 链路本地 IPv6 地址的指针。

otThreadGetLinkMode

otLinkModeConfig otThreadGetLinkMode(
  otInstance *aInstance
)

获取 MLE 链接模式配置。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
MLE 链接模式配置。
另请参阅
otThreadSetLinkMode

otThreadGetMaxTimeInQueue

uint32_t otThreadGetMaxTimeInQueue(
  otInstance *aInstance
)

获取 TX 队列中消息的最长排队时间。

需要 OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE

排队时间仅针对直接传输进行跟踪,并测量为从消息添加到传输队列到消息传递到 MAC 层进行传输或丢弃的时长。

可以通过调用 otThreadResetTimeInQueueStat() 重置收集的统计信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
(目前为止)TX 队列中所有消息的排队时间上限(以毫秒为单位)。

otThreadGetMeshLocalEid

const otIp6Address * otThreadGetMeshLocalEid(
  otInstance *aInstance
)

获取网格本地 EID 地址。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向网格本地 EID 地址的指针。

otThreadGetMeshLocalPrefix

const otMeshLocalPrefix * otThreadGetMeshLocalPrefix(
  otInstance *aInstance
)

返回指向网格本地前缀的指针。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向网格本地前缀的指针。

otThreadGetMleCounters

const otMleCounters * otThreadGetMleCounters(
  otInstance *aInstance
)

获取 Thread MLE 计数器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 Thread MLE 计数器的指针。

otThreadGetNetworkKey

void otThreadGetNetworkKey(
  otInstance *aInstance,
  otNetworkKey *aNetworkKey
)

获取 Thread 网络密钥。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aNetworkKey
指向用于返回线程网络键的 otNetworkKey 的指针。
另请参阅
otThreadSetNetworkKey

otThreadGetNetworkKeyRef

otNetworkKeyRef otThreadGetNetworkKeyRef(
  otInstance *aInstance
)

获取 Thread 网络密钥的 otNetworkKeyRef

需要启用构建时功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
对存储在内存中的 Thread 网络键的引用。
另请参阅
otThreadSetNetworkKeyRef

otThreadGetNetworkName

const char * otThreadGetNetworkName(
  otInstance *aInstance
)

获取 Thread 网络名称。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向线程网络名称的指针。
另请参阅
otThreadSetNetworkName

otThreadGetNextDiagnosticTlv

otError otThreadGetNextDiagnosticTlv(
  const otMessage *aMessage,
  otNetworkDiagIterator *aIterator,
  otNetworkDiagTlv *aNetworkDiagTlv
)

获取消息中的下一个网络诊断 TLV。

需要 OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE

仅当当前返回值为 OT_ERROR_NONE 时,才允许后续调用此函数。

具体说明
参数
[in] aMessage
指向消息的指针。
[in,out] aIterator
指向网络诊断迭代器上下文的指针。要获取第一个网络诊断 TLV,应将其设置为 OT_NETWORK_DIAGNOSTIC_ITERATOR_INIT。
[out] aNetworkDiagTlv
指向网络诊断 TLV 信息所要放置位置的指针。
返回值
OT_ERROR_NONE
成功找到了下一个网络诊断 TLV。
OT_ERROR_NOT_FOUND
消息中不存在后续网络诊断 TLV。
OT_ERROR_PARSE
解析下个网络诊断失败。

otThreadGetNextNeighborInfo

otError otThreadGetNextNeighborInfo(
  otInstance *aInstance,
  otNeighborInfoIterator *aIterator,
  otNeighborInfo *aInfo
)

获取下一个相邻项信息。

它用于遍历相邻表的条目。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向迭代器上下文的指针。要获取第一个相邻条目,应将其设置为 OT_NEIGHBOR_INFO_ITERATOR_INIT。
[out] aInfo
指向相邻项信息的指针。
返回值
OT_ERROR_NONE
成功找到表中的下一个相邻条目。
OT_ERROR_NOT_FOUND
表中不存在后续相邻条目。
OT_ERROR_INVALID_ARGS
aIteratoraInfo 为 NULL。

otThreadGetParentAverageRssi

otError otThreadGetParentAverageRssi(
  otInstance *aInstance,
  int8_t *aParentRssi
)

该函数会检索线程父级的平均 RSSI。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aParentRssi
指向父级 RSSI 应放置位置的指针。

otThreadGetParentInfo

otError otThreadGetParentInfo(
  otInstance *aInstance,
  otRouterInfo *aParentInfo
)

函数检索作为父级的线程路由器的诊断信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aParentInfo
指向父级路由器信息放置位置的指针。

otThreadGetParentLastRssi

otError otThreadGetParentLastRssi(
  otInstance *aInstance,
  int8_t *aLastRssi
)

该函数会从线程父级检索最后一个数据包的 RSSI。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aLastRssi
指向应放置最后一个 RSSI 的位置的指针。
返回值
OT_ERROR_NONE
已成功检索到 RSSI 数据。
OT_ERROR_FAILED
无法获取 RSSI 数据。
OT_ERROR_INVALID_ARGS
aLastRssi 为 NULL。

otThreadGetPartitionId

uint32_t otThreadGetPartitionId(
  otInstance *aInstance
)

获取分区 ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
分区 ID。

otThreadGetRealmLocalAllThreadNodesMulticastAddress

const otIp6Address * otThreadGetRealmLocalAllThreadNodesMulticastAddress(
  otInstance *aInstance
)

获取 Thread Realm-Local 所有线程节点的多播地址。

该地址是基于领域本地的基于 Unicast 前缀的多播地址 [RFC 3306],具有:

  • flgs 设置为 3(P = 1 且 T = 1)
  • scop 设置为 3
  • plen 设置为 64
  • 网络前缀设置为网状网本地前缀
  • 群组 ID 设为 1

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 Thread Realm-Local 所有线程节点多播地址的指针。

otThreadGetRloc

const otIp6Address * otThreadGetRloc(
  otInstance *aInstance
)

获取线程路由定位器 (RLOC) 地址。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向线程路由定位器 (RLOC) 地址的指针。

otThreadGetRloc16

uint16_t otThreadGetRloc16(
  otInstance *aInstance
)

获取 RLOC16。

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

otThreadGetServiceAloc

otError otThreadGetServiceAloc(
  otInstance *aInstance,
  uint8_t aServiceId,
  otIp6Address *aServiceAloc
)

检索指定服务 ID 的服务 ALOC。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aServiceId
要获取 ALOC 的服务 ID。
[out] aServiceAloc
用于输出服务 ALOC 的指针。不得为 NULL。
返回值
OT_ERROR_NONE
已成功检索到服务 ALOC。
OT_ERROR_DETACHED
Thread 接口目前未附加到线程分区。

otThreadGetTimeInQueueHistogram

const uint32_t * otThreadGetTimeInQueueHistogram(
  otInstance *aInstance,
  uint16_t *aNumBins,
  uint32_t *aBinInterval
)

获取 TX 队列中消息的排队时间直方图。

需要 OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE

收集传输队列中消息的排队时间直方图。排队时间仅针对直接传输进行跟踪,并测量为从消息添加到传输队列到消息传递到 MAC 层进行传输或丢弃的时长。

直方图以包含 aNumBins 个条目的 uint32_t 值数组返回。数组中的第一个条目(位于索引 0 处)表示排队时间小于 aBinInterval 的消息数量。第二个条目表示排队时间大于或等于 aBinInterval 但小于 2 * aBinInterval 的消息数量。等等。 最后一个条目表示排队时间大于或等于 (aNumBins - 1) * aBinInterval 的消息数量。

可以通过调用 otThreadResetTimeInQueueStat() 重置收集的统计信息。自初始化 OpenThread 实例或上次通过调用 otThreadResetTimeInQueueStat() 重置统计信息收集后,系统会收集直方图信息。

指针 aNumBinsaBinInterval 不得为 NULL。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aNumBins
用于返回直方图(数组长度)中分箱数的指针。
[out] aBinInterval
用于返回直方图分箱间隔长度的指针(以毫秒为单位)。
返回值
指向 aNumBins 条目数组的指针,该条目表示收集到的直方图信息。

otThreadGetVendorModel

const char * otThreadGetVendorModel(
  otInstance *aInstance
)

获取供应商模型字符串。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
供应商模型字符串。

otThreadGetVendorName

const char * otThreadGetVendorName(
  otInstance *aInstance
)

获取供应商名称字符串。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
供应商名称字符串。

otThreadGetVendorSwVersion

const char * otThreadGetVendorSwVersion(
  otInstance *aInstance
)

获取供应商 sw 版本字符串。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
供应商 sw 版本字符串。

otThreadGetVersion

uint16_t otThreadGetVersion(
  void
)

获取 Thread 协议版本。

具体说明
返回值
Thread 协议版本

otThreadIsAnycastLocateInProgress

bool otThreadIsAnycastLocateInProgress(
  otInstance *aInstance
)

指示任播定位请求当前是否正在进行。

仅当启用 OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE 时可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
如果当前正在进行任播定位请求,则为 TRUE,否则为 FALSE。

otThreadIsDiscoverInProgress

bool otThreadIsDiscoverInProgress(
  otInstance *aInstance
)

确定 MLE 线程发现当前正在进行中。

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

otThreadIsSingleton

bool otThreadIsSingleton(
  otInstance *aInstance
)

指示节点是否是网络中唯一的路由器。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
TRUE
它是此网络中唯一的路由器。
FALSE
它是网络中的单个路由器或不是单个路由器。

otThreadLocateAnycastDestination

otError otThreadLocateAnycastDestination(
  otInstance *aInstance,
  const otIp6Address *aAnycastAddress,
  otThreadAnycastLocatorCallback aCallback,
  void *aContext
)

请求要定位的给定任播地址的最近目的地。

仅当启用 OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE 时可用。

如果上一个请求仍在进行,对此函数的后续调用将取消并替换之前的请求。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aAnycastAddress
要定位的任播地址。不得为 NULL。
[in] aCallback
用于报告结果的回调函数。
[in] aContext
aCallback 一起使用的任意上下文。
返回值
OT_ERROR_NONE
已成功发起请求。系统将调用 aCallback 来报告结果。
OT_ERROR_INVALID_ARGS
aAnycastAddress 不是有效的任播地址,或者 aCallback 为 NULL。
OT_ERROR_NO_BUFS
缓冲区不足,无法准备和发送请求消息。

otThreadRegisterParentResponseCallback

void otThreadRegisterParentResponseCallback(
  otInstance *aInstance,
  otThreadParentResponseCallback aCallback,
  void *aContext
)

注册一个回调,以接收 MLE 父级响应数据。

需要 OPENTHREAD_CONFIG_MLE_PARENT_RESPONSE_CALLBACK_API_ENABLE

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
指向在收到 MLE 父级响应消息后调用的函数的指针。
[in] aContext
指向回调客户端特定上下文的指针。

otThreadResetIp6Counters

void otThreadResetIp6Counters(
  otInstance *aInstance
)

重置 IPv6 计数器。

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

otThreadResetMleCounters

void otThreadResetMleCounters(
  otInstance *aInstance
)

重置 Thread MLE 计数器。

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

otThreadResetTimeInQueueStat

void otThreadResetTimeInQueueStat(
  otInstance *aInstance
)

重置 TX 队列排队时间统计信息。

需要 OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE

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

otThreadSearchForBetterParent

otError otThreadSearchForBetterParent(
  otInstance *aInstance
)

启动以下过程:子级搜索更好的父级,同时保持与其当前的父级保持连接。

当设备作为儿童连接时,必须使用。

具体说明
返回值
OT_ERROR_NONE
成功开始搜索更优质的家长。
OT_ERROR_INVALID_STATE
设备角色不是子级。

otThreadSendAddressNotification

void otThreadSendAddressNotification(
  otInstance *aInstance,
  otIp6Address *aDestination,
  otIp6Address *aTarget,
  otIp6InterfaceIdentifier *aMlIid
)

发送主动地址通知 (ADDR_NTF.ntf) 消息。

仅当启用 OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 时可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDestination
用于发送 ADDR_NTF.ntf 消息的目标位置。
[in] aTarget
ADDR_NTF.ntf 消息的目标地址。
[in] aMlIid
ADDR_NTF.ntf 消息的 ML-IID。

otThreadSendDiagnosticGet

otError otThreadSendDiagnosticGet(
  otInstance *aInstance,
  const otIp6Address *aDestination,
  const uint8_t aTlvTypes[],
  uint8_t aCount,
  otReceiveDiagnosticGetCallback aCallback,
  void *aCallbackContext
)

发送网络诊断获取请求。

需要 OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDestination
指向目标地址的指针。
[in] aTlvTypes
网络诊断 TLV 类型的数组。
[in] aCount
aTlvTypes 中的类型数量。
[in] aCallback
一个指针,指向在收到网络诊断获取响应时调用的函数,或者为 NULL 以停用回调。
[in] aCallbackContext
指向应用特定上下文的指针。
返回值
OT_ERROR_NONE
已成功将 DIAG_GET.req 加入队列。
OT_ERROR_NO_BUFS
消息缓冲区不足,无法发送 DIAG_GET.req。

otThreadSendDiagnosticReset

otError otThreadSendDiagnosticReset(
  otInstance *aInstance,
  const otIp6Address *aDestination,
  const uint8_t aTlvTypes[],
  uint8_t aCount
)

发送网络诊断重置请求。

需要 OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDestination
指向目标地址的指针。
[in] aTlvTypes
网络诊断 TLV 类型的数组。目前只允许使用 Type 9。
[in] aCount
aTlvTypes 中的类型数量
返回值
OT_ERROR_NONE
已成功将 DIAG_RST.ntf 加入队列。
OT_ERROR_NO_BUFS
消息缓冲区不足,无法发送 DIAG_RST.ntf。

otThreadSendProactiveBackboneNotification

otError otThreadSendProactiveBackboneNotification(
  otInstance *aInstance,
  otIp6Address *aTarget,
  otIp6InterfaceIdentifier *aMlIid,
  uint32_t aTimeSinceLastTransaction
)

在骨干链路上发送主动骨干通知 (PRO_BB.ntf) 消息。

仅当启用 OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE 时可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aTarget
PRO_BB.ntf 消息的目标地址。
[in] aMlIid
PRO_BB.ntf 消息的 ML-IID。
[in] aTimeSinceLastTransaction
自上次交易以来经过的时间(以秒为单位)。
返回值
OT_ERROR_NONE
已成功在骨干链路上发送 PRO_BB.ntf。
OT_ERROR_NO_BUFS
如果消息缓冲区不足。

otThreadSetChildTimeout

void otThreadSetChildTimeout(
  otInstance *aInstance,
  uint32_t aTimeout
)

设置以子角色执行操作时使用的线程子超时(以秒为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aTimeout
超时值(以秒为单位)。
另请参阅
otThreadGetChildTimeout

otThreadSetDiscoveryRequestCallback

void otThreadSetDiscoveryRequestCallback(
  otInstance *aInstance,
  otThreadDiscoveryRequestCallback aCallback,
  void *aContext
)

设置回调以接收 MLE 发现请求数据。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
指向在收到 MLE 发现请求消息时调用的函数的指针。
[in] aContext
指向回调应用特定上下文的指针。

otThreadSetDomainName

otError otThreadSetDomainName(
  otInstance *aInstance,
  const char *aDomainName
)

设置线程域名。

只有在停用 Thread 协议时才会成功。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDomainName
指向线程域名的指针。
返回值
OT_ERROR_NONE
已成功设置线程域名。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetDomainName

otThreadSetEnabled

otError otThreadSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

启动 Thread 协议操作。

调用此函数时,该接口必须处于启动状态。

aEnabled 设为 FALSE 的情况下调用此函数会停止任何由 otThreadDetachGracefully() 启动的分离程序。系统会调用其回调。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEnabled
如果启用了线程,则为 TRUE,否则为 FALSE。
返回值
OT_ERROR_NONE
已成功启动 Thread 协议操作。
OT_ERROR_INVALID_STATE
网络接口未启动。

otThreadSetExtendedPanId

otError otThreadSetExtendedPanId(
  otInstance *aInstance,
  const otExtendedPanId *aExtendedPanId
)

设置 IEEE 802.15.4 Extended PAN ID。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aExtendedPanId
指向 IEEE 802.15.4 扩展 PAN ID 的指针。
返回值
OT_ERROR_NONE
成功设置扩展 PAN ID。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetExtendedPanId

otThreadSetFixedDuaInterfaceIdentifier

otError otThreadSetFixedDuaInterfaceIdentifier(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

设置或清除为线程网域 Unicast 地址手动指定的接口标识符。

启用 OPENTHREAD_CONFIG_DUA_ENABLE 后可用。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aIid
指向要设置的接口标识符或要清除的 NULL 的指针。
返回值
OT_ERROR_NONE
已成功设置/清除接口标识符。
OT_ERROR_INVALID_ARGS
指定的接口标识符已被预留。
另请参阅
otThreadGetFixedDuaInterfaceIdentifier

otThreadSetJoinerAdvertisement

otError otThreadSetJoinerAdvertisement(
  otInstance *aInstance,
  uint32_t aOui,
  const uint8_t *aAdvData,
  uint8_t aAdvDataLength
)

设置发现 Thread 网络时的线程连接程序通告。

通过 Thread 联接器通告可让联接器通过新提议的联接器通告 TLV 通告自己的应用特定信息(例如供应商 ID、产品 ID、判别器等),并且无需人为干预即可向委员或委员候选人提供这些信息。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aOui
将包含在联接器通告中的供应商 IEEE OUI 值。仅使用最低有效位的 3 个字节,并忽略最高有效字节。
[in] aAdvData
指向要包含在联接程序通告中的 AdvData 的指针。
[in] aAdvDataLength
AdvData 的长度(以字节为单位)。
返回值
OT_ERROR_NONE
成功设置连接符广告。
OT_ERROR_INVALID_ARGS
AdvData 无效。

otThreadSetKeySequenceCounter

void otThreadSetKeySequenceCounter(
  otInstance *aInstance,
  uint32_t aKeySequenceCounter
)

设置 thrKeySequenceCounter。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aKeySequenceCounter
thrKeySequenceCounter 值。
另请参阅
otThreadGetKeySequenceCounter

otThreadSetKeySwitchGuardTime

void otThreadSetKeySwitchGuardTime(
  otInstance *aInstance,
  uint32_t aKeySwitchGuardTime
)

设置 thrKeySwitchGuardTime(以小时为单位)。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aKeySwitchGuardTime
thrKeySwitchGuardTime 值(以小时为单位)。
另请参阅
otThreadGetKeySwitchGuardTime

otThreadSetLinkMode

otError otThreadSetLinkMode(
  otInstance *aInstance,
  otLinkModeConfig aConfig
)

设置 MLE 链接模式配置。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aConfig
指向链接模式配置的指针。
返回值
OT_ERROR_NONE
成功设置 MLE 链接模式配置。
另请参阅
otThreadGetLinkMode

otThreadSetMeshLocalPrefix

otError otThreadSetMeshLocalPrefix(
  otInstance *aInstance,
  const otMeshLocalPrefix *aMeshLocalPrefix
)

设置网格本地前缀。

只有在停用 Thread 协议时才会成功。成功调用此函数会使非易失性内存中的活跃和待处理操作数据集失效。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMeshLocalPrefix
指向网格本地前缀的指针。
返回值
OT_ERROR_NONE
成功设置网格本地前缀。
OT_ERROR_INVALID_STATE
已启用线程协议。

otThreadSetNetworkKey

otError otThreadSetNetworkKey(
  otInstance *aInstance,
  const otNetworkKey *aKey
)

设置 Thread 网络密钥。

只有在停用 Thread 协议时才会成功。成功调用此函数会使非易失性内存中的活跃和待处理操作数据集失效。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aKey
指向包含线程网络键的缓冲区的指针。
返回值
OT_ERROR_NONE
成功设置 Thread 网络密钥。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetNetworkKey

otThreadSetNetworkKeyRef

otError otThreadSetNetworkKeyRef(
  otInstance *aInstance,
  otNetworkKeyRef aKeyRef
)

将 Thread 网络键设置为 otNetworkKeyRef

只有在停用 Thread 协议时才会成功。成功调用此函数会使非易失性内存中的活跃和待处理操作数据集失效。

需要启用构建时功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aKeyRef
引用 Thread 网络键。
返回值
OT_ERROR_NONE
成功设置 Thread 网络密钥。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetNetworkKeyRef

otThreadSetNetworkName

otError otThreadSetNetworkName(
  otInstance *aInstance,
  const char *aNetworkName
)

设置 Thread 网络名称。

只有在停用 Thread 协议时才会成功。成功调用此函数会使非易失性内存中的活跃和待处理操作数据集失效。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aNetworkName
指向线程网络名称的指针。
返回值
OT_ERROR_NONE
成功设置 Thread 网络名称。
OT_ERROR_INVALID_STATE
已启用线程协议。
另请参阅
otThreadGetNetworkName

otThreadSetVendorModel

otError otThreadSetVendorModel(
  otInstance *aInstance,
  const char *aVendorModel
)

设置供应商模型字符串。

需要 OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE

aVendorModel”应采用 UTF8 编码格式,长度上限为 32 个字符 (MAX_VENDOR_MODEL_TLV_LENGTH)。长度上限不包括空的 \0 字符。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aVendorModel
供应商模型字符串。
返回值
OT_ERROR_NONE
成功设置供应商模型。
OT_ERROR_INVALID_ARGS
aVendorModel 无效(过长或不是 UTF8)。

otThreadSetVendorName

otError otThreadSetVendorName(
  otInstance *aInstance,
  const char *aVendorName
)

设置供应商名称字符串。

需要 OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE

aVendorName”应采用 UTF8 编码格式,长度上限为 32 个字符 (MAX_VENDOR_NAME_TLV_LENGTH)。长度上限不包括空的 \0 字符。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aVendorName
供应商名称字符串。
返回值
OT_ERROR_NONE
成功设置供应商名称。
OT_ERROR_INVALID_ARGS
aVendorName 无效(过长或不是 UTF8)。

otThreadSetVendorSwVersion

otError otThreadSetVendorSwVersion(
  otInstance *aInstance,
  const char *aVendorSwVersion
)

设置供应商软件版本字符串。

需要 OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE

aVendorSwVersion”应采用 UTF8 编码格式,长度上限为 16 个字符(MAX_VENDOR_SW_VERSION_TLV_LENGTH)。长度上限不包括空的 \0 字符。

具体说明
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aVendorSwVersion
供应商软件版本字符串。
返回值
OT_ERROR_NONE
成功设置供应商软件版本。
OT_ERROR_INVALID_ARGS
aVendorSwVersion 无效(过长或不是 UTF8)。

OT_DURATION_STRING_SIZE

 OT_DURATION_STRING_SIZE 21

uint32_t 时长的字符串表示形式(以秒为单位)的建议大小。

OT_JOINER_ADVDATA_MAX_LENGTH

 OT_JOINER_ADVDATA_MAX_LENGTH 64

联接器通告的 AdvData 长度上限。

OT_NEIGHBOR_INFO_ITERATOR_INIT

 OT_NEIGHBOR_INFO_ITERATOR_INIT 0

otNeighborInfoIterator 的初始化程序。

OT_NETWORK_BASE_TLV_MAX_LENGTH

 OT_NETWORK_BASE_TLV_MAX_LENGTH 254

线程基 TLV 的最大值长度。

OT_NETWORK_DATA_ITERATOR_INIT

 OT_NETWORK_DATA_ITERATOR_INIT 0

用于初始化 otNetworkDataIterator 的值。

OT_NETWORK_DIAGNOSTIC_CHILD_TABLE_ENTRY_SIZE

 OT_NETWORK_DIAGNOSTIC_CHILD_TABLE_ENTRY_SIZE 3

网络诊断子表条目的大小。

OT_NETWORK_DIAGNOSTIC_ITERATOR_INIT

 OT_NETWORK_DIAGNOSTIC_ITERATOR_INIT 0

otNetworkDiagIterator 的初始化程序。

OT_NETWORK_DIAGNOSTIC_MAX_THREAD_STACK_VERSION_TLV_LENGTH

 OT_NETWORK_DIAGNOSTIC_MAX_THREAD_STACK_VERSION_TLV_LENGTH 64

线程堆栈版本 TLV 的最大长度。

OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_MODEL_TLV_LENGTH

 OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_MODEL_TLV_LENGTH 32

供应商模型 TLV 的最大长度。

OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_NAME_TLV_LENGTH

 OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_NAME_TLV_LENGTH 32

供应商名称 TLV 的最大长度。

OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_SW_VERSION_TLV_LENGTH

 OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_SW_VERSION_TLV_LENGTH 16

供应商软件版本 TLV 的最大长度。

OT_NETWORK_DIAGNOSTIC_TYPELIST_MAX_ENTRIES

 OT_NETWORK_DIAGNOSTIC_TYPELIST_MAX_ENTRIES 19

要请求或重置的网络诊断 TLV 类型的数量上限。

OT_NETWORK_MAX_ROUTER_ID

 OT_NETWORK_MAX_ROUTER_ID 62

最大路由器 ID。

OT_SERVER_DATA_MAX_SIZE

 OT_SERVER_DATA_MAX_SIZE 248

服务器数据的大小上限(以字节为单位)。理论上的限值,实际上要低得多。

OT_SERVICE_DATA_MAX_SIZE

 OT_SERVICE_DATA_MAX_SIZE 252

服务数据的大小上限(以字节为单位)。

资源

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