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

常规

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

总结

网络数据发布者通过监控网络数据以及管理是否添加或移除条目,来限制线程网络数据中的类似服务和/或前缀( on-mesh 前缀或外部路由)条目的数量。

此模块中的所有函数都需要启用 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
}
枚举
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
}
枚举
定义 otExternalRouteConfigotBorderRouterConfigmPreference 的有效值。

类型定义符

otBorderRouterConfig typedef
此结构表示边界路由器配置。
otExternalRouteConfig typedef
此结构表示外部路由配置。
otIpCounters typedef
struct otIpCounters
此结构表示 IP 级别计数器。
otLeaderData typedef
struct otLeaderData
此结构表示线程主要数据。
otLinkModeConfig typedef
此结构表示 MLE 链接模式配置。
otMleCounters typedef
struct otMleCounters
此结构表示 Thread MLE 计数器。
otNeighborInfoIterator typedef
int16_t
用于遍历邻居表。
otNetDataDnsSrpServicePublisherCallback)(otNetDataPublisherEvent aEvent, void *aContext) typedef
void(*
此函数指针类型定义回调,用于在线程网络数据中添加或移除“DNS/SRP 服务”条目时发出通知。
otNetDataPrefixPublisherCallback)(otNetDataPublisherEvent aEvent, const otIp6Prefix *aPrefix, void *aContext) typedef
void(*
此函数指针类型定义用于在线程网络数据中添加或移除前缀(网状或外部路由)条目时通知的回调。
otNetDataPublisherEvent typedef
此枚举表示从发布商回调报告的事件。
otNetworkDataIterator typedef
uint32_t
用于遍历网络数据信息。
otNetworkDiagChildEntry typedef
此结构表示网络诊断子表条目。
otNetworkDiagConnectivity typedef
此结构表示网络诊断连接值。
otNetworkDiagIterator typedef
uint16_t
用于遍历网络诊断 TLV。
otNetworkDiagMacCounters typedef
此结构表示网络诊断 Mac 计数器值。
otNetworkDiagRoute typedef
此结构表示网络诊断路由 TLV 值。
otNetworkDiagRouteData typedef
此结构表示网络诊断路由数据。
otNetworkDiagTlv typedef
此结构表示网络诊断 TLV。
otReceiveDiagnosticGetCallback)(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext) typedef
void(*
收到网络诊断获取响应时,会调用此函数指针。
otRoutePreference typedef
定义 otExternalRouteConfigotBorderRouterConfigmPreference 的有效值。
otServerConfig typedef
此结构表示服务器配置。
otServiceConfig typedef
此结构表示一项服务配置。
otThreadAnycastLocatorCallback)(void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16) typedef
void(*
此函数指针类型定义可通知 otThreadLocateAnycastDestination() 请求结果的回调。
otThreadDiscoveryRequestCallback)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext) typedef
void(*
每当收到 MLE Discovery 请求消息时,都会调用此函数指针。
otThreadDiscoveryRequestInfo typedef
此结构表示线程发现请求数据。
otThreadParentResponseCallback)(otThreadParentResponseInfo *aInfo, void *aContext) typedef
void(*
每当收到 MLE 父响应消息时,都会调用此函数指针。
otThreadParentResponseInfo typedef
此结构表示 MLE 父响应数据。

函数

otNetDataContainsOmrPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
bool
此函数会检查给定的前缀能否充当有效的 OMR 前缀,且领导广告联盟的网络数据也包含该前缀。
otNetDataGet(otInstance *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)
此方法提供分区的线程网络数据的完整或稳定副本。
otNetDataGetNextOnMeshPrefix(otInstance *aInstance, otNetworkDataIterator *aIterator, otBorderRouterConfig *aConfig)
该函数获取分区的网络数据中的下一个 On Mesh 前缀。
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 服务”条目是否添加到线程网络数据中。
otNetDataIsPrefixAdded(otInstance *aInstance, const otIp6Prefix *aPrefix)
bool
此函数指示当前是否已经向线程网络数据添加了已发布的前缀条目(网格或外部路由)。
otNetDataPublishDnsSrpServiceAnycast(otInstance *aInstance, uint8_t aSequenceNUmber)
void
此函数请求在线程网络数据中发布 DNS/SRP 服务任播地址。
otNetDataPublishDnsSrpServiceUnicast(otInstance *aInstance, const otIp6Address *aAddress, uint16_t aPort)
void
此函数请求在线程网络数据中发布“DNS/SRP 服务单播地址”。
otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(otInstance *aInstance, uint16_t aPort)
void
此函数请求在线程网络数据中发布“DNS/SRP 服务单播地址”。
otNetDataPublishExternalRoute(otInstance *aInstance, const otExternalRouteConfig *aConfig)
此函数请求在线程网络数据中发布外部路由前缀。
otNetDataPublishOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
此函数请求在网格网络数据中发布网状前缀。
otNetDataSetDnsSrpServicePublisherCallback(otInstance *aInstance, otNetDataDnsSrpServicePublisherCallback aCallback, void *aContext)
void
此函数设置回调,以便在已发布的“DNS/SRP 服务”实际在线程网络数据中添加或移除时发送通知。
otNetDataSetPrefixPublisherCallback(otInstance *aInstance, otNetDataPrefixPublisherCallback aCallback, void *aContext)
void
此函数设置一个回调,以便在线程前缀数据实际添加或删除线程网络数据时收到通知。
otNetDataSteeringDataCheckJoiner(otInstance *aInstance, const otExtAddress *aEui64)
检查方向数据中是否包含联接。
otNetDataSteeringDataCheckJoinerWithDiscerner(otInstance *aInstance, const struct otJoinerDiscerner *aDiscerner)
检查方向数据中是否包含具有给定可识别值的联接器。
otNetDataUnpublishDnsSrpService(otInstance *aInstance)
void
此函数从线程网络数据中取消发布先前添加的任何“DNS/SRP(任播或 Unicast)服务”条目。
otNetDataUnpublishPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
此函数将取消发布之前发布的前缀(网格或外部路由)。
otThreadBecomeChild(otInstance *aInstance)
以儿童身份尝试重新连接。
otThreadBecomeDetached(otInstance *aInstance)
与 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
获取以子级角色操作时使用的线程子级超时。
otThreadGetDeviceRole(otInstance *aInstance)
获取设备角色。
otThreadGetDomainName(otInstance *aInstance)
const char *
获取线程域名。
otThreadGetExtendedPanId(otInstance *aInstance)
const otExtendedPanId *
获取 IEEE 802.15.4 Extended PAN ID。
otThreadGetFixedDuaInterfaceIdentifier(otInstance *aInstance)
获取为线程域单播地址手动指定的接口标识符。
otThreadGetIp6Counters(otInstance *aInstance)
const otIpCounters *
获取 IPv6 计数器。
otThreadGetKeySequenceCounter(otInstance *aInstance)
uint32_t
获取 TheSchedulingSequenceCounter。
otThreadGetKeySwitchGuardTime(otInstance *aInstance)
uint32_t
获取 {9/}SwitchGuardTime。
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 *
此函数返回线程链路本地所有线程节点的多播地址。
otThreadGetLinkLocalIp6Address(otInstance *aInstance)
const otIp6Address *
此函数返回线程链路本地 IPv6 地址。
otThreadGetLinkMode(otInstance *aInstance)
获取 MLE 链接模式配置。
otThreadGetMeshLocalEid(otInstance *aInstance)
const otIp6Address *
此函数会返回指向 Mesh Local EID 地址的指针。
otThreadGetMeshLocalPrefix(otInstance *aInstance)
此函数会返回指向 Mesh 本地前缀的指针。
otThreadGetMleCounters(otInstance *aInstance)
const otMleCounters *
获取 Thread MLE 计数器。
otThreadGetNetworkKey(otInstance *aInstance, otNetworkKey *aNetworkKey)
void
获取线程网络密钥。
otThreadGetNetworkKeyRef(otInstance *aInstance)
获取线程网络密钥的 otNetworkKeyRef
otThreadGetNetworkName(otInstance *aInstance)
const char *
获取线程网络名称。
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 All Thread Nodes 多播地址。
otThreadGetRloc(otInstance *aInstance)
const otIp6Address *
此函数会返回指向线程路由定位器 (RLOC) 地址的指针。
otThreadGetRloc16(otInstance *aInstance)
uint16_t
获取 RLOC16。
otThreadGetServiceAloc(otInstance *aInstance, uint8_t aServiceId, otIp6Address *aServiceAloc)
此函数用于检索给定服务 ID 的服务 ALOC。
otThreadGetVersion(void)
uint16_t
此函数会获取线程协议版本。
otThreadIsAnycastLocateInProgress(otInstance *aInstance)
bool
此函数用于指示某个任播定位请求当前是否正在处理中。
otThreadIsDiscoverInProgress(otInstance *aInstance)
bool
此函数用于确定 MLE Thread Discovery 当前是否正在进行。
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 计数器。
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)
发送网络诊断 Get 请求。
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)
此函数启动线程协议操作。
otThreadSetExtendedPanId(otInstance *aInstance, const otExtendedPanId *aExtendedPanId)
设置 IEEE 802.15.4 Extended PAN ID。
otThreadSetFixedDuaInterfaceIdentifier(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
设置/清除为 Thread 域单播地址手动指定的接口标识符。
otThreadSetJoinerAdvertisement(otInstance *aInstance, uint32_t aOui, const uint8_t *aAdvData, uint8_t aAdvDataLength)
此方法会在发现线程网络时设置线程联接器通告。
otThreadSetKeySequenceCounter(otInstance *aInstance, uint32_t aKeySequenceCounter)
void
设置 ththSequenceCounter。
otThreadSetKeySwitchGuardTime(otInstance *aInstance, uint32_t aKeySwitchGuardTime)
void
设置 {9/}SwitchGuardTime。
otThreadSetLinkMode(otInstance *aInstance, otLinkModeConfig aConfig)
设置 MLE Link Mode 配置。
otThreadSetMeshLocalPrefix(otInstance *aInstance, const otMeshLocalPrefix *aMeshLocalPrefix)
此函数可设置网格本地前缀。
otThreadSetNetworkKey(otInstance *aInstance, const otNetworkKey *aKey)
设置线程网络密钥。
otThreadSetNetworkKeyRef(otInstance *aInstance, otNetworkKeyRef aKeyRef)
将线程网络键设置为 otNetworkKeyRef
otThreadSetNetworkName(otInstance *aInstance, const char *aNetworkName)
设置线程网络名称。

结构体

otBorderRouterConfig

此结构表示边界路由器配置。

otExternalRouteConfig

此结构表示外部路由配置。

otIpCounters

此结构表示 IP 级别计数器。

otLeaderData

此结构表示线程主要数据。

otLinkModeConfig

此结构表示 MLE 链接模式配置。

otMleCounters

此结构表示 Thread MLE 计数器。

otNeighborInfo

此结构用于存储相邻线程节点的诊断信息。

otNetworkDiagChildEntry

此结构表示网络诊断子表条目。

otNetworkDiagConnectivity

此结构表示网络诊断连接值。

otNetworkDiagMacCounters

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

otNetworkDiagRoute

此结构表示网络诊断路由 TLV 值。

otNetworkDiagRouteData

此结构表示网络诊断路由数据。

otNetworkDiagTlv

此结构表示网络诊断 TLV。

otRouterInfo

此结构包含线程路由器的诊断信息。

otServerConfig

此结构表示服务器配置。

otServiceConfig

此结构表示一项服务配置。

otThreadDiscoveryRequestInfo

此结构表示线程发现请求数据。

otThreadParentResponseInfo

此结构表示 MLE 父响应数据。

枚举

OTDeviceRole

 otDeviceRole

表示 Thread 设备角色。

属性
OT_DEVICE_ROLE_CHILD

Thread Child 角色。

OT_DEVICE_ROLE_DETACHED

当前未参与 Thread 网络/分区。

OT_DEVICE_ROLE_DISABLED

线程堆栈已停用。

OT_DEVICE_ROLE_LEADER

Thread Leader 角色。

OT_DEVICE_ROLE_ROUTER

Thread Router 角色。

otNetDataPublisherEvent

 otNetDataPublisherEvent

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

属性
OT_NETDATA_PUBLISHER_EVENT_ENTRY_ADDED

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

OT_NETDATA_PUBLISHER_EVENT_ENTRY_REMOVED

已发布的条目会从线程网络数据中移除。

otRoutePreference 类

 otRoutePreference

定义 otExternalRouteConfigotBorderRouterConfigmPreference 的有效值。

属性
OT_ROUTE_PREFERENCE_HIGH

高路线偏好。

OT_ROUTE_PREFERENCE_LOW

低路线偏好设置。

OT_ROUTE_PREFERENCE_MED

中等路线偏好设置。

类型定义符

otBorderRouterConfig

struct otBorderRouterConfig otBorderRouterConfig

此结构表示边界路由器配置。

otExternalRouteConfig

struct otExternalRouteConfig otExternalRouteConfig

此结构表示外部路由配置。

OTI 计数器

struct otIpCounters otIpCounters

此结构表示 IP 级别计数器。

OT 领先者数据

struct otLeaderData otLeaderData

此结构表示线程主要数据。

otLinkModeConfig

struct otLinkModeConfig otLinkModeConfig

此结构表示 MLE 链接模式配置。

OTM 计数器

struct otMleCounters otMleCounters

此结构表示 Thread MLE 计数器。

otNeighborInfoIterator

int16_t otNeighborInfoIterator

用于遍历邻居表。

otNetDataDnsSrpServicePublisherCallback

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

此函数指针类型定义回调,用于在线程网络数据中添加或移除“DNS/SRP 服务”条目时发出通知。

移除时,无论 Publisher 是否移除该条目(例如,网络数据中已存在太多类似条目)或取消取消发布该条目的显式调用(即,对 otNetDataUnpublishDnsSrpService() 的调用),都会调用回调函数。

详情
参数
[in] aEvent
指示事件(添加或移除相应条目)。
[in] aContext
指向应用特定上下文的指针。

otNetDataPrefixPublisherCallback

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

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

移除回调函数时,系统会调用该条目,无论该条目是被 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

用于遍历网络诊断 TLV。

otNetworkDiagMacCounters

struct otNetworkDiagMacCounters otNetworkDiagMacCounters

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

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

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
指向接收的网络诊断获取响应载荷的消息缓冲区的指针。仅当 aErrorOT_ERROR_NONE 时可用。
[in] aMessageInfo
指向 aMessage 的消息信息的指针。仅当 aErrorOT_ERROR_NONE 时可用。
[in] aContext
指向应用特定上下文的指针。

otRoutePreference 类

enum otRoutePreference otRoutePreference

定义 otExternalRouteConfigotBorderRouterConfigmPreference 的有效值。

otServerConfig

struct otServerConfig otServerConfig

此结构表示服务器配置。

otServiceConfig

struct otServiceConfig otServiceConfig

此结构表示一项服务配置。

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 Discovery 请求消息时,都会调用此函数指针。

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

otThreadDiscoveryRequestInfo

struct otThreadDiscoveryRequestInfo otThreadDiscoveryRequestInfo

此结构表示线程发现请求数据。

otThreadParentResponseCallback

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

每当收到 MLE 父响应消息时,都会调用此函数指针。

详情
参数
[in] aInfo
指向堆栈中存储统计信息数据的位置的指针。
[in] aContext
用于回调特定于客户端的上下文的指针。

otThreadParentResponseInfo

struct otThreadParentResponseInfo otThreadParentResponseInfo

此结构表示 MLE 父响应数据。

函数

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
)

