nl::Weave::Profiles::NetworkProvisioning::NetworkInfo

#include <src/lib/profiles/network-provisioning/NetworkInfo.h>

序列化及取消序列化透過 NetworkProvisioning 設定檔通訊的公用程式類別:封裝與偵測及設定網路相關的資訊。

摘要

此類別仰賴網路佈建資訊的中繼儲存空間 (資訊最終儲存庫與網路酬載之間的中間儲存空間),並使用動態記憶體管理功能為產生的物件提供彈性的執行階段。因此,此類別不適用於最受限的環境,但可能用於較大的系統。

建構函式和解構函式

NetworkInfo()
~NetworkInfo()

公開類型

@210 列舉
@211 列舉

公開屬性

Hidden
bool
網路是否為隱藏狀態。
NetworkId
int64_t
裝置指派給網路的網路 ID;如未指定,則為 -1。
NetworkType
網路類型。
ThreadChannel
uint8_t
Thread 網路運作時使用的當前版本 (目前 [11..26]),或 kThreadChannel_NotSpecified。
ThreadExtendedPANId
uint8_t *
執行緒擴充 PAN ID。
ThreadNetworkKey
uint8_t *
執行緒主網路金鑰,如未指定,則為 NULL。
ThreadNetworkName
char *
Thread 網路的名稱,如未指定,則為 NULL。
ThreadPANId
uint32_t
16 位元的執行緒 PAN ID,或 kThreadPANId_NotSpecified。
ThreadPSKc
uint8_t *
適用於佣金工具的執行緒預先共用金鑰,如未指定,則為 NULL。
WiFiKey
uint8_t *
Wi-Fi 金鑰;如未指定,則為空值。
WiFiKeyLen
uint32_t
Wi-Fi 金鑰的長度 (以位元組為單位)。
WiFiMode
Wi-Fi 網路的作業模式。
WiFiRole
裝置在 Wi-Fi 網路上所扮演的角色。
WiFiSSID
char *
Wi-Fi SSID;如未指定,則為空值。
WiFiSecurityType
Wi-Fi 安全性類型。
WirelessSignalStrength
int16_t
網路的訊號強度;如果不適用,則為 INT16_MIN。

公用函式

Clear(void)
void
重設為預設值並釋放這個 NetworkInfo 物件中的所有值。
CopyTo(NetworkInfo & dest)
將這個 NetworkInfo 物件的內容替換為引數內容的深度副本。
Decode(nl::Weave::TLV::TLVReader & reader)
將這個 NetworkInfo 物件的內容從其 TLV 表示法反序列化。
Encode(nl::Weave::TLV::TLVWriter & writer, uint8_t encodeFlags) const
將這個 NetworkInfo 物件的內容序列化為其 TLV 表示法。
MergeTo(NetworkInfo & dest)
將這個 NetworkInfo 物件的內容與引數內容的深度副本合併。

公開的靜態函式

DecodeList(nl::Weave::TLV::TLVReader & reader, uint16_t & elemCount, NetworkInfo *& elemArray)
NetworkInfo 元素從其 TLV 表示法中反序列化。
EncodeList(nl::Weave::TLV::TLVWriter & writer, uint16_t elemCount, const NetworkInfo *elemArray, uint8_t encodeFlags)
NetworkInfo 物件的陣列序列化為 TLV 表示法。
EncodeList(nl::Weave::TLV::TLVWriter & writer, uint16_t arrayLen, const NetworkInfo *elemArray, ::nl::Weave::Profiles::NetworkProvisioning::NetworkType networkType, uint8_t encodeFlags, uint16_t & encodedElemCount)
NetworkInfo 物件的陣列序列化為其 TLV 表示法,並僅選取特定類型的網路。

公開類型

@210

 @210

@211

 @211

公開屬性

隱藏日期

bool Hidden

網路是否為隱藏狀態。

NetworkId

int64_t NetworkId

裝置指派給網路的網路 ID;如未指定,則為 -1。

