作業資料集

包含 Operational Dataset API 的函式。

摘要

針對 FTD 版本,Dataset Updater 提供可管理資料集更新的函式。

就 FTD 和 MTD 版本而言,Operational Dataset API 提供的函式可用來管理有效和待處理資料集,以及資料集 TLV。

列舉

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

Typedefs

otChannelMask typedef
uint32_t
代表頻道遮罩。
otDatasetMgmtSetCallback)(otError aResult, void *aContext) typedef
void(*
收到 MGMT_SET 要求的回應或逾時時,系統就會呼叫指標。
otDatasetUpdaterCallback)(otError aError, void *aContext) typedef
void(*
資料集更新要求完成,報告資料集更新要求的成功或失敗狀態時,系統會呼叫此回呼函式指標。
otExtendedPanId typedef
代表擴充的永久帳號 ID。
otMeshLocalPrefix typedef
代表網格本機前置字串。
otMeshcopTlvType typedef
代表網格 TLV 類型。
otNetworkKey typedef
struct otNetworkKey
代表 Thread 網路金鑰。
otNetworkKeyRef typedef
這個資料類型代表 KeyRef 到 NetworkKey。
otNetworkName typedef
struct otNetworkName
代表網路名稱。
otOperationalDataset typedef
代表有效或待處理的作業資料集。
otOperationalDatasetComponents typedef
代表「有效」或「待處理作業」資料集內不同的元件。
otOperationalDatasetTlvs typedef
代表有效或待處理的作業資料集。
otPskc typedef
struct otPskc
代表 PSKc。
otPskcRef typedef
這個資料類型代表 PSKc 的 KeyRef。
otSecurityPolicy typedef
代表安全性政策。
otTimestamp typedef
struct otTimestamp
代表執行緒資料集時間戳記元件。

Variables

OT_TOOL_PACKED_END

函式

otDatasetConvertToTlvs(const otOperationalDataset *aDataset, otOperationalDatasetTlvs *aDatasetTlvs)
將指定作業資料集轉換為 otOperationalDatasetTlvs
otDatasetCreateNewNetwork(otInstance *aInstance, otOperationalDataset *aDataset)
僅適用於 FTD:建立新網路時要使用的新作業資料集。
otDatasetGeneratePskc(const char *aPassPhrase, const otNetworkName *aNetworkName, const otExtendedPanId *aExtPanId, otPskc *aPskc)
從特定的通關密語、網路名稱和延伸永久帳號 ID 產生 PSKc。
otDatasetGetActive(otInstance *aInstance, otOperationalDataset *aDataset)
取得執行中的作業資料集。
otDatasetGetActiveTlvs(otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
取得執行中的作業資料集。
otDatasetGetDelayTimerMinimal(otInstance *aInstance)
uint32_t
針對 FTD,時間最短的延遲計時器。
otDatasetGetPending(otInstance *aInstance, otOperationalDataset *aDataset)
取得待處理的作業資料集。
otDatasetGetPendingTlvs(otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
取得待處理的作業資料集。
otDatasetIsCommissioned(otInstance *aInstance)
bool
指出有效作業資料集中是否存在有效的網路。
otDatasetParseTlvs(const otOperationalDatasetTlvs *aDatasetTlvs, otOperationalDataset *aDataset)
剖析指定 otOperationalDatasetTlvs 中的作業資料集。
otDatasetSendMgmtActiveGet(otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
傳送 MGMT_ACTIVE_GET。
otDatasetSendMgmtActiveSet(otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext)
傳送 MGMT_ACTIVE_SET。
otDatasetSendMgmtPendingGet(otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
傳送 MGMT_PENDING_GET。
otDatasetSendMgmtPendingSet(otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext)
傳送 MGMT_PENDING_SET。
otDatasetSetActive(otInstance *aInstance, const otOperationalDataset *aDataset)
設定「Active Operational」資料集。
otDatasetSetActiveTlvs(otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
設定「Active Operational」資料集。
otDatasetSetDelayTimerMinimal(otInstance *aInstance, uint32_t aDelayTimerMinimal)
針對 FTD,請設定最短延遲計時器。
otDatasetSetPending(otInstance *aInstance, const otOperationalDataset *aDataset)
設定待處理的作業資料集。
otDatasetSetPendingTlvs(otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
設定待處理的作業資料集。
otDatasetUpdateTlvs(const otOperationalDataset *aDataset, otOperationalDatasetTlvs *aDatasetTlvs)
更新指定作業資料集。
otDatasetUpdaterCancelUpdate(otInstance *aInstance)
void
取消進行中的作業資料集更新要求 (如有)。
otDatasetUpdaterIsUpdateOngoing(otInstance *aInstance)
bool
表示是否有進行中的作業資料集更新要求。
otDatasetUpdaterRequestUpdate(otInstance *aInstance, const otOperationalDataset *aDataset, otDatasetUpdaterCallback aCallback, void *aContext)
要求更新作業資料集。
otNetworkNameFromString(otNetworkName *aNetworkName, const char *aNameString)
從已終止的指定空值 C 字串設定 otNetworkName 例項。

結構

otExtendedPanId

代表擴充的永久帳號 ID。

otNetworkKey

代表 Thread 網路金鑰。

otNetworkName

代表網路名稱。

otOperationalDataset

代表有效或待處理的作業資料集。

otOperationalDatasetComponents

代表「有效」或「待處理作業」資料集內不同的元件。

otOperationalDatasetTlvs

代表有效或待處理的作業資料集。

otPskc

代表 PSKc。

otSecurityPolicy

代表安全性政策。

otTimestamp

代表執行緒資料集時間戳記元件。

列舉

otMeshcopTlvType

 otMeshcopTlvType

代表網格 TLV 類型。

屬性
OT_MESHCOP_TLV_ACTIVETIMESTAMP

Meshcop 活動時間戳記 TLV

OT_MESHCOP_TLV_BORDER_AGENT_RLOC

Meshcop 邊界代理程式 TLV

OT_MESHCOP_TLV_CHANNEL

網紅海峽 TLV

OT_MESHCOP_TLV_CHANNELMASK

Meshcop 通道遮罩 TLV

OT_MESHCOP_TLV_COMMISSIONER_ID

Meshcop 委員 ID TLV

OT_MESHCOP_TLV_COMMISSIONER_UDP_PORT

Meshcop Commissioner UDP 通訊埠 TLV

OT_MESHCOP_TLV_COMM_SESSION_ID

Meshcop Commissioner 工作階段 ID TLV

OT_MESHCOP_TLV_COUNT

網紅數量 TLV

OT_MESHCOP_TLV_DELAYTIMER

Meshcop 延遲計時器 TLV

OT_MESHCOP_TLV_DISCOVERYREQUEST

Meshcop 探索要求 TLV

OT_MESHCOP_TLV_DISCOVERYRESPONSE

Meshcop 探索回應 TLV

OT_MESHCOP_TLV_ENERGY_LIST

Meshcop 能源清單 TLV

OT_MESHCOP_TLV_EXTPANID

Meshcop 擴充窗格 ID TLV

OT_MESHCOP_TLV_GET

Meshcop 取得 TLV

OT_MESHCOP_TLV_IPV6_ADDRESS_TLV

網狀 IPv6 位址 TLV

OT_MESHCOP_TLV_JOINERADVERTISEMENT

Meshcop 聯合通告 (TLV)

OT_MESHCOP_TLV_JOINER_DTLS

Meshcop 彙整 DTLS 封裝 TLV

OT_MESHCOP_TLV_JOINER_IID

Meshcop 彙整器 IID 重點摘要

OT_MESHCOP_TLV_JOINER_RLOC

網狀網路合併路由器定位器 TLV

OT_MESHCOP_TLV_JOINER_ROUTER_KEK

網狀網路彙整器路由器 KEK TLV

OT_MESHCOP_TLV_JOINER_UDP_PORT

Meshcop 彙整器 UDP 通訊埠 TLV

OT_MESHCOP_TLV_MESHLOCALPREFIX

網狀網狀網格本機前置字串 TLV

OT_MESHCOP_TLV_NETWORKKEY

Meshcop 網路金鑰 TLV

OT_MESHCOP_TLV_NETWORKNAME

網狀網路名稱 TLV

OT_MESHCOP_TLV_NETWORK_KEY_SEQUENCE

網狀網路金鑰序列 TLV

OT_MESHCOP_TLV_PANID

Meshcop 窗格 ID TLV

OT_MESHCOP_TLV_PENDINGTIMESTAMP

Meshcop 待處理時間戳記 TLV

OT_MESHCOP_TLV_PERIOD

網狀校正週期 TLV

OT_MESHCOP_TLV_PROVISIONING_URL

Meshcop 佈建網址 TLV

OT_MESHCOP_TLV_PSKC

Meshcop PSKc TLV

OT_MESHCOP_TLV_SCAN_DURATION

Meshcop 掃描時間長度 TLV

OT_MESHCOP_TLV_SECURITYPOLICY

網格安全性政策重點摘要

OT_MESHCOP_TLV_STATE

網狀支援狀態 TLV

OT_MESHCOP_TLV_STEERING_DATA

Meshcop 轉向資料 TLV

OT_MESHCOP_TLV_UDP_ENCAPSULATION_TLV

網狀 UDP 封裝 TLV

OT_MESHCOP_TLV_VENDOR_DATA_TLV

Meshcop 供應商資料重點摘要

OT_MESHCOP_TLV_VENDOR_MODEL_TLV

Meshcop 供應商型號 TLV

OT_MESHCOP_TLV_VENDOR_NAME_TLV

網格供應商名稱 TLV

OT_MESHCOP_TLV_VENDOR_STACK_VERSION_TLV

Meshcop 供應商堆疊版本 TLV

OT_MESHCOP_TLV_VENDOR_SW_VERSION_TLV

Meshcop 供應商 SW 版本 TLV

Typedefs

otChannelMask

uint32_t otChannelMask

代表頻道遮罩。

otDatasetMgmtSetCallback

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

收到 MGMT_SET 要求的回應或逾時時,系統就會呼叫指標。

詳細說明
參數
[in] aResult
作業的結果。
[in] aContext
指向應用程式特定背景資訊的指標。
傳回值
OT_ERROR_NONE
領導者已接受要求。
OT_ERROR_REJECTED
領導者已拒絕要求。
OT_ERROR_PARSE
剖析回應時發生錯誤。
OT_ERROR_ABORT
要求已由對等互連重設。
OT_ERROR_RESPONSE_TIMEOUT
逾時期間未收到回應或確認。

otDatasetUpdaterCallback

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

資料集更新要求完成,報告資料集更新要求的成功或失敗狀態時,系統會呼叫此回呼函式指標。

啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 後即可使用,

詳細說明
參數
[in] aError
錯誤狀態。OT_ERROR_NONE 表示資料集更新成功。OT_ERROR_INVALID_STATE 表示因無效狀態 (MLE 已停用) 而失敗。OT_ERROR_ALREADY 表示網路中的其他裝置要求更新資料集,導致作業失敗。
[in] aContext
指向任意結構定義的指標 (由使用者在 otDatasetUpdaterRequestUpdate() 中提供)。

otExtendedPanId

struct otExtendedPanId otExtendedPanId

代表擴充的永久帳號 ID。

otMeshLocalPrefix

otIp6NetworkPrefix otMeshLocalPrefix

代表網格本機前置字串。

otMeshcopTlvType

enum otMeshcopTlvType otMeshcopTlvType

代表網格 TLV 類型。

otNetworkKey

struct otNetworkKey otNetworkKey

代表 Thread 網路金鑰。

otNetworkKeyRef

otCryptoKeyRef otNetworkKeyRef

這個資料類型代表 KeyRef 到 NetworkKey。

金鑰參照

otNetworkName

struct otNetworkName otNetworkName

代表網路名稱。

otNetworkName 是已終止為空值的 C 字串 (即m8 字元陣列「必須」的結尾為空值字元 \0)。

otOperationalDataset

struct otOperationalDataset otOperationalDataset

代表有效或待處理的作業資料集。

資料集中的元件為選用項目。mComponents 結構會指定資料集內含的元件。

otOperationalDatasetComponents

struct otOperationalDatasetComponents otOperationalDatasetComponents

代表「有效」或「待處理作業」資料集內不同的元件。

otOperationalDatasetTlvs

struct otOperationalDatasetTlvs otOperationalDatasetTlvs

代表有效或待處理的作業資料集。

作業資料集是以執行緒指定的 TLV 編碼。

otPskc

struct otPskc otPskc

代表 PSKc。

otPskcRef

otCryptoKeyRef otPskcRef

這個資料類型代表 PSKc 的 KeyRef。

金鑰參照

otSecurityPolicy

struct otSecurityPolicy otSecurityPolicy

代表安全性政策。

otTimestamp

struct otTimestamp otTimestamp

代表執行緒資料集時間戳記元件。

Variables

OT_TOOL_PACKED_END

OT_TOOL_PACKED_BEGIN struct otNetworkKey OT_TOOL_PACKED_END

函式

otDatasetConvertToTlvs

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

將指定作業資料集轉換為 otOperationalDatasetTlvs

詳細說明
參數
[in] aDataset
要轉換為 TLV 的作業資料集。
[out] aDatasetTlvs
指向資料集 TLV 的指標,藉此傳回結果。
傳回值
OT_ERROR_NONE
已成功轉換 aDataset 並更新 aDatasetTlvs
OT_ERROR_INVALID_ARGS
aDataset 無效,不含有效或待核准的時間戳記。

otDatasetCreateNewNetwork

otError otDatasetCreateNewNetwork(
  otInstance *aInstance,
  otOperationalDataset *aDataset
)

僅適用於 FTD:建立新網路時要使用的新作業資料集。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aDataset
作業資料集。
傳回值
OT_ERROR_NONE
已成功建立新的作業資料集。
OT_ERROR_FAILED
無法產生新參數的隨機值。

otDatasetGeneratePskc

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

從特定的通關密語、網路名稱和延伸永久帳號 ID 產生 PSKc。

PSKc 用於建立調試委員會工作階段。

詳細說明
參數
[in] aPassPhrase
委託動態撰寫。
[in] aNetworkName
PSKc 計算的網路名稱。
[in] aExtPanId
用於 PSKc 計算的擴充 PAN ID。
[out] aPskc
這個變數指標,用於輸出產生的 PSKc。
傳回值
OT_ERROR_NONE
已成功產生 PSKc。
OT_ERROR_INVALID_ARGS
如果任何輸入引數無效。

otDatasetGetActive

otError otDatasetGetActive(
  otInstance *aInstance,
  otOperationalDataset *aDataset
)

取得執行中的作業資料集。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aDataset
指向有效作業資料集的指標。
傳回值
OT_ERROR_NONE
已成功擷取有效作業資料集。
OT_ERROR_NOT_FOUND
設定存放區中沒有對應的值。

otDatasetGetActiveTlvs

otError otDatasetGetActiveTlvs(
  otInstance *aInstance,
  otOperationalDatasetTlvs *aDataset
)

取得執行中的作業資料集。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aDataset
指向有效作業資料集的指標。
傳回值
OT_ERROR_NONE
已成功擷取有效作業資料集。
OT_ERROR_NOT_FOUND
設定存放區中沒有對應的值。

otDatasetGetDelayTimerMinimal

uint32_t otDatasetGetDelayTimerMinimal(
  otInstance *aInstance
)

針對 FTD,時間最短的延遲計時器。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回值
the
最低延遲計時器的值 (以毫秒為單位)。

otDatasetGetPending

otError otDatasetGetPending(
  otInstance *aInstance,
  otOperationalDataset *aDataset
)

取得待處理的作業資料集。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aDataset
指向待處理作業資料集的指標。
傳回值
OT_ERROR_NONE
已成功擷取待處理的作業資料集。
OT_ERROR_NOT_FOUND
設定存放區中沒有對應的值。

otDatasetGetPendingTlvs

otError otDatasetGetPendingTlvs(
  otInstance *aInstance,
  otOperationalDatasetTlvs *aDataset
)

取得待處理的作業資料集。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[out] aDataset
指向待處理作業資料集的指標。
傳回值
OT_ERROR_NONE
已成功擷取待處理的作業資料集。
OT_ERROR_NOT_FOUND
設定存放區中沒有對應的值。

otDatasetIsCommissioned

bool otDatasetIsCommissioned(
  otInstance *aInstance
)

指出有效作業資料集中是否存在有效的網路。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回
如果有效作業資料集中有有效的網路,則為 TRUE,否則傳回 FALSE。

otDatasetParseTlvs

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

剖析指定 otOperationalDatasetTlvs 中的作業資料集。

詳細說明
參數
[in] aDatasetTlvs
資料集 TLV 的指標。
[out] aDataset
要放置資料集的指標。
傳回值
OT_ERROR_NONE
已成功從「aDatasetTlvs」設定「aDataset」。
OT_ERROR_INVALID_ARGS
aDatasetTlvs 無效。

otDatasetSendMgmtActiveGet

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

傳送 MGMT_ACTIVE_GET。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDatasetComponents
指向資料集元件結構的指標,用於指定要請求的元件。
[in] aTlvTypes
陣列的指標,包含要要求的其他原始 TLV 類型。
[in] aLength
aTlvTypes 的長度。
[in] aAddress
IPv6 目的地的指標為空值,系統便會使用主要 ALOC。
傳回值
OT_ERROR_NONE
已成功傳送 Meshcop 資料集指令。
OT_ERROR_NO_BUFS
緩衝空間不足,無法傳送。

otDatasetSendMgmtActiveSet

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

傳送 MGMT_ACTIVE_SET。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDataset
作業資料集的指標。
[in] aTlvs
指向 TLV 的指標。
[in] aLength
TLV 的長度。
[in] aCallback
指向回應接收或逾時所呼叫的函式指標。
[in] aContext
aCallback 的應用程式專屬結構定義指標。
傳回值
OT_ERROR_NONE
已成功傳送 Meshcop 資料集指令。
OT_ERROR_NO_BUFS
緩衝空間不足,無法傳送。
OT_ERROR_BUSY
先前的要求正在處理中。

otDatasetSendMgmtPendingGet

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

傳送 MGMT_PENDING_GET。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDatasetComponents
指向資料集元件結構的指標,用於指定要請求的元件。
[in] aTlvTypes
陣列的指標,包含要要求的其他原始 TLV 類型。
[in] aLength
aTlvTypes 的長度。
[in] aAddress
IPv6 目的地的指標為空值,系統便會使用主要 ALOC。
傳回值
OT_ERROR_NONE
已成功傳送 Meshcop 資料集指令。
OT_ERROR_NO_BUFS
緩衝空間不足,無法傳送。

otDatasetSendMgmtPendingSet

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

傳送 MGMT_PENDING_SET。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDataset
作業資料集的指標。
[in] aTlvs
指向 TLV 的指標。
[in] aLength
TLV 的長度。
[in] aCallback
指向回應接收或逾時所呼叫的函式指標。
[in] aContext
aCallback 的應用程式專屬結構定義指標。
傳回值
OT_ERROR_NONE
已成功傳送 Meshcop 資料集指令。
OT_ERROR_NO_BUFS
緩衝空間不足,無法傳送。
OT_ERROR_BUSY
先前的要求正在處理中。

otDatasetSetActive

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

設定「Active Operational」資料集。

如果資料集不包含有效時間戳記,則只會完成部分資料集。

如果裝置已啟用 Thread 且只有部分完整的有效資料集,就會嘗試使用資料集中的任何現有資訊,將 Thread 網路附加至現有 Thread 網路。只需要 Thread 網路金鑰即可連接至網路。

如果資料集內不包含聲道,裝置會傳送多管道的 MLE 公告訊息,以尋找其他管道的鄰點。

如果裝置成功連接至 Thread 網路,裝置就會從父項擷取完整的有效資料集。請注意,支援路由器的裝置必須等到具備完整的有效資料集後,才能轉換至路由器或主要角色。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDataset
指向「Active Operational」資料集的指標。
傳回值
OT_ERROR_NONE
已成功設定執行中的作業資料集。
OT_ERROR_NO_BUFS
緩衝區空間不足,無法設定執行中的作業資料集。
OT_ERROR_NOT_IMPLEMENTED
平台不實作設定功能。

otDatasetSetActiveTlvs

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

設定「Active Operational」資料集。

如果資料集不包含有效時間戳記,則只會完成部分資料集。

如果裝置已啟用 Thread 且只有部分完整的有效資料集,就會嘗試使用資料集中的任何現有資訊,將 Thread 網路附加至現有 Thread 網路。只需要 Thread 網路金鑰即可連接至網路。

如果資料集內不包含聲道,裝置會傳送多管道的 MLE 公告訊息,以尋找其他管道的鄰點。

如果裝置成功連接至 Thread 網路,裝置就會從父項擷取完整的有效資料集。請注意,支援路由器的裝置必須等到具備完整的有效資料集後,才能轉換至路由器或主要角色。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDataset
指向「Active Operational」資料集的指標。
傳回值
OT_ERROR_NONE
已成功設定執行中的作業資料集。
OT_ERROR_NO_BUFS
緩衝區空間不足,無法設定執行中的作業資料集。
OT_ERROR_NOT_IMPLEMENTED
平台不實作設定功能。

otDatasetSetDelayTimerMinimal

otError otDatasetSetDelayTimerMinimal(
  otInstance *aInstance,
  uint32_t aDelayTimerMinimal
)

針對 FTD,請設定最短延遲計時器。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDelayTimerMinimal
最短延遲計時器的值 (以毫秒為單位)。
傳回值
OT_ERROR_NONE
已成功設定最短延遲計時器。
OT_ERROR_INVALID_ARGS
如果 aDelayTimerMinimal 無效。

otDatasetSetPending

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

設定待處理的作業資料集。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDataset
指向待處理作業資料集的指標。
傳回值
OT_ERROR_NONE
已成功設定待處理的作業資料集。
OT_ERROR_NO_BUFS
緩衝區空間不足,無法設定待處理的作業資料集。
OT_ERROR_NOT_IMPLEMENTED
平台不實作設定功能。

otDatasetSetPendingTlvs

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

設定待處理的作業資料集。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDataset
指向待處理作業資料集的指標。
傳回值
OT_ERROR_NONE
已成功設定待處理的作業資料集。
OT_ERROR_NO_BUFS
緩衝區空間不足,無法設定待處理的作業資料集。
OT_ERROR_NOT_IMPLEMENTED
平台不實作設定功能。

otDatasetUpdateTlvs

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

更新指定作業資料集。

aDataset 包含要更新的欄位及其新值。

詳細說明
參數
[in] aDataset
指定要更新的類型和值組合。
[in,out] aDatasetTlvs
要更新的資料集 TLV 的指標。
傳回值
OT_ERROR_NONE
已成功更新「aDatasetTlvs」。
OT_ERROR_INVALID_ARGS
aDataset」包含無效的值。
OT_ERROR_NO_BUFS
aDatasetTlvs 的空間不足,無法套用更新。

otDatasetUpdaterCancelUpdate

void otDatasetUpdaterCancelUpdate(
  otInstance *aInstance
)

取消進行中的作業資料集更新要求 (如有)。

啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 後即可使用,

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。

otDatasetUpdaterIsUpdateOngoing

bool otDatasetUpdaterIsUpdateOngoing(
  otInstance *aInstance
)

表示是否有進行中的作業資料集更新要求。

啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 後即可使用,

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
傳回值
TRUE
有一項更新中,
FALSE
沒有進行中的更新。

otDatasetUpdaterRequestUpdate

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

要求更新作業資料集。

啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE 後即可使用,

aDataset 應包含要更新的欄位及其新值。不得包含有效或待處理的時間戳記欄位。「Delay」欄位為選填欄位,如未提供預設值 (1000 毫秒),就會使用。

詳細說明
參數
[in] aInstance
指向 OpenThread 執行個體的指標。
[in] aDataset
指向包含要變更欄位的資料集指標。
[in] aCallback
指出資料集更新要求完成時間的回呼。
[in] aContext
傳遞至回呼的任意結構定義。
傳回值
OT_ERROR_NONE
已成功啟動資料集更新作業 (作業完成時會叫用 aCallback)。
OT_ERROR_INVALID_STATE
裝置已停用 (MLE 已停用)。
OT_ERROR_INVALID_ARGS
aDataset 無效 (包含有效或待處理時間戳記)。
OT_ERROR_BUSY
系統正在執行先前的活動,因此無法開始更新。
OT_ERROR_NO_BUFS
無法分配緩衝區來儲存資料集。

otNetworkNameFromString

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

從已終止的指定空值 C 字串設定 otNetworkName 例項。

aNameString 必須遵循 UTF-8 編碼,且網路名稱長度不得超過 OT_NETWORK_NAME_MAX_SIZE

詳細說明
參數
[out] aNetworkName
指向要設定的 otNetworkName 指標。
[in] aNameString
名稱 C 字串。
傳回值
OT_ERROR_NONE
已成功從「aNameString」設定「aNetworkName」。
OT_ERROR_INVALID_ARGS
aNameStrng 無效 (過長或不符合 UTF-8 編碼)。

巨集

OT_CHANNEL_10_MASK

 OT_CHANNEL_10_MASK (1 << 10)

頻道 10.

OT_CHANNEL_11_MASK

 OT_CHANNEL_11_MASK (1 << 11)

頻道 11。

OT_CHANNEL_12_MASK

 OT_CHANNEL_12_MASK (1 << 12)

管道 12。

OT_CHANNEL_13_MASK

 OT_CHANNEL_13_MASK (1 << 13)

管道 13。

OT_CHANNEL_14_MASK

 OT_CHANNEL_14_MASK (1 << 14)

頻道 14。

OT_CHANNEL_15_MASK

 OT_CHANNEL_15_MASK (1 << 15)

頻道 15。

OT_CHANNEL_16_MASK

 OT_CHANNEL_16_MASK (1 << 16)

頻道 16。

OT_CHANNEL_17_MASK

 OT_CHANNEL_17_MASK (1 << 17)

頻道 17。

OT_CHANNEL_18_MASK

 OT_CHANNEL_18_MASK (1 << 18)

頻道 18。

OT_CHANNEL_19_MASK

 OT_CHANNEL_19_MASK (1 << 19)

頻道 19。

OT_CHANNEL_1_MASK

 OT_CHANNEL_1_MASK (1 << 1)

管道 1.

OT_CHANNEL_20_MASK

 OT_CHANNEL_20_MASK (1 << 20)

管道 20。

OT_CHANNEL_21_MASK

 OT_CHANNEL_21_MASK (1 << 21)

管道 21。

OT_CHANNEL_22_MASK

 OT_CHANNEL_22_MASK (1 << 22)

管道 22。

OT_CHANNEL_23_MASK

 OT_CHANNEL_23_MASK (1 << 23)

管道 23。

OT_CHANNEL_24_MASK

 OT_CHANNEL_24_MASK (1 << 24)

管道 24。

OT_CHANNEL_25_MASK

 OT_CHANNEL_25_MASK (1 << 25)

管道 25。

OT_CHANNEL_26_MASK

 OT_CHANNEL_26_MASK (1 << 26)

管道 26。

OT_CHANNEL_2_MASK

 OT_CHANNEL_2_MASK (1 << 2)

管道 2.

OT_CHANNEL_3_MASK

 OT_CHANNEL_3_MASK (1 << 3)

管道 3.

OT_CHANNEL_4_MASK

 OT_CHANNEL_4_MASK (1 << 4)

管道 4.

OT_CHANNEL_5_MASK

 OT_CHANNEL_5_MASK (1 << 5)

管道 5.

OT_CHANNEL_6_MASK

 OT_CHANNEL_6_MASK (1 << 6)

管道 6.

OT_CHANNEL_7_MASK

 OT_CHANNEL_7_MASK (1 << 7)

管道 7.

OT_CHANNEL_8_MASK

 OT_CHANNEL_8_MASK (1 << 8)

頻道 8。

OT_CHANNEL_9_MASK

 OT_CHANNEL_9_MASK (1 << 9)

頻道 9.

OT_EXT_PAN_ID_SIZE

 OT_EXT_PAN_ID_SIZE 8

執行緒 PAN ID 的大小 (位元組)

OT_MESH_LOCAL_PREFIX_SIZE

 OT_MESH_LOCAL_PREFIX_SIZE OT_IP6_PREFIX_SIZE

網格本機前置字串的大小 (位元組)

OT_NETWORK_KEY_SIZE

 OT_NETWORK_KEY_SIZE 16

Thread 網路金鑰的大小 (位元組)

OT_NETWORK_NAME_MAX_SIZE

 OT_NETWORK_NAME_MAX_SIZE 16

「Thread Network Name」欄位的大小上限 (位元組)

OT_OPERATIONAL_DATASET_MAX_LENGTH

 OT_OPERATIONAL_DATASET_MAX_LENGTH 254

作業資料集的長度上限 (以位元組為單位)。

OT_PSKC_MAX_SIZE

 OT_PSKC_MAX_SIZE 16

PSKc (位元組) 大小上限

資源

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