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 *
Thread 扩展的 PAN ID。
ThreadNetworkKey
uint8_t *
Thread 主网络密钥,如果未指定,则为 NULL。
ThreadNetworkName
char *
Thread 网络的名称,如果未指定,则为 NULL。
ThreadPANId
uint32_t
16 位的线程 PAN ID,即 kThreadPANId_NotSpecified。
ThreadPSKc
uint8_t *
调试器的线程预共享密钥,如果未指定,则为 NULL。
WiFiKey
uint8_t *
Wi-Fi 密钥,如果未指定,则为 NULL。
WiFiKeyLen
uint32_t
Wi-Fi 密钥的长度(以字节为单位)。
WiFiMode
Wi-Fi 网络的操作模式。
WiFiRole
设备在 Wi-Fi 网络中扮演的角色。
WiFiSSID
char *
Wi-Fi SSID,如果未指定,则为 NULL。
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

Thread 扩展的 PAN ID。

它是类拥有的由 8 个八位字节组成的动态分配数组。在对对象调用 Clear() 的任何条件下销毁。

ThreadNetworkKey

uint8_t * ThreadNetworkKey

Thread 主网络密钥,如果未指定,则为 NULL。

它是任意八位字节的动态分配数组,在对对象调用 Clear() 的任何条件下归 Destroyed 类所有。

ThreadNetworkName

char * ThreadNetworkName

Thread 网络的名称,如果未指定,则为 NULL。

它是类拥有的、以 NUL 终止且动态分配的 C 字符串。在对对象调用 Clear() 的任何条件下销毁。

ThreadPANId

uint32_t ThreadPANId

16 位的线程 PAN ID,即 kThreadPANId_NotSpecified。

ThreadPSKc

uint8_t * ThreadPSKc

调试器的线程预共享密钥,如果未指定,则为 NULL。

它是任意八位字节的动态分配数组,在对对象调用 Clear() 的任何条件下归 Destroyed 类所有。

WiFiKey

uint8_t * WiFiKey

Wi-Fi 密钥,如果未指定,则为 NULL。

它是类拥有的任意八位字节的动态分配数组,长度由 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,如果未指定,则为 NULL。

它是类拥有的、以 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 或 free 时。
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 或 free 时。
WEAVE_ERROR_NO_MEMORY
当内存分配失败时。

NetworkInfo

 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() 函数返回的错误。