透過集合功能整理內容 你可以依據偏好儲存及分類內容。

設定

這個模組包含非揮發性儲存空間設定的平台抽象層。

摘要

列舉

anonymous enum{
  OT_SETTINGS_KEY_ACTIVE_DATASET = 0x0001,
  OT_SETTINGS_KEY_PENDING_DATASET = 0x0002,
  OT_SETTINGS_KEY_NETWORK_INFO = 0x0003,
  OT_SETTINGS_KEY_PARENT_INFO = 0x0004,
  OT_SETTINGS_KEY_CHILD_INFO = 0x0005,
  OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY = 0x0007,
  OT_SETTINGS_KEY_DAD_INFO = 0x0008,
  OT_SETTINGS_KEY_SRP_ECDSA_KEY = 0x000b,
  OT_SETTINGS_KEY_SRP_CLIENT_INFO = 0x000c,
  OT_SETTINGS_KEY_SRP_SERVER_INFO = 0x000d,
  OT_SETTINGS_KEY_BR_ULA_PREFIX = 0x000f,
  OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES = 0x0010
}
列舉
這個列舉項目定義了設定鍵。

Functions

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
為設定新增值。
otPlatSettingsDeinit(otInstance *aInstance)
void
視需要對設定子系統執行任何初始化作業。
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
從設定商店中移除設定。
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
擷取設定的值。
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
視需要在設定子系統執行任何初始化作業。
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
設定或取代設定的值。
otPlatSettingsWipe(otInstance *aInstance)
void
從設定存放區中移除所有設定。

列舉

匿名列舉

 anonymous enum

這個列舉項目定義了設定鍵。

注意:新增設定金鑰時,如果按鍵對應的設定包含安全性機密資訊,開發人員「必須」將金鑰新增至 otPlatSettingsInit() 中傳送的陣列 aSensitiveKeys

屬性
OT_SETTINGS_KEY_ACTIVE_DATASET

運作中的資料集。

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

BR 本地連結前置詞。

OT_SETTINGS_KEY_BR_ULA_PREFIX

BR ULA 前置字串。

OT_SETTINGS_KEY_CHILD_INFO

孩童資訊

OT_SETTINGS_KEY_DAD_INFO

地址偵測 (DAD) 資訊重複。

OT_SETTINGS_KEY_NETWORK_INFO

執行緒網路資訊。

OT_SETTINGS_KEY_PARENT_INFO

家長資訊。

OT_SETTINGS_KEY_PENDING_DATASET

待處理的作業資料集。

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

用於產生語意不透明 IID 的 SLAAC 金鑰。

OT_SETTINGS_KEY_SRP_CLIENT_INFO

SRP 用戶端資訊 (已選取 SRP 伺服器位址)。

OT_SETTINGS_KEY_SRP_ECDSA_KEY

SRP 用戶端 ECDSA 公開/私密金鑰組。

OT_SETTINGS_KEY_SRP_SERVER_INFO

SRP 伺服器資訊 (UDP 通訊埠)。

Functions

otPlatSettings 新增

