class WeaveDeviceDescriptor

Defined at line 115 of file gen/third_party/openweave-core/src/include/Weave/Profiles/device-description/DeviceDescription.h

Contains descriptive information about a Weave device.

Public Members

uint64_t DeviceId
uint64_t FabricId
uint32_t DeviceFeatures
uint16_t VendorId
uint16_t ProductId
uint16_t ProductRevision
 ManufacturingDate
uint8_t[8] Primary802154MACAddress
uint8_t[6] PrimaryWiFiMACAddress
char[33] SerialNumber
char[33] SoftwareVersion
char[33] RendezvousWiFiESSID
char[17] PairingCode
uint16_t PairingCompatibilityVersionMajor
uint16_t PairingCompatibilityVersionMinor
uint8_t Flags

Public Methods

void WeaveDeviceDescriptor ()
void Clear ()
WEAVE_ERROR EncodeText (const WeaveDeviceDescriptor & desc, char * buf, uint32_t bufLen, uint32_t & outEncodedLen)
WEAVE_ERROR EncodeTLV (const WeaveDeviceDescriptor & desc, uint8_t * buf, uint32_t bufLen, uint32_t & outEncodedLen)
WEAVE_ERROR EncodeTLV (const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
WEAVE_ERROR Decode (const uint8_t * data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
WEAVE_ERROR DecodeText (const char * data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
WEAVE_ERROR DecodeTLV (const uint8_t * data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
WEAVE_ERROR DecodeTLV (nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
bool IsZeroBytes (const uint8_t * buf, uint32_t len)

Enumerations

enum (unnamed)
Name Value Comments
kMaxSerialNumberLength 32

Maximum serial number length.

kMaxPairingCodeLength 16

Maximum pairing code length.

kMaxRendezvousWiFiESSID 32

Maximum WiFi ESSID for Rendezvous length.

kMaxSoftwareVersionLength WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH

Maximum software version length.

Defines the maximum length of some attributes.

Defined at line 123 of file gen/third_party/openweave-core/src/include/Weave/Profiles/device-description/DeviceDescription.h

enum (unnamed)
Name Value Comments
kFeature_HomeAlarmLinkCapable 0x00000001

Indicates a Nest Protect that supports connection to a home alarm panel.

kFeature_LinePowered 0x00000002

Indicates a device that requires line power.

Feature flags indicating specific device capabilities.

Defined at line 134 of file gen/third_party/openweave-core/src/include/Weave/Profiles/device-description/DeviceDescription.h

enum (unnamed)
Name Value Comments
kFlag_IsRendezvousWiFiESSIDSuffix 0x01

Indicates that the RendezvousWiFiESSID value is a suffix string that
appears at the end of the ESSID of the device's WiFi rendezvous network.

Flags field definitions.

Defined at line 143 of file gen/third_party/openweave-core/src/include/Weave/Profiles/device-description/DeviceDescription.h

enum (unnamed)
Name Value Comments
kMaxEncodedTLVLength 8 /* Control + Profile Tag */ + 8 /* Length */ + (8 * 16) /* Control + Context Tag */ + sizeof(VendorId) + sizeof(ProductId) + sizeof(ProductRevision) + sizeof(ManufacturingDate) + sizeof(SerialNumber) + sizeof(Primary802154MACAddress) + sizeof(PrimaryWiFiMACAddress) + sizeof(RendezvousWiFiESSID) + sizeof(PairingCode) + sizeof(DeviceId) + sizeof(FabricId) + sizeof(SoftwareVersion) + sizeof(PairingCompatibilityVersionMajor) + sizeof(PairingCompatibilityVersionMinor) + 1

The max encoded length is computed by evaluating the size of the
container and max attribute lengths as defined in EncodeTLV.

Control + Profile Tag = 8 bytes
Length = 8 bytes
Control + Context Tag (per element) = 8 bytes (16 unique elements)
Values:
Vendor ID = 2 bytes
Product ID = 2 bytes
Product Revision = 2 bytes
Manufacturing Date = 2 bytes
Serial Number = kMaxSerialNumberLength + 1 bytes
Primary 802.15.4 MAC = 8 bytes
Primary WiFi MAC = 6 bytes
Rendezvous WiFi ESSID = kMaxRendezvousWiFiESSID + 1 bytes
Pairing Code = kMaxPairingCodeLength + 1 bytes
Device ID = 8 bytes
Fabric ID = 8 bytes
Software Version = kMaxSoftwareVersionLength + 1 bytes
Pairing Compatability Version Major = 2 bytes
Pairing Compatability Version Minor = 2 bytes
Device Features = 0 bytes (value is implicit in tag)
End of Container Byte = 1 byte

Not all fields will be populated in all cases, so this represents
an upper bound of space required to encode the TLV.

Defines TLV attribute lengths.

Defined at line 174 of file gen/third_party/openweave-core/src/include/Weave/Profiles/device-description/DeviceDescription.h

Records