此方法提供分区的线程网络数据的完整或稳定副本。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aStable
复制稳定版时为 TRUE,复制完整版时为 False。
[out] aData
指向数据缓冲区的指针。
[in,out] aDataLength
进入时,由 aData 指向的数据缓冲区的大小。退出时,复制的字节数。

otNetDataGetNextOnMeshPrefix

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

该函数获取分区的网络数据中的下一个 On Mesh 前缀。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in,out] aIterator
指向网络数据迭代器上下文的指针。如需获取第一个网状条目,应将其设置为 OT_NETWORK_DATA_ITERATOR_INIT。
[out] aConfig
指向“网状网前缀”信息的放置位置的指针。
返回值
OT_ERROR_NONE
成功找到下一个 On Mesh 前缀。
OT_ERROR_NOT_FOUND
线程网络数据中没有后续的 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
线程网络数据中没有后续外部路由条目。

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 服务”条目是否添加到线程网络数据中。

该函数需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
TRUE
发布的 DNS/SRP 服务条目会添加到线程网络数据中。
FALSE
该条目未添加到线程网络数据中,或者没有条目可供发布。

otNetDataIsPrefixAdded

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

此函数指示当前是否已经向线程网络数据添加了已发布的前缀条目(网格或外部路由)。

该函数需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

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

