一般

這個模組包含所有 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
}
列舉
定義 otExternalRouteConfigotBorderRouterConfigmPreference 的有效值。

Typedefs

otBorderRouterConfig typedef
代表邊界路由器設定。
otDetachGracefullyCallback)(void *aContext) typedef
void(*
此回呼會通知應用程式,卸離程序已完成。
otExternalRouteConfig typedef
代表外部路徑設定。
otIpCounters typedef
struct otIpCounters
代表 IP 層級計數器。
otLeaderData typedef
struct otLeaderData
代表 Thread 領導者資料。
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
用於透過網路診斷 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(*
收到網路診斷 Get 回應時就會呼叫指標。
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 探索要求訊息時,系統就會呼叫指標。
otThreadDiscoveryRequestInfo typedef
代表 Thread 探索要求資料。
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)
提供分區執行緒網路資料的完整或穩定副本。
otNetDataGetCommissioningDataset(otInstance *aInstance, otCommissioningDataset *aDataset)
void
從分區的網路資料取得調試資料集。
otNetDataGetLength(otInstance *aInstance)
uint8_t
取得分區執行緒網路資料目前的長度 (位元組數)。
otNetDataGetMaxLength(otInstance *aInstance)
uint8_t
自 OT 堆疊初始化或上次呼叫 otNetDataResetMaxLength() 以來,取得觀察到的 Thread 網路資料長度上限。
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 網路資料中發布「DNS/SRP 服務 Anycast 位址」。
otNetDataPublishDnsSrpServiceUnicast(otInstance *aInstance, const otIp6Address *aAddress, uint16_t aPort)
void
要求在 Thread 網路資料中發布「DNS/SRP 服務 Unicast 位址」。
otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(otInstance *aInstance, uint16_t aPort)
void
要求在 Thread 網路資料中發布「DNS/SRP 服務 Unicast 位址」。
otNetDataPublishExternalRoute(otInstance *aInstance, const otExternalRouteConfig *aConfig)
要求在 Thread 網路資料中發布外部路徑前置字串。
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 網路資料中新增或移除時收到通知。
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
取消發布先前從 Thread 網路資料中新增的 DNS/SRP (Anycast 或 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 探索掃描。
otThreadGetChildTimeout(otInstance *aInstance)
uint32_t
取得在子項角色執行作業時使用的執行緒子項逾時時間 (以秒為單位)。
otThreadGetDeviceRole(otInstance *aInstance)
取得裝置角色。
otThreadGetDomainName(otInstance *aInstance)
const char *
取得 Thread 網域名稱。
otThreadGetExtendedPanId(otInstance *aInstance)
const otExtendedPanId *
取得 IEEE 802.15.4 擴充永久帳號 ID。
otThreadGetFixedDuaInterfaceIdentifier(otInstance *aInstance)
取得為 Thread 網域統一位址手動指定的介面 ID。
otThreadGetIp6Counters(otInstance *aInstance)
const otIpCounters *
取得 IPv6 計數器。
otThreadGetKeySequenceCounter(otInstance *aInstance)
uint32_t
取得 thrKeySequenceCounter。
otThreadGetKeySwitchGuardTime(otInstance *aInstance)
uint32_t
取得 thrKeySwitchGuardTime (以小時為單位)。
otThreadGetLeaderData(otInstance *aInstance, otLeaderData *aLeaderData)
取得 Thread 主管資料。
otThreadGetLeaderRloc(otInstance *aInstance, otIp6Address *aLeaderRloc)
傳回主管的 RLOC 指標。
otThreadGetLeaderRouterId(otInstance *aInstance)
uint8_t
取得領導者的路由器 ID。
otThreadGetLeaderWeight(otInstance *aInstance)
uint8_t
取得領導者的體重。
otThreadGetLinkLocalAllThreadNodesMulticastAddress(otInstance *aInstance)
const otIp6Address *
取得 Thread Link-本機所有 Thread 節點的多點傳送位址。
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)
函式會擷取 Thread 父項的平均 RSSI。
otThreadGetParentInfo(otInstance *aInstance, otRouterInfo *aParentInfo)
這個函式會擷取 Thread 路由器 (父項) 的診斷資訊。
otThreadGetParentLastRssi(otInstance *aInstance, int8_t *aLastRssi)
這個函式會從 Thread 父項擷取最後一個封包的 RSSI。
otThreadGetPartitionId(otInstance *aInstance)
uint32_t
取得分區 ID。
otThreadGetRealmLocalAllThreadNodesMulticastAddress(otInstance *aInstance)
const otIp6Address *
取得 Thread Realm-Local All Thread Nodes 多點傳送位址。
otThreadGetRloc(otInstance *aInstance)
const otIp6Address *
取得 Thread 路由定位器 (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 Thread 探索。
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)
傳送含有 Backbone 連結的主動骨幹通知 (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)
設定 Thread 網域名稱。
otThreadSetEnabled(otInstance *aInstance, bool aEnabled)
啟動 Thread 通訊協定作業。
otThreadSetExtendedPanId(otInstance *aInstance, const otExtendedPanId *aExtendedPanId)
設定 IEEE 802.15.4 擴充永久帳號 ID。
otThreadSetFixedDuaInterfaceIdentifier(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
設定或清除為 Thread 網域單點傳播位址手動指定的介面 ID。
otThreadSetJoinerAdvertisement(otInstance *aInstance, uint32_t aOui, const uint8_t *aAdvData, uint8_t aAdvDataLength)
設定探索 Thread 網路時的 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 Network 名稱。
otThreadSetVendorModel(otInstance *aInstance, const char *aVendorModel)
設定供應商模型字串。
otThreadSetVendorName(otInstance *aInstance, const char *aVendorName)
設定供應商名稱字串。
otThreadSetVendorSwVersion(otInstance *aInstance, const char *aVendorSwVersion)
設定供應商軟體版本字串。

結構

otBorderRouterConfig

代表邊界路由器設定。

otExternalRouteConfig

代表外部路徑設定。

otIpCounters

代表 IP 層級計數器。

otLeaderData

代表 Thread 領導者資料。

otLinkModeConfig

代表 MLE 連結模式設定。

otLowpanContextInfo

代表與網路資料中的前置字串相關聯的 6LoWPAN 內容 ID 資訊。

otMleCounters

代表 Thread MLE 計數器。

otNeighborInfo

保留鄰近 Thread 節點的診斷資訊。

otNetworkDiagChildEntry

代表網路診斷子項表格項目。

otNetworkDiagConnectivity

代表網路診斷連線值。

otNetworkDiagMacCounters

代表網路診斷 Mac 計數器值。

otNetworkDiagMleCounters

代表網路診斷的 MLE 計數器值。

otNetworkDiagRoute

代表網路診斷路徑 TLV 值。

otNetworkDiagRouteData

代表網路診斷路徑資料。

otNetworkDiagTlv

代表網路診斷 TLV。

otRouterInfo

保留 Thread 路由器的診斷資訊。

otServerConfig

代表伺服器設定。

otServiceConfig

代表服務設定。

otThreadDiscoveryRequestInfo

代表 Thread 探索要求資料。

otThreadParentResponseInfo

代表 MLE 母親反應資料。

列舉

匿名列舉

 anonymous enum
屬性
OT_NETWORK_DIAGNOSTIC_TLV_ANSWER

回答重點摘要

OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL

電池電量 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES

頻道頁面重點摘要。

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

領導者資料重點摘要。

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

網路資料 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

位址 16 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

類型清單 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_MODEL

供應商型號 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_NAME

供應商名稱 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_SW_VERSION

供應商 SW 版本 TLV。

OT_NETWORK_DIAGNOSTIC_TLV_VERSION

版本 TLV。

otDeviceRole

 otDeviceRole

代表 Thread 裝置角色。

屬性
OT_DEVICE_ROLE_CHILD

執行緒子項角色。

OT_DEVICE_ROLE_DETACHED

目前未加入 Thread 網路/分區。

OT_DEVICE_ROLE_DISABLED

執行緒堆疊已停用。

OT_DEVICE_ROLE_LEADER

執行緒領導者角色。

OT_DEVICE_ROLE_ROUTER

Thread 路由器角色。

otNetDataPublisherEvent

 otNetDataPublisherEvent

代表發布商回呼回報的事件。

屬性
OT_NETDATA_PUBLISHER_EVENT_ENTRY_ADDED

已發布的項目會新增至 Thread 網路資料。

OT_NETDATA_PUBLISHER_EVENT_ENTRY_REMOVED

系統會從 Thread 網路資料中移除已發布的項目。

otRoutePreference

 otRoutePreference

定義 otExternalRouteConfigotBorderRouterConfigmPreference 的有效值。

屬性
OT_ROUTE_PREFERENCE_HIGH

高路徑偏好設定。

OT_ROUTE_PREFERENCE_LOW

路線偏好偏低。

OT_ROUTE_PREFERENCE_MED

中等路徑偏好。

Typedefs

otBorderRouterConfig

struct otBorderRouterConfig otBorderRouterConfig

代表邊界路由器設定。

otDetachGracefullyCallback

void(* otDetachGracefullyCallback)(void *aContext)

此回呼會通知應用程式,卸離程序已完成。

詳細說明
參數
[in] aContext
指向應用程式特定背景資訊的指標。

otExternalRouteConfig

struct otExternalRouteConfig otExternalRouteConfig

代表外部路徑設定。

otIpCounters

struct otIpCounters otIpCounters

代表 IP 層級計數器。

otLeaderData

struct otLeaderData otLeaderData

代表 Thread 領導者資料。

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

用於透過網路診斷 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)

收到網路診斷 Get 回應時就會呼叫指標。

詳細說明
參數
[in] aError
無法取得回應時發生錯誤。
[in] aMessage
指向包含已收到網路診斷 Get 回應酬載的訊息緩衝區指標。只有在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 時,指向 Anycast 位址最接近目的地的網狀本機 EID 指標,否則為 NULL。
[in] aRloc16
找到目的地的 RLOC16,否則無效 RLOC16 (0xfffe)。

otThreadDiscoveryRequestCallback

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

每次收到 MLE 探索要求訊息時,系統就會呼叫指標。

詳細說明
參數
[in] aInfo
指向「探索要求」資訊資料的指標。
[in] aContext
回呼應用程式專屬背景資訊的指標。

otThreadDiscoveryRequestInfo

struct otThreadDiscoveryRequestInfo otThreadDiscoveryRequestInfo

代表 Thread 探索要求資料。

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.::" (如果超過一天)。

如果產生的字串不符合 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
)