NetworkType

::nl::Weave::Profiles::NetworkProvisioning::NetworkType NetworkType

網路類型。

ThreadChannel

uint8_t ThreadChannel

Thread 網路運作時使用的當前版本 (目前 [11..26]),或 kThreadChannel_NotSpecified。

ThreadExtendedPANId

uint8_t * ThreadExtendedPANId

執行緒擴充 PAN ID。

這是由類別擁有的動態分配陣列,共 8 個八位元。已針對對物件呼叫 Clear() 的任何條件刪除。

ThreadNetworkKey

uint8_t * ThreadNetworkKey

執行緒主網路金鑰,如未指定,則為 NULL。

它是動態分配的任意八位元陣列,該類別在對物件上呼叫 Clear() 的任何條件都會刪除。

ThreadNetworkName

char * ThreadNetworkName

Thread 網路的名稱,如未指定,則為 NULL。

這是由類別擁有的 NUL 終止、動態分配 C 字串。已針對對物件呼叫 Clear() 的任何條件刪除。

ThreadPANId

uint32_t ThreadPANId

16 位元的執行緒 PAN ID,或 kThreadPANId_NotSpecified。

ThreadPSKc

uint8_t * ThreadPSKc

適用於佣金工具的執行緒預先共用金鑰,如未指定,則為 NULL。

它是動態分配的任意八位元陣列,該類別在對物件上呼叫 Clear() 的任何條件都會刪除。

WiFiKey

uint8_t * WiFiKey

Wi-Fi 金鑰;如未指定,則為空值。

這是由類別擁有的任意八位元動態分配的陣列,由 WiFiKeyLen 指定長度。已針對對物件呼叫 Clear() 的任何條件刪除。

WiFiKeyLen

uint32_t WiFiKeyLen

Wi-Fi 金鑰的長度 (以位元組為單位)。

WiFiMode

::nl::Weave::Profiles::NetworkProvisioning::WiFiMode WiFiMode

Wi-Fi 網路的作業模式。

WiFiRole

::nl::Weave::Profiles::NetworkProvisioning::WiFiRole WiFiRole

裝置在 Wi-Fi 網路上所扮演的角色。

WiFiSSID

char * WiFiSSID

Wi-Fi SSID;如未指定,則為空值。

這是由類別擁有的 NUL 終止、動態分配 C 字串。已針對對物件呼叫 Clear() 的任何條件刪除。

WiFiSecurityType

::nl::Weave::Profiles::NetworkProvisioning::WiFiSecurityType WiFiSecurityType

Wi-Fi 安全性類型。

WirelessSignalStrength

int16_t WirelessSignalStrength

網路的訊號強度;如果不適用,則為 INT16_MIN。

公用函式

清除

void Clear(
  void
)

重設為預設值並釋放這個 NetworkInfo 物件中的所有值。

CopyTo

WEAVE_ERROR CopyTo(
  NetworkInfo & dest
)

將這個 NetworkInfo 物件的內容替換為引數內容的深度副本。

詳細說明
參數
[in] dest
NetworkInfo 物件,包含要複製到此物件中的資訊。
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NOT_IMPLEMENTED
平台不支援 Malloc 或免費時。
WEAVE_ERROR_NO_MEMORY
記憶體配置失敗。

Decode

WEAVE_ERROR Decode(
  nl::Weave::TLV::TLVReader & reader
)

將這個 NetworkInfo 物件的內容從其 TLV 表示法反序列化。

詳細說明
參數
[in] reader
TLVReader 已定位到包含網路資訊的結構元素。
傳回
WEAVE_NO_ERROR 成功時,只要元素有 WEAVE_ERROR_INVALID_TLV_ELEMENT 與網路佈建設定檔不符,或是 TLV 讀取器發生錯誤,就會發生錯誤解碼錯誤。

編碼

WEAVE_ERROR Encode(
  nl::Weave::TLV::TLVWriter & writer,
  uint8_t encodeFlags
) const 