otNetDataPublishDnsSrpServiceAnycast

void otNetDataPublishDnsSrpServiceAnycast(
  otInstance *aInstance,
  uint8_t aSequenceNUmber
)

此函数请求在线程网络数据中发布 DNS/SRP 服务任播地址。

该函数需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

调用此函数将移除并替换之前发布的任何“DNS/SRP Service”条目(从先前调用任何 otNetDataPublishDnsSrpService{Type}() 函数开始)。

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

otNetDataPublishDnsSrpServiceUnicast

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

此函数请求在线程网络数据中发布“DNS/SRP 服务单播地址”。

该函数需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

调用此函数将移除并替换之前发布的任何“DNS/SRP Service”条目(从先前调用任何 otNetDataPublishDnsSrpService{Type}() 函数开始)。

此函数通过在 Service TLV 数据中包含地址和端口信息来发布“DNS/SRP 服务单播地址”。

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

otNetDataPublishDnsSrpServiceUnicastMeshLocalEid

void otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(
  otInstance *aInstance,
  uint16_t aPort
)

此函数请求在线程网络数据中发布“DNS/SRP 服务单播地址”。

该函数需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

调用此函数将移除并替换之前发布的任何“DNS/SRP Service”条目(从先前调用任何 otNetDataPublishDnsSrpService{Type}() 函数开始)。

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

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