otError otPlatSettingsAdd(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

為設定新增值。

這個函式會將值新增至 aKey 識別的設定,但不會取代任何現有的值。

請注意,基礎實作並不需要維護特定鍵關聯項目的順序。附加值可新增至結尾、開頭或中間位置的任何部分。任何現有值的順序也可能會變更。

成功呼叫這個函式可能會導致重新排序多個值的設定重新排序。

OpenThread 堆疊保證將 otPlatSettingsAdd() 方法用於先前由 otPlatSettingsAdd() (即包含一或多個項目) 管理的 aKey 方法、或空白和/或完全刪除 (不含任何值)。

平台層可以仰賴這個事實來最佳化實作。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aKey
與要變更設定的設定相關的金鑰。
[in] aValue
您要讀取設定新值的指標。如果 aValueLength 不是零,則不得為 NULL。
[in] aValueLength
aValue 指向資料的長度。可能為零。
傳回值
OT_ERROR_NONE
已新增指定的設定,或在這個階段加入。
OT_ERROR_NOT_IMPLEMENTED
這個平台並未實作這個函式。
OT_ERROR_NO_BUFS
空間不足,無法儲存指定的設定。

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

視需要對設定子系統執行任何初始化作業。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。

otPlatSettingsDelete

otError otPlatSettingsDelete(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex
)

從設定商店中移除設定。

這個函式會從設定存放區刪除 aKey 指定設定中的特定值。

請注意,基礎實作並不需要維護特定鍵關聯項目的順序。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aKey
與所要求設定相關聯的金鑰。
[in] aIndex
要移除的值的索引。如果設為 -1,系統將移除這個 aKey 的所有值。
傳回值
OT_ERROR_NONE
已找到指定鍵和索引並成功移除。
OT_ERROR_NOT_FOUND
在設定存放區中找不到給定的鍵或索引。
OT_ERROR_NOT_IMPLEMENTED
這個平台並未實作這個函式。

otPlatSettingsGet

otError otPlatSettingsGet(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex,
  uint8_t *aValue,
  uint16_t *aValueLength
)

擷取設定的值。

這個函式會擷取 aKey 識別的設定值,並寫入 aValue 指向的記憶體值。接下來,系統會將長度寫入 aValueLength 指向的整數。aValueLength 的初始值是要寫入 aValue 的位元組數上限。

此函式可將 aValueaValueLength 設為 NULL,藉此檢查鍵是否存在,而不擷取值。您也可以不檢查設定值,只要只將 aValue 設為 NULL 即可檢查。

請注意,如果實作包含多個值的設定,則不需要基礎基礎儲存空間的實作。對商店進行任何寫入作業之後,這類值的順序可能會改變。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aKey
與所要求設定相關聯的金鑰。
[in] aIndex
取得的特定項目索引。
[out] aValue
請指出設定值的位置。如果只測試設定的存在或長度,可能會設為 NULL。
[in,out] aValueLength
指向值長度的指標。呼叫時,此指標應指向包含可寫入 aValue 的最大值的整數。傳回時,設定的實際長度會寫入。如果執行在家狀態檢查,則可設為 NULL。
傳回值
OT_ERROR_NONE
已成功找到並擷取指定設定。
OT_ERROR_NOT_FOUND
設定存放區中找不到指定的設定。
OT_ERROR_NOT_IMPLEMENTED
這個平台並未實作這個函式。

otPlatSettingsInit

void otPlatSettingsInit(
  otInstance *aInstance,
  const uint16_t *aSensitiveKeys,
  uint16_t aSensitiveKeysLength
)

視需要在設定子系統執行任何初始化作業。

這個函式也會設定應儲存在安全區域中的機密金鑰。

請注意,aSensitiveKeys 指向的記憶體「必須」在 aInstance 刪除前釋出。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aSensitiveKeys
指向包含機密資料清單的陣列指標。只有在 aSensitiveKeysLength 為 0 時,空值才會為 NULL,這表示沒有任何機密資料。
[in] aSensitiveKeysLength
aSensitiveKeys 陣列中的項目數量。

otPlatSettingsSet

otError otPlatSettingsSet(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

設定或取代設定的值。

這個函式會設定或取代由 aKey 識別的設定值。

成功呼叫這個函式可能會導致重新排序多個值的設定重新排序。

OpenThread 堆疊保證會使用 aKey 方法的 otPlatSettingsSet() 方法 (如果原先使用 otPlatSettingsSet() 設定,包含單一值) 或為空白且/或完全刪除 (不含任何值)。

平台層可以仰賴這個事實來最佳化實作。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。
[in] aKey
與要變更設定的設定相關的金鑰。
[in] aValue
您要讀取設定新值的指標。如果 aValueLength 不是零,則不得為 NULL。
[in] aValueLength
指向 aValue 的資料長度。可能為零。
傳回值
OT_ERROR_NONE
指定的設定已變更或暫存為。
OT_ERROR_NOT_IMPLEMENTED
這個平台並未實作這個函式。
OT_ERROR_NO_BUFS
空間不足,無法儲存指定的設定。

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

從設定存放區中移除所有設定。

這項函式會從設定存放區刪除所有設定,並重設為初始工廠狀態。

詳細說明
參數
[in] aInstance
OpenThread 執行個體結構。

資源

OpenThread API 參考資料主題出自原始碼,可於 GitHub 取得。如需更多資訊,或想參閱我們的說明文件,請參閱資源