提供分區執行緒網路資料的完整或穩定副本。

詳細說明
參數
[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() 以來,取得觀察到的 Thread 網路資料長度上限。

詳細說明
參數
[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 網路資料中沒有後續的「網狀網路」前置字串。

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
前置字串的指標 (不得為空值)。
傳回值
TRUE
已發布的前置字串項目會新增至執行緒網路資料。
FALSE
這個項目不會新增至 Thread 網路資料,或是沒有可發布的項目。

otNetDataPublishDnsSrpServiceAnycast

void otNetDataPublishDnsSrpServiceAnycast(
  otInstance *aInstance,
  uint8_t aSequenceNUmber
)

要求在 Thread 網路資料中發布「DNS/SRP 服務 Anycast 位址」。

必須啟用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

呼叫這個函式後,系統會移除並取代先前發布的「DNS/SRP 服務」項目 (從先前呼叫任何 otNetDataPublishDnsSrpService{Type}() 函式)。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aSequenceNUmber
DNS/SRP Anycast 服務的序號。

otNetDataPublishDnsSrpServiceUnicast

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

要求在 Thread 網路資料中發布「DNS/SRP 服務 Unicast 位址」。

必須啟用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

呼叫這個函式後,系統會移除並取代先前發布的「DNS/SRP 服務」項目 (從先前呼叫任何 otNetDataPublishDnsSrpService{Type}() 函式)。

在服務 TLV 資料中加入位址和通訊埠資訊,藉此發布「DNS/SRP 服務 Unicast 位址」。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aAddress
要發布的 DNS/SRP 伺服器位址 (不得為空值)。
[in] aPort
要發布的 SRP 伺服器通訊埠號碼。

otNetDataPublishDnsSrpServiceUnicastMeshLocalEid

void otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(
  otInstance *aInstance,
  uint16_t aPort
)

要求在 Thread 網路資料中發布「DNS/SRP 服務 Unicast 位址」。

必須啟用 OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 功能。

呼叫這個函式後,系統會移除並取代先前發布的「DNS/SRP 服務」項目 (從先前呼叫任何 otNetDataPublishDnsSrpService{Type}() 函式)。

otNetDataPublishDnsSrpServiceUnicast() 不同,需要提供已發布的地址,並在服務 TLV 資料中加入資訊,因此這個函式會使用裝置的網格本機 EID,並在伺服器 TLV 資料中加入資訊。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aPort
要發布的 SRP 伺服器通訊埠號碼。

otNetDataPublishExternalRoute

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

要求在 Thread 網路資料中發布外部路徑前置字串。

必須啟用 OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE 功能。

您只能發布穩定版 (即aConfig.mStable 必須為 TRUE)。

後續呼叫這個方法會取代先前針對相同前置字元的要求。特別是,如果新的呼叫僅變更標記 (例如偏好設定層級),且該前置字元已加到網路資料中,則標記的變更會立即反映在「網路資料」中。這可確保不會突然移除「網路資料」中的現有項目。請注意,偏好設定層級的變更可能會導致系統稍後判斷其他節點使用了相同或更高的偏好設定,進而從網路資料中移除項目。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aConfig
要發布的外部路徑設定 (不得為空值)。
傳回值
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
要發布的網狀前置字串設定 (不得為空值)。
傳回值
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 網路資料中新增或移除時收到通知。

對這個函式的後續呼叫會取代先前設定的所有回呼函式。

必須啟用 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
指向加入者 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 (Anycast 或 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
要取消發布的前置字串 (不得為空值)。
傳回值
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 通訊協定作業。

如果是路由器,它會傳送 Address Release,或者是將子項逾時設定為 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 探索掃描。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aScanChannels
這是位元向量,指出要掃描哪些頻道 (例如 OT_CHANNEL_11_MASK)。
[in] aPanId
永久帳號 ID 篩選器 (設為「廣播 PAN」即可停用篩選器)。
[in] aJoiner
探索要求 TLV 中的聯合標記值。
[in] aEnableEui64Filtering
TRUE 可篩選 EUI-64 回應,否則為 FALSE。
[in] aCallback
接收 MLE 探索回應或掃描完成時呼叫的函式指標。
[in] aCallbackContext
指向應用程式特定背景資訊的指標。
傳回值
OT_ERROR_NONE
已成功啟動 Thread 探索掃描功能。
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
裝置目前做為 Thread 子項運作。
OT_DEVICE_ROLE_ROUTER
裝置目前做為 Thread 路由器運作。
OT_DEVICE_ROLE_LEADER
裝置目前是 Thread 領導者。

otThreadGetDomainName

const char * otThreadGetDomainName(
  otInstance *aInstance
)

取得 Thread 網域名稱。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
指向 Thread 網域名稱的指標。
另請參閱:
otThreadSetDomainName

otThreadGetExtendedPanId

const otExtendedPanId * otThreadGetExtendedPanId(
  otInstance *aInstance
)

取得 IEEE 802.15.4 擴充永久帳號 ID。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
指向 IEEE 802.15.4 擴充永久帳號 ID 的指標。
另請參閱:
otThreadSetExtendedPanId

otThreadGetFixedDuaInterfaceIdentifier

const otIp6InterfaceIdentifier * otThreadGetFixedDuaInterfaceIdentifier(
  otInstance *aInstance
)

取得為 Thread 網域統一位址手動指定的介面 ID。

啟用 OPENTHREAD_CONFIG_DUA_ENABLE 後即可使用,

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
指標,指向手動設定的介面 ID;如未設定,則為 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
)

取得 Thread 主管資料。

詳細說明
參數
[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 為空值。
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-本機所有 Thread 節點的多點傳送位址。

位址是連結本機 Unicast 前置字串的多點傳播位址 [RFC 3306],其中包含:

  • flgs 設為 3 (P = 1 且 T = 1)
  • Scop 已設為 2
  • CANNOT TRANSLATE
  • 已設為網格本機前置字串的網路前置字串
  • 群組 ID 已設為 1

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
指向「Thread Link-Local All Thread Nodes」多點傳送位址的指標。

otThreadGetLinkLocalIp6Address

const otIp6Address * otThreadGetLinkLocalIp6Address(
  otInstance *aInstance
)

取得 Thread 連結本機 IPv6 位址。

Thread 連結本機位址是由 IEEE802.15.4 擴充地址 (即介面 ID) 所產生。

詳細說明
參數
[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 的指標,以傳回 Thread 網路金鑰。
另請參閱:
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 執行個體的指標。
傳回
指向 Thread 網路名稱的指標。
另請參閱:
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 為空值。

otThreadGetParentAverageRssi

otError otThreadGetParentAverageRssi(
  otInstance *aInstance,
  int8_t *aParentRssi
)

函式會擷取 Thread 父項的平均 RSSI。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aParentRssi
指向父項 RSSI 位置的指標。

otThreadGetParentInfo

otError otThreadGetParentInfo(
  otInstance *aInstance,
  otRouterInfo *aParentInfo
)

這個函式會擷取 Thread 路由器 (父項) 的診斷資訊。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aParentInfo
指向父項路由器資訊位置的指標。

otThreadGetParentLastRssi

otError otThreadGetParentLastRssi(
  otInstance *aInstance,
  int8_t *aLastRssi
)

這個函式會從 Thread 父項擷取最後一個封包的 RSSI。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aLastRssi
指向最後 RSSI 位置的指標。
傳回值
OT_ERROR_NONE
已成功擷取 RSSI 資料。
OT_ERROR_FAILED
無法取得 RSSI 資料。
OT_ERROR_INVALID_ARGS
aLastRssi 為空值。

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
  • 已設為網格本機前置字串的網路前置字串
  • 群組 ID 已設為 1

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
指向 Thread Realm-Local All Thread Nodes 多點傳送位址的指標。

otThreadGetRloc

const otIp6Address * otThreadGetRloc(
  otInstance *aInstance
)

取得 Thread 路由定位器 (RLOC) 位址。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
指向 Thread 路由定位器 (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 的指標。不得為空值。
傳回值
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 層進行傳輸或捨棄為止。

直方圖會以 uint32_t 值陣列的形式傳回,其中包含 aNumBins 項目。陣列 (索引 0) 中的第一個項目代表佇列中時間低於 aBinInterval 的訊息數。第二個項目代表佇列中時間大於或等於 aBinInterval,但小於 2 * aBinInterval 的訊息數。依此類推。最後一個項目代表佇列中時間大於或等於 (aNumBins - 1) * aBinInterval 的訊息數量。

您可以呼叫 otThreadResetTimeInQueueStat() 重設收集的統計資料。自 OpenThread 執行個體初始化,或呼叫 otThreadResetTimeInQueueStat() 上次重設統計資料收集後,系統就會收集直方圖資訊。

指標 aNumBinsaBinInterval 不得為空值。

詳細說明
參數
[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 Thread 探索。

詳細說明
參數
[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
要尋找的 Anycast 地址。不得為空值。
[in] aCallback
回報結果的回呼函式。
[in] aContext
搭配 aCallback 使用的任意結構定義。
傳回值
OT_ERROR_NONE
已成功啟動要求。系統會叫用「aCallback」來回報結果。
OT_ERROR_INVALID_ARGS
aAnycastAddress 不是有效的 Anycast 位址,或 aCallback 為空值。
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
指向在收到網路診斷 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
)

傳送網路診斷重設要求。

需要 OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDestination
指向目的地地址的指標。
[in] aTlvTypes
網路診斷 TLV 類型的陣列。目前只能使用類型 9。
[in] aCount
aTlvType 中的類型數量
傳回值
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
)

傳送含有 Backbone 連結的主動骨幹通知 (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 網域名稱。

只有在 Thread 通訊協定都停用時才會成功。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDomainName
指向 Thread 網域名稱的指標。
傳回值
OT_ERROR_NONE
已成功設定 Thread 網域名稱。
OT_ERROR_INVALID_STATE
已啟用執行緒通訊協定。
另請參閱:
otThreadGetDomainName

otThreadSetEnabled

otError otThreadSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

啟動 Thread 通訊協定作業。

呼叫此函式時,必須啟動介面。

呼叫此函式並將 aEnabled 設為 FALSE,即可停止由 otThreadDetachGracefully() 啟動的任何進行中卸離程序。系統會呼叫回呼。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aEnabled
如果已啟用 Thread,則傳回 TRUE,否則傳回 FALSE。
傳回值
OT_ERROR_NONE
已成功啟動 Thread 通訊協定作業。
OT_ERROR_INVALID_STATE
網路介面未啟動。

otThreadSetExtendedPanId

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

設定 IEEE 802.15.4 擴充永久帳號 ID。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aExtendedPanId
指向 IEEE 802.15.4 擴充永久帳號 ID 的指標。
傳回值
OT_ERROR_NONE
已成功設定延伸永久帳號 ID。
OT_ERROR_INVALID_STATE
已啟用執行緒通訊協定。
另請參閱:
otThreadGetExtendedPanId

otThreadSetFixedDuaInterfaceIdentifier

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

設定或清除為 Thread 網域單點傳播位址手動指定的介面 ID。

啟用 OPENTHREAD_CONFIG_DUA_ENABLE 後即可使用,

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aIid
指向要設定介面 ID 的指標,或是要清除的 NULL。
傳回值
OT_ERROR_NONE
已成功設定/清除介面 ID。
OT_ERROR_INVALID_ARGS
指定的介面 ID 是保留的。
另請參閱:
otThreadGetFixedDuaInterfaceIdentifier

otThreadSetJoinerAdvertisement

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

設定探索 Thread 網路時的 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
指向包含 Thread 網路金鑰的緩衝區。
傳回值
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 Network 名稱。

只有在 Thread 通訊協定已停用的情況下才會成功。如果呼叫此函式成功,會導致不可變動記憶體中的有效和待處理作業資料集失效。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aNetworkName
指向 Thread 網路名稱的指標。
傳回值
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 的 Initializer。

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

Service Data 的大小上限 (以位元組為單位)。

資源

OpenThread API 參考資料主題源自原始碼,請前往 GitHub 取得。如要瞭解詳情或對說明文件做出貢獻,請參閱資源