otNetDataPublishExternalRoute

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

此函数请求在线程网络数据中发布外部路由前缀。

该函数需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

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

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aConfig
要发布的外部路由配置(不得为 NULL)。
返回值
OT_ERROR_NONE
已成功发布外部路由。
OT_ERROR_INVALID_ARGS
aConfig 无效(前缀无效、标记组合无效或稳定性不高)。
OT_ERROR_ALREADY
已发布列表中已存在具有相同前缀的条目。
OT_ERROR_NO_BUFS
无法为新请求分配条目。发布商支持有限数量的条目(在网络前缀和外部路由之间共享),这由配置 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES 决定。

otNetDataPublishOnMeshPrefix

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

此函数请求在网格网络数据中发布网状前缀。

该函数需要启用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

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

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aConfig
要发布的网状前缀前缀(不得为 NULL)。
返回值
OT_ERROR_NONE
已成功发布 on-mesh 前缀。
OT_ERROR_INVALID_ARGS
aConfig 无效(前缀无效、标记组合无效或稳定性不高)。
OT_ERROR_ALREADY
已发布列表中已存在具有相同前缀的条目。
OT_ERROR_NO_BUFS
无法为新请求分配条目。发布商支持有限数量的条目(在网络前缀和外部路由之间共享),这由配置 OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES 决定。