將這個 NetworkInfo 物件的內容序列化為其 TLV 表示法。

詳細說明
參數
[in] writer
TLVWriter 定位於物件序列化的位置。當此物件是元素陣列的一部分,或以獨立元素做為 kTag_NetworkInformation 的設定檔標記時,此函式會對此物件發出匿名標記。
[in] encodeFlags
旗標可控制 NetworkInfo 憑證是否應序列化。
傳回
WEAVE_NO_ERROR 成功時,只要元素有 WEAVE_ERROR_INVALID_TLV_ELEMENT 與網路佈建設定檔不符,或是 TLV 讀取器發生錯誤,就會發生錯誤解碼錯誤。

MergeTo

WEAVE_ERROR MergeTo(
  NetworkInfo & dest
)

將這個 NetworkInfo 物件的內容與引數內容的深度副本合併。

引數物件中的所有非預設值都會取代這個物件中的值。

詳細說明
參數
[in] dest
NetworkInfo 物件,包含要複製到此物件中的資訊。
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NOT_IMPLEMENTED
平台不支援 Malloc 或免費時。
WEAVE_ERROR_NO_MEMORY
記憶體配置失敗。

NetworkInfo

 NetworkInfo()

大約網路資訊

 ~NetworkInfo()

公開的靜態函式

DecodeList

WEAVE_ERROR DecodeList(
  nl::Weave::TLV::TLVReader & reader,
  uint16_t & elemCount,
  NetworkInfo *& elemArray
)

NetworkInfo 元素從其 TLV 表示法中反序列化。

詳細說明
參數
[in] reader
TLVReader 定位於陣列開始。成功傳回時,寫入器會位於陣列的結尾後方。
[in,out] elemCount
輸入時,從 TLVReader 反序列化的元素數量上限。輸出時,實際從串流反序列化的元素數量。
[in,out] elemArray
NetworkInfo 元素陣列的參照,當中包含已反序列化的 NetworkInfo 物件。當陣列為 NULL 時,下方函式會在內部分配陣列,否則會假設外部分配的陣列包含至少 elemCount 物件。
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NOT_IMPLEMENTED
在不支援動態記憶體管理的平台上
other
Decode() 函式傳回的錯誤。

EncodeList

WEAVE_ERROR EncodeList(
  nl::Weave::TLV::TLVWriter & writer,
  uint16_t elemCount,
  const NetworkInfo *elemArray,
  uint8_t encodeFlags
)

NetworkInfo 物件的陣列序列化為 TLV 表示法。

陣列將成為 TLV 表示法中的匿名元素。

詳細說明
參數
[in] writer
正確定位 TLVWriter
[in] elemCount
elemArray 中的元素數量。
[in] elemArray
要序列化的 NetworkInfo 物件陣列。
[in] encodeFlags
旗標可控制 NetworkInfo 憑證是否應序列化。
傳回值
WEAVE_NO_ERROR
成功時。
Other
Encode() 函式傳回的錯誤。

EncodeList

WEAVE_ERROR EncodeList(
  nl::Weave::TLV::TLVWriter & writer,
  uint16_t arrayLen,
  const NetworkInfo *elemArray,
  ::nl::Weave::Profiles::NetworkProvisioning::NetworkType networkType,
  uint8_t encodeFlags,
  uint16_t & encodedElemCount
)

NetworkInfo 物件的陣列序列化為其 TLV 表示法,並僅選取特定類型的網路。

詳細說明
參數
[in] writer
正確定位 TLVWriter
[in] arrayLen
elemArray 中的元素數量。
[in] elemArray
要序列化的 NetworkInfo 物件陣列。
[in] networkType
要序列化的 NetworkInfo 物件類型
[in] encodeFlags
旗標可控制 NetworkInfo 憑證是否應序列化。
[out] encodedElemCount
實際序列化的元素數量。
傳回值
WEAVE_NO_ERROR
成功時。
Other
Encode() 函式傳回的錯誤。