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

設定

這個模組包含非變性設定設定的平台抽象化。

摘要

列舉

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
}
列舉
這項列舉定義了設定的索引鍵。

函式

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_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 通訊埠)。

函式

新增 otPlatSettingsAdd

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 的資料長度。可能為 0。
傳回值
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 堆疊保證將 otPlatSettingsSet() 方法用於先前使用 otPlatSettingsSet() (即僅含單一值) 或為空白和/或完整刪除 (不含任何值) 的 aKey

平台層可運用這些特性來最佳化實作作業。

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

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

用於移除設定存放區的所有設定。

這項功能會刪除設定存放區中的所有設定,並還原至初始狀態。

詳情
參數
[in] aInstance
OpenThread 執行個體結構。

資源

OpenThread API 參考主題源自原始碼,可從 GitHub 取得。如要瞭解詳情或參閱說明文件,請參閱資源