otNetDataSetDnsSrpServicePublisherCallback

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

此函数设置回调,以便在已发布的“DNS/SRP 服务”实际在线程网络数据中添加或移除时发送通知。

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

该函数需要启用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
回调函数指针(不需要时可以为 NULL)。
[in] aContext
指向应用专属上下文的指针(在调用 aCallback 时使用)。

otNetDataSetPrefixPublisherCallback

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

此函数设置一个回调,以便在线程前缀数据实际添加或删除线程网络数据时收到通知。

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

该函数需要启用 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
指向 Joine' 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
)

此函数从线程网络数据中取消发布先前添加的任何“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
在发布的列表中找不到前缀。

oThreadThreadChild

otError otThreadBecomeChild(
  otInstance *aInstance
)

以儿童身份尝试重新连接。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
已成功开始成为儿童。
OT_ERROR_INVALID_STATE
话题已停用。

oThreadThreadDetached

otError otThreadBecomeDetached(
  otInstance *aInstance
)

与 Thread 网络分离。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
OT_ERROR_NONE
已成功从线程网络分离。
OT_ERROR_INVALID_STATE
话题已停用。

otThreadDeviceRoleToString

const char * otThreadDeviceRoleToString(
  otDeviceRole aRole
)

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

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

oThreadThread 发现

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
True 表示过滤 EUI-64 上的响应,否则为 False。
[in] aCallback
指向接收 MLE 发现响应或扫描完成时调用的函数的指针。
[in] aCallbackContext
指向应用特定上下文的指针。
返回值
OT_ERROR_NONE
已成功启动线程发现扫描。
OT_ERROR_INVALID_STATE
IPv6 接口未启用(netif 未启动)。
OT_ERROR_NO_BUFS
无法为“发现请求”分配消息。
OT_ERROR_BUSY
线程发现扫描已在进行中。

