作業資料集
提供 Operational Dataset API 的函式。
摘要
針對 FTD 版本,資料集更新工具內含用於管理資料集更新的函式。
針對 FTD 和 MTD 版本,Operational Dataset API 提供的函式可用於管理使用中和待處理的資料集,以及資料集 TLV。
Typedefs |
|
---|---|
otChannelMask
|
typedefuint32_t
這種類型代表頻道遮罩。 |
otDatasetMgmtSetCallback)(otError aResult, void *aContext)
|
typedefvoid(*
當接收到 MGMT_SET 要求的回應或逾時時,系統會呼叫此函式指標。 |
otDatasetUpdaterCallback)(otError aError, void *aContext)
|
typedefvoid(*
資料集更新要求完成時,系統會呼叫這個回呼函式指標,並回報資料集更新要求成功或失敗狀態。 |
otExtendedPanId
|
typedefstruct otExtendedPanId
這個結構代表一個擴充 PAN ID。 |
otMeshLocalPrefix
|
typedef 這個結構代表網格本機前置字串。 |
otMeshcopTlvType
|
typedefenum otMeshcopTlvType
這項列舉代表網格 TLV 類型。 |
otNetworkKey
|
typedefstruct otNetworkKey
這個結構代表一個執行緒網路金鑰。 |
otNetworkKeyRef
|
typedef 這個資料類型代表 KeyRef 到 NetworkKey。 |
otNetworkName
|
typedefstruct otNetworkName
這個結構代表網路名稱。 |
otOperationalDataset
|
typedefstruct otOperationalDataset
這個結構代表有效或待處理的作業資料集。 |
otOperationalDatasetComponents
|
typedef 這個結構代表「進行中」或「待處理作業資料集」中不同的元件。 |
otOperationalDatasetTlvs
|
typedefstruct otOperationalDatasetTlvs
這個結構代表有效或待處理的作業資料集。 |
otPskc
|
typedefstruct otPskc
此結構代表 PSKc。 |
otPskcRef
|
typedef 這個資料類型代表 KeyRef 到 PSKc。 |
otSecurityPolicy
|
typedefstruct otSecurityPolicy
這個結構代表安全性政策。 |
otTimestamp
|
typedefstruct otTimestamp
這個結構代表一個執行緒資料集時間戳記元件。 |
變數 |
|
---|---|
OT_TOOL_PACKED_END
|
OT_TOOL_PACKED_BEGIN struct otNetworkKey
|
Functions |
|
---|---|
otDatasetCreateNewNetwork(otInstance *aInstance, otOperationalDataset *aDataset)
|
如果只有 FTD,請建立新的作業資料集,以用來建立新網路。
|
otDatasetGeneratePskc(const char *aPassPhrase, const otNetworkName *aNetworkName, const otExtendedPanId *aExtPanId, otPskc *aPskc)
|
這項函式會根據特定傳遞詞組、網路名稱和擴充 PAN ID 產生 PSKc。
|
otDatasetGetActive(otInstance *aInstance, otOperationalDataset *aDataset)
|
取得使用中的作業資料集。
|
otDatasetGetActiveTlvs(otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
|
此函式會取得有效作業資料集。
|
otDatasetGetDelayTimerMinimal(otInstance *aInstance)
|
uint32_t
如果是 FTD,請縮短延遲時間,
|
otDatasetGetPending(otInstance *aInstance, otOperationalDataset *aDataset)
|
這個函式會取得待處理作業資料集。
|
otDatasetGetPendingTlvs(otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
|
這個函式會取得待處理作業資料集。
|
otDatasetIsCommissioned(otInstance *aInstance)
|
bool
這個函式會指出「有效作業資料集」中是否存在有效的網路。
|
otDatasetParseTlvs(const otOperationalDatasetTlvs *aDatasetTlvs, otOperationalDataset *aDataset)
|
這個函式會從
otOperationalDatasetTlvs 剖析作業資料集。 |
otDatasetSendMgmtActiveGet(otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
|
傳送 MGMT_ACTIVE_GET 方法。
|
otDatasetSendMgmtActiveSet(otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext)
|
傳送 MGMT_ACTIVE_SET。
|
otDatasetSendMgmtPendingGet(otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
|
傳送 MGMT_PENDING_GET 方法。
|
otDatasetSendMgmtPendingSet(otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext)
|
傳送 MGMT_PENDING_SET。
|
otDatasetSetActive(otInstance *aInstance, const otOperationalDataset *aDataset)
|
設定有效作業資料集。
|
otDatasetSetActiveTlvs(otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
|
這個函式會設定運作中的資料集。
|
otDatasetSetDelayTimerMinimal(otInstance *aInstance, uint32_t aDelayTimerMinimal)
|
如果是 FTD,請設定最短延遲時間。
|
otDatasetSetPending(otInstance *aInstance, const otOperationalDataset *aDataset)
|
設定待處理作業資料集。
|
otDatasetSetPendingTlvs(otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
|
這個函式會設定待處理作業資料集。
|
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 |
這個結構代表一個擴充 PAN ID。 |
otNetworkKey |
這個結構代表一個執行緒網路金鑰。 |
otNetworkName |
這個結構代表網路名稱。 |
otOperationalDataset |
這個結構代表有效或待處理的作業資料集。 |
otOperationalDatasetComponents |
這個結構代表「進行中」或「待處理作業資料集」中不同的元件。 |
otOperationalDatasetTlvs |
這個結構代表有效或待處理的作業資料集。 |
otPskc |
此結構代表 PSKc。 |
otSecurityPolicy |
這個結構代表安全性政策。 |
otTimestamp |
這個結構代表一個執行緒資料集時間戳記元件。 |
列舉
otMeshcopTlvType
otMeshcopTlvType
這項列舉代表網格 TLV 類型。
Typedefs
otChannel 遮罩
uint32_t otChannelMask
這種類型代表頻道遮罩。
otDatasetMgmtSetCallback
void(* otDatasetMgmtSetCallback)(otError aResult, void *aContext)
當接收到 MGMT_SET 要求的回應或逾時時,系統會呼叫此函式指標。
詳情 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
otDatasetUpdaterCallback
void(* otDatasetUpdaterCallback)(otError aError, void *aContext)
資料集更新要求完成時,系統會呼叫這個回呼函式指標,並回報資料集更新要求成功或失敗狀態。
必須啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE
才能使用此功能。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
OTNetwork
struct otNetworkName otNetworkName
這個結構代表網路名稱。
otNetworkName
是空值的終止 C 字串 (即m8
字元陣列「必須」以空值字元 \0
結尾)。
otOperationalDataset
struct otOperationalDataset otOperationalDataset
這個結構代表有效或待處理的作業資料集。
資料集中的元件為選用項目。mComponets
結構會指定資料集中有哪些元件。
otOperationalDatasetComponents
struct otOperationalDatasetComponents otOperationalDatasetComponents
這個結構代表「進行中」或「待處理作業資料集」中不同的元件。
otOperationalDatasetTlv
struct otOperationalDatasetTlvs otOperationalDatasetTlvs
這個結構代表有效或待處理的作業資料集。
作業資料集是 Thread 指定的 TLV 編碼。
變數
OT_TOOL_PACKED_END
OT_TOOL_PACKED_BEGIN struct otNetworkKey OT_TOOL_PACKED_END
Functions
otDatasetCreateNewNetwork
otError otDatasetCreateNewNetwork( otInstance *aInstance, otOperationalDataset *aDataset )
如果只有 FTD,請建立新的作業資料集,以用來建立新網路。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetGeneratePskc
otError otDatasetGeneratePskc( const char *aPassPhrase, const otNetworkName *aNetworkName, const otExtendedPanId *aExtPanId, otPskc *aPskc )
這項函式會根據特定傳遞詞組、網路名稱和擴充 PAN ID 產生 PSKc。
PSKc 用於建立委員會工作階段。
詳情 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||
傳回值 |
|
otDatasetGetActive
otError otDatasetGetActive( otInstance *aInstance, otOperationalDataset *aDataset )
取得使用中的作業資料集。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetGetActiveTlvs
otError otDatasetGetActiveTlvs( otInstance *aInstance, otOperationalDatasetTlvs *aDataset )
此函式會取得有效作業資料集。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetGetDelayTimerMinimal
uint32_t otDatasetGetDelayTimerMinimal( otInstance *aInstance )
如果是 FTD,請縮短延遲時間,
詳情 | |||
---|---|---|---|
參數 |
|
||
傳回值 |
|
otDatasetGetPending
otError otDatasetGetPending( otInstance *aInstance, otOperationalDataset *aDataset )
這個函式會取得待處理作業資料集。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetGetPendingTlvs
otError otDatasetGetPendingTlvs( otInstance *aInstance, otOperationalDatasetTlvs *aDataset )
這個函式會取得待處理作業資料集。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetIsCommission
bool otDatasetIsCommissioned( otInstance *aInstance )
這個函式會指出「有效作業資料集」中是否存在有效的網路。
詳情 | |||
---|---|---|---|
參數 |
|
||
傳回 |
如果有效作業資料集中有有效的網路,則傳回 TRUE,否則為 FALSE。
|
otDatasetParseTlv
otError otDatasetParseTlvs( const otOperationalDatasetTlvs *aDatasetTlvs, otOperationalDataset *aDataset )
這個函式會從 otOperationalDatasetTlvs
剖析作業資料集。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetSendMgmtActiveGet
otError otDatasetSendMgmtActiveGet( otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress )
傳送 MGMT_ACTIVE_GET 方法。
詳情 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
otDatasetSendMgmtActiveSet
otError otDatasetSendMgmtActiveSet( otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext )
傳送 MGMT_ACTIVE_SET。
詳情 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回值 |
|
otDatasetSendMgmtPendingGet
otError otDatasetSendMgmtPendingGet( otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress )
傳送 MGMT_PENDING_GET 方法。
詳情 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
otDatasetSendMgmtPendingSet
otError otDatasetSendMgmtPendingSet( otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength, otDatasetMgmtSetCallback aCallback, void *aContext )
傳送 MGMT_PENDING_SET。
詳情 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||||
傳回值 |
|
otDatasetSetActive
otError otDatasetSetActive( otInstance *aInstance, const otOperationalDataset *aDataset )
設定有效作業資料集。
如果資料集不含有效時間戳記,則資料集部分不完整。
如果裝置的部分資源完整地處於啟用狀態,且已啟用 Thread 功能,則裝置會嘗試使用資料集中的任何現有資訊附加到現有的 Thread 網路。只需要使用 Thread 網路金鑰即可連線至網路。
如果管道不包含資料集,裝置會透過不同管道傳送 MLE 公告訊息,藉此找出其他頻道上的鄰居。
如果裝置已成功連接至 Thread 網路,裝置就會從其父項中擷取完整的有效資料集。請注意,如果裝置支援路由器,除非裝置具備完整的有效資料集,否則不會轉換為路由器或主管角色。
詳情 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
otDatasetSetActiveTlv
otError otDatasetSetActiveTlvs( otInstance *aInstance, const otOperationalDatasetTlvs *aDataset )
這個函式會設定運作中的資料集。
如果資料集不含有效時間戳記,則資料集部分不完整。
如果裝置的部分資源完整地處於啟用狀態,且已啟用 Thread 功能,則裝置會嘗試使用資料集中的任何現有資訊附加到現有的 Thread 網路。只需要使用 Thread 網路金鑰即可連線至網路。
如果管道不包含資料集,裝置會透過不同管道傳送 MLE 公告訊息,藉此找出其他頻道上的鄰居。
如果裝置已成功連接至 Thread 網路,裝置就會從其父項中擷取完整的有效資料集。請注意,如果裝置支援路由器,除非裝置具備完整的有效資料集,否則不會轉換為路由器或主管角色。
詳情 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
otDatasetSetDelayTimerMinimal
otError otDatasetSetDelayTimerMinimal( otInstance *aInstance, uint32_t aDelayTimerMinimal )
如果是 FTD,請設定最短延遲時間。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetSetPending
otError otDatasetSetPending( otInstance *aInstance, const otOperationalDataset *aDataset )
設定待處理作業資料集。
詳情 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
otDatasetSetPendingTlv
otError otDatasetSetPendingTlvs( otInstance *aInstance, const otOperationalDatasetTlvs *aDataset )
這個函式會設定待處理作業資料集。
詳情 | |||||||
---|---|---|---|---|---|---|---|
參數 |
|
||||||
傳回值 |
|
otDatasetUpdaterCancelUpdate
void otDatasetUpdaterCancelUpdate( otInstance *aInstance )
這個函式會取消進行中的 (如果有) 營運資料集更新要求。
必須啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE
才能使用此功能。
詳情 | |||
---|---|---|---|
參數 |
|
otDatasetUpdaterIsUpdateOngoing
bool otDatasetUpdaterIsUpdateOngoing( otInstance *aInstance )
這個函式會指出是否有進行中的作業資料集更新要求。
必須啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE
才能使用此功能。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
otDatasetUpdaterRequestUpdate
otError otDatasetUpdaterRequestUpdate( otInstance *aInstance, const otOperationalDataset *aDataset, otDatasetUpdaterCallback aCallback, void *aContext )
這個函式要求更新作業資料集。
必須啟用 OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE
才能使用此功能。
aDataset
應包含要更新的欄位及其新值。請勿包含「有效」或「待處理」時間戳記欄位。如未提供預設值 (1000 ms),則為「延遲」欄位為選填。
詳情 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
參數 |
|
||||||||||
傳回值 |
|
otNetworkNameFromString
otError otNetworkNameFromString( otNetworkName *aNetworkName, const char *aNameString )
從指定的空值終止 C 字串設定 otNetworkName
執行個體。
aNameString
必須採用 UTF-8 編碼,網路名稱長度不得超過 OT_NETWORK_NAME_MAX_SIZE
。
詳情 | |||||
---|---|---|---|---|---|
參數 |
|
||||
傳回值 |
|
巨集
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
Thread PAN ID 的大小 (以位元組為單位)
OT_MESH_LOCAL_PREFIX_SIZE
OT_MESH_LOCAL_PREFIX_SIZE OT_IP6_PREFIX_SIZE
網格本機前置字串 (位元組)
OT_NETWORK_KEY_SIZE
OT_NETWORK_KEY_SIZE 16
執行緒網路金鑰大小 (位元組)
OT_NETWORK_NAME_MAX_SIZE
OT_NETWORK_NAME_MAX_SIZE 16
「Thread Network Name」(執行緒網路名稱) 欄位大小上限 (位元組)
OT_OPERATIONAL_DATASET_MAX_LENGTH
OT_OPERATIONAL_DATASET_MAX_LENGTH 254
作業資料集長度上限 (以位元組為單位)。
OT_PSKC_MAX_SIZE
OT_PSKC_MAX_SIZE 16
PSKc 的大小上限 (位元組)
資源
OpenThread API 參考資料主題出自原始碼,可於 GitHub 取得。如需更多資訊,或想參閱我們的說明文件,請參閱資源。