nl::编织:配置文件::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 *
线程网络的名称;如果未指定,则为 NULL。
ThreadPANId
uint32_t
16 位线程 PAN ID,或 kThreadPANId_NotSpecified。
ThreadPSKc
uint8_t *
Commissioner 的线程预共享密钥;如果未指定,则为 NULL。
WiFiKey
uint8_t *
WiFi 密钥,如果未指定,则为 NULL。
WiFiKeyLen
uint32_t
WiFi 密钥的长度(以字节为单位)。
WiFiMode
WiFi 网络的操作模式。
WiFiRole
设备在 Wi-Fi 网络中扮演的角色。
WiFiSSID
char *
WiFi SSID;如果未指定,则为 NULL。
WiFiSecurityType
WiFi 安全类型。
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

网络是否处于隐藏状态。

网络 ID

int64_t NetworkId

设备为网络分配的网络 ID,如果未指定,则为 -1。

NetworkType

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

网络类型。

线程渠道

uint8_t ThreadChannel

Thread 网络运行的当前通道(目前为 [11.26]),即 kThreadChannel_NotSpecified。

线程扩展 PANId

uint8_t * ThreadExtendedPANId

线程扩展 PAN ID。

这是一个由 8 个八位字节动态分配的数组,归类所有。在针对对象调用 Clear() 的任何条件上被销毁。

线程网络密钥

uint8_t * ThreadNetworkKey

线程主网络键,如果未指定,则为 NULL。

它是任意分配的八位字节的动态分配数组,归属于在对对象调用 Clear() 的任何条件上销毁的类。

线程网络名称

char * ThreadNetworkName

线程网络的名称;如果未指定,则为 NULL。

它是 NUL 终结的动态分配 C 字符串,归类所有。在针对对象调用 Clear() 的任何条件上被销毁。

ThreadPANId

uint32_t ThreadPANId

16 位线程 PAN ID,或 kThreadPANId_NotSpecified。

ThreadPSKc

uint8_t * ThreadPSKc

Commissioner 的线程预共享密钥;如果未指定,则为 NULL。

它是任意分配的八位字节的动态分配数组,归属于在对对象调用 Clear() 的任何条件上销毁的类。

WiFi 密钥

uint8_t * WiFiKey

WiFi 密钥,如果未指定,则为 NULL。

它是由类拥有的任意动态分配的八位字节动态分配的数组,长度由 WiFiKeyLen 指定。在针对对象调用 Clear() 的任何条件上被销毁。

WiFi 密钥列表

uint32_t WiFiKeyLen

WiFi 密钥的长度(以字节为单位)。

WiFi 模式

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

WiFi 网络的操作模式。

WiFi 角色

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

设备在 Wi-Fi 网络中扮演的角色。

WiFiSSID

char * WiFiSSID

WiFi SSID;如果未指定,则为 NULL。

它是 NUL 终结的动态分配 C 字符串,归类所有。在针对对象调用 Clear() 的任何条件上被销毁。

WiFi 安全类型

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

WiFi 安全类型。

无线信号强度

int16_t WirelessSignalStrength

网络的信号强度,或 INT16_MIN(如果不可用/适用)。

公共函数

清除

void Clear(
  void
)

重置为默认值并释放此 NetworkInfo 对象中的所有值。

复制到

WEAVE_ERROR CopyTo(
  NetworkInfo & dest
)

请将此 NetworkInfo 对象的内容替换为参数的内容深层副本。

详情
参数
[in] dest
NetworkInfo 对象,其中包含要复制到此对象的信息。
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_NOT_IMPLEMENTED
当平台不支持 malloc 或 free 时。
WEAVE_ERROR_NO_MEMORY
内存分配失败时。

解码

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 读取器错误。

合并

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()

公共静态函数

解码列表

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

编码列表

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

编码列表

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