otThreadGetChildTimeout

uint32_t otThreadGetChildTimeout(
  otInstance *aInstance
)

获取以子级角色操作时使用的线程子级超时。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
线程子级超时值(以秒为单位)。
另请参阅
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
)

获取线程域名。

此功能仅在线程 1.2 之后可用。

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

otThreadGetExtendedPanId

const otExtendedPanId * otThreadGetExtendedPanId(
  otInstance *aInstance
)

获取 IEEE 802.15.4 Extended PAN ID。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 IEEE 802.15.4 Extended PAN ID 的指针。
另请参阅
otThreadSetExtendedPanId

otThreadGetFixedDuaInterfaceIdentifier

const otIp6InterfaceIdentifier * otThreadGetFixedDuaInterfaceIdentifier(
  otInstance *aInstance
)

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

只有在启用 OPENTHREAD_CONFIG_DUA_ENABLE 后,线程 1.2 才可用。

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

otThreadGetIp6 计数器

const otIpCounters * otThreadGetIp6Counters(
  otInstance *aInstance
)

获取 IPv6 计数器。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 IPv6 计数器的指针。

otThreadGetKeySequenceCounter

uint32_t otThreadGetKeySequenceCounter(
  otInstance *aInstance
)

获取 TheSchedulingSequenceCounter。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
thSchedulingSequenceCounter 值。
另请参阅
otThreadSetKeySequenceCounter

otThreadGetKeySwitchGuard 时间

uint32_t otThreadGetKeySwitchGuardTime(
  otInstance *aInstance
)

获取 {9/}SwitchGuardTime。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
ththSwitchSwitchGuardTime 值(以小时为单位)。
另请参阅
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
)

此函数返回线程链路本地所有线程节点的多播地址。

该地址是基于链路单播前缀的多播地址 [RFC 3306],其中包含:

  • flgs 设置为 3(P = 1,T = 1)
  • Scop 设置为 2
  • CANNOT TRANSLATE
  • 网络前缀已设置为 Mesh 本地前缀
  • 组 ID 设置为 1

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

otThreadGetLinkLocalIp6Address

const otIp6Address * otThreadGetLinkLocalIp6Address(
  otInstance *aInstance
)

此函数返回线程链路本地 IPv6 地址。

Thread Link 本地地址使用 IEEE802.15.4 扩展地址作为接口标识符。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向线程链路本地 IPv6 地址的指针。

otThreadGetLinkMode

otLinkModeConfig otThreadGetLinkMode(
  otInstance *aInstance
)

