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)
TLV 表示法中反序列化此 NetworkInfo 对象的内容。
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)
TLV 表示法中反序列化 NetworkInfo 元素的列表。
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() 的任何条件销毁的类拥有。

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 密钥,如果未指定,则为 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
)

TLV 表示法中反序列化此 NetworkInfo 对象的内容。

具体说明
参数
[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()

公共静态函数

DecodeList

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

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

具体说明
参数
[in] reader
TLVReader 已定位在数组开头。成功返回后,写入器将置于数组末尾。
[in,out] elemCount
输入时,要从 TLVReader 反序列化的元素数上限。在输出时,表示从数据流中实际反序列化的元素数量。
[in,out] elemArray
NetworkInfo 元素数组的引用,其中将包含反序列化的 NetworkInfo 对象。当数组为 NULL 时,由下面的函数在内部分配,否则假定外部分配的数组至少包含 elemCount 对象。
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_NOT_IMPLEMENTED
在不支持动态内存管理的平台上运行该 API。
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() 函数返回的错误。