获取 MLE 链接模式配置。

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

otThreadGetMeshLocalEid

const otIp6Address * otThreadGetMeshLocalEid(
  otInstance *aInstance
)

此函数会返回指向 Mesh Local EID 地址的指针。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 Mesh Local EID 地址的指针。

otThreadGetMeshLocalPrefix

const otMeshLocalPrefix * otThreadGetMeshLocalPrefix(
  otInstance *aInstance
)

此函数会返回指向 Mesh 本地前缀的指针。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 Mesh Local Prefix 的指针。

otThreadGetMleCounters

const otMleCounters * otThreadGetMleCounters(
  otInstance *aInstance
)

获取 Thread MLE 计数器。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 Thread MLE 计数器的指针。

otThreadGetNetworkKey

void otThreadGetNetworkKey(
  otInstance *aInstance,
  otNetworkKey *aNetworkKey
)

获取线程网络密钥。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[out] aNetworkKey
指向 otNetworkkey 的指针,用于返回线程网络键。
另请参阅
otThreadSetNetworkKey

otThreadGetNetworkKeyRef

otNetworkKeyRef otThreadGetNetworkKeyRef(
  otInstance *aInstance
)

获取线程网络密钥的 otNetworkKeyRef

该函数需要启用构建时功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
引用内存中存储的线程网络密钥。
另请参阅
otThreadSetNetworkKeyRef

otThreadGetNetworkName

const char * otThreadGetNetworkName(
  otInstance *aInstance
)

获取线程网络名称。

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

otThreadGetNextDiagnosticTlv

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

此函数将获取消息中的下一个网络诊断 TLV。

只有在当前返回值为 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 All Thread Nodes 多播地址。

该地址是基于本地 Unicast 前缀的多播地址 [RFC 3306],其中:

  • flgs 设置为 3(P = 1,T = 1)
  • Scop 设置为 3
  • CANNOT TRANSLATE
  • 网络前缀已设置为 Mesh 本地前缀
  • 组 ID 设置为 1

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
指向 Thread Realm-Local All Thread Nodes multicast 地址的指针。

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
用于输出 Service ALOC 的指针。不得为 NULL。
返回值
OT_ERROR_NONE
已成功检索到服务 ALOC。
OT_ERROR_DETACHED
Thread 接口当前未附加到线程分区。

otThreadGetVersion

uint16_t otThreadGetVersion(
  void
)

此函数会获取线程协议版本。

详情
返回值
Thread 协议版本。

otThreadIsAnycastLocateInProgress

bool otThreadIsAnycastLocateInProgress(
  otInstance *aInstance
)

此函数用于指示某个任播定位请求当前是否正在处理中。

仅当 OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE 处于启用状态时,此功能才可用。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
返回值
如果任播定位请求正在处理中,则为 TRUE,否则为 False。

otThreadIsDiscoverInProgress

bool otThreadIsDiscoverInProgress(
  otInstance *aInstance
)

此函数用于确定 MLE Thread Discovery 当前是否正在进行。

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

oThreadThreadSingleton

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 父响应数据。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aCallback
指向接收 MLE 父响应消息时调用的函数的指针。
[in] aContext
用于回调特定于客户端的上下文的指针。

otThreadResetIp6 计数器

void otThreadResetIp6Counters(
  otInstance *aInstance
)

重置 IPv6 计数器。

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

otThreadResetMleCounters

void otThreadResetMleCounters(
  otInstance *aInstance
)

重置 Thread MLE 计数器。

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

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
)

发送网络诊断 Get 请求。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDestination
指向目的地地址的指针。
[in] aTlvTypes
网络诊断 TLV 类型的数组。
[in] aCount
aTlvTypes 中的类型数量。
[in] aCallback
指向在接收网络诊断 Get 响应时调用的函数的指针,或点击 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
)

发送网络诊断重置请求。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aDestination
指向目的地地址的指针。
[in] aTlvTypes
网络诊断 TLV 类型的数组。目前仅支持 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 Discovery 请求消息时调用的函数的指针。
[in] aContext
用于回调应用特定上下文的指针。

otThreadSetDomainName

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

设置线程域名。

此功能仅在线程 1.2 之后可用。只有在线程协议处于停用状态时,该函数才能成功运行。

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

otThreadSetEnabled

otError otThreadSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

此函数启动线程协议操作。

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

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aEnabled
如果线程已启用,则为 TRUE,否则为 False。
返回值
OT_ERROR_NONE
已成功启动线程协议操作。
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 Extended PAN ID 的指针。
返回值
OT_ERROR_NONE
已成功设置扩展 PAN ID。
OT_ERROR_INVALID_STATE
线程协议已启用。
另请参阅
otThreadGetExtendedPanId

otThreadSetFixedDuaInterfaceIdentifier

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

设置/清除为 Thread 域单播地址手动指定的接口标识符。

只有在启用 OPENTHREAD_CONFIG_DUA_ENABLE 后,线程 1.2 才可用。

详情
参数
[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
)

此方法会在发现线程网络时设置线程联接器通告。

借助“线程结合器广告”功能,参与者可通过新提议的“参与者广告 TLV”宣传其应用专用信息(例如供应商 ID、产品 ID、判别器等),并使其可供“佣金”或“专员”候选人使用,而无需人工干预。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aOui
供应商加入的 IEEE OUI 值。仅使用最低有效 3 字节,而忽略最高有效字节。
[in] aAdvData
指向将包含在联接通告中的 AdvData 的指针。
[in] aAdvDataLength
AdvData 的长度(以字节为单位)。
返回值
OT_ERROR_NONE
已成功设置“Joiner Advertisement”。
OT_ERROR_INVALID_ARGS
AdvData 无效。

otThreadSetKeySequenceCounter

void otThreadSetKeySequenceCounter(
  otInstance *aInstance,
  uint32_t aKeySequenceCounter
)

设置 ththSequenceCounter。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aKeySequenceCounter
thSchedulingSequenceCounter 值。
另请参阅
otThreadGetKeySequenceCounter

otThreadSetKeySwitchGuard 时间

void otThreadSetKeySwitchGuardTime(
  otInstance *aInstance,
  uint32_t aKeySwitchGuardTime
)

设置 {9/}SwitchGuardTime。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aKeySwitchGuardTime
ththSwitchSwitchGuardTime 值(以小时为单位)。
另请参阅
otThreadGetKeySwitchGuardTime

otThreadSetLinkMode

otError otThreadSetLinkMode(
  otInstance *aInstance,
  otLinkModeConfig aConfig
)

设置 MLE Link Mode 配置。

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

otThreadSetMeshLocalPrefix

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

此函数可设置网格本地前缀。

只有在线程协议处于停用状态时,该函数才能成功运行。如果成功调用此函数,则非易失性内存中的活跃和待处理操作数据集无效。

详情
参数
[in] aInstance
指向 OpenThread 实例的指针。
[in] aMeshLocalPrefix
指向 Mesh Local Prefix 的指针。
返回值
OT_ERROR_NONE
已成功设置 Mesh 本地前缀。
OT_ERROR_INVALID_STATE
线程协议已启用。

otThreadSetNetworkKey

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

设置线程网络密钥。

只有在线程协议处于停用状态时,该函数才能成功运行。如果成功调用此函数,则非易失性内存中的活跃和待处理操作数据集无效。

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

otThreadSetNetworkKeyRef

otError otThreadSetNetworkKeyRef(
  otInstance *aInstance,
  otNetworkKeyRef aKeyRef
)

将线程网络键设置为 otNetworkKeyRef

只有在线程协议处于停用状态时,该函数才能成功运行。如果成功调用此函数,则非易失性内存中的活跃和待处理操作数据集无效。

该函数需要启用构建时功能 OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE

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

otThreadSetNetworkName

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

设置线程网络名称。

只有在线程协议处于停用状态时,该函数才能成功运行。如果成功调用此函数,则非易失性内存中的活跃和待处理操作数据集无效。

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

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_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 上的源代码。 如需了解详情或为我们的文档做贡献,请参阅资源