nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor

#include <src/lib/profiles/device-description/DeviceDescription.h>

इसमें Weave डिवाइस के बारे में ज़्यादा जानकारी होती है.

खास जानकारी

कंस्ट्रक्टर और डिस्ट्रक्टर

WeaveDeviceDescriptor(void)

सार्वजनिक प्रकार

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
इससे कुछ एट्रिब्यूट की ज़्यादा से ज़्यादा लंबाई का पता चलता है.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
डिवाइस की खास सुविधाओं के बारे में बताने वाले फ़ीचर फ़्लैग.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
फ़्लैग फ़ील्ड की परिभाषाएं.

सार्वजनिक विशेषताएं

Day
uint8_t
डिवाइस बनाए जाने का दिन (0 = मौजूद नहीं है)
DeviceFeatures
uint32_t
बिट फ़ील्ड, डिवाइस की कुछ खास सुविधाओं के साथ काम करने के बारे में बताता है.
DeviceId
uint64_t
Weave डिवाइस आईडी (0 = मौजूद नहीं)
FabricId
uint64_t
वीव फ़ैब्रिक का आईडी, जिससे डिवाइस जुड़ा है (0 = मौजूद नहीं है)
Flags
uint8_t
बिट फ़ील्ड में डिवाइस के बारे में ज़्यादा जानकारी है.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
डिवाइस बनाने का महीना (1 = जनवरी)
PairingCode[kMaxPairingCodeLength+1]
char
डिवाइस जोड़ने के लिए कोड (NUL को खत्म किया गया, 0 लंबाई = मौजूद नहीं है)
PairingCompatibilityVersionMajor
uint16_t
डिवाइस जोड़ने के लिए इस्तेमाल किए जाने वाले सॉफ़्टवेयर का मुख्य वर्शन.
PairingCompatibilityVersionMinor
uint16_t
डिवाइस जोड़ने के सॉफ़्टवेयर का छोटा वर्शन.
Primary802154MACAddress[8]
uint8_t
मुख्य 802.15.4 इंटरफ़ेस के लिए MAC पता (बिग-एंडियन, सभी शून्य = मौजूद नहीं है)
PrimaryWiFiMACAddress[6]
uint8_t
मुख्य वाई-फ़ाई इंटरफ़ेस के लिए MAC पता (बिग-एंडियन, सभी शून्य = मौजूद नहीं)
ProductId
uint16_t
डिवाइस का प्रॉडक्ट कोड (0 = मौजूद नहीं है)
ProductRevision
uint16_t
डिवाइस में मौजूद प्रॉडक्ट रिविज़न (0 = मौजूद नहीं है)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
डिवाइस के वाई-फ़ाई पाने वाले नेटवर्क के लिए ESSID (NUL खत्म किया गया, 0 लंबाई = मौजूद नहीं है)
SerialNumber[kMaxSerialNumberLength+1]
char
डिवाइस का सीरियल नंबर (NUL को खत्म किया गया, 0 लंबाई = मौजूद नहीं है)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
ऐक्टिव सॉफ़्टवेयर वर्शन (NUL को खत्म किया गया, 0 लंबाई = मौजूद नहीं है)
VendorId
uint16_t
डिवाइस का वेंडर कोड (0 = मौजूद नहीं है)
Year
uint16_t
डिवाइस बनाने का साल (मान्य रेंज 2001 - 2099)

सार्वजनिक फ़ंक्शन

Clear(void)
void
डिवाइस की जानकारी मिटा देता है.

सार्वजनिक स्टैटिक फ़ंक्शन

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
यह दिए गए डेटा बफ़र के कॉन्टेंट को Weave डिवाइस के ब्यौरे वाला ऑब्जेक्ट में डिकोड करता है.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
यह दिए गए TLV डेटा बफ़र की सामग्री को Weave Device डिस्क्रिप्टर ऑब्जेक्ट में डिकोड करता है.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
यह सुविधा, पहले से शुरू किए गए TLVReader को इस्तेमाल करके, डिवाइस की जानकारी को डिकोड करती है.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
यह दिए गए टेक्स्ट डेटा बफ़र के कॉन्टेंट को Weave डिवाइस डिस्क्रिप्टर ऑब्जेक्ट में डिकोड करता है.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
दिए गए डिवाइस डिस्क्रिप्टर को, दिए गए बफ़र में लिखे गए Weave TLV के रूप में एन्कोड करता है.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
दिए गए डिवाइस डिस्क्रिप्टर को, पहले से शुरू किए गए TLVWriter ऑब्जेक्ट का इस्तेमाल करके, Weave TLV के रूप में एन्कोड करता है.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
दिए गए डिवाइस डिस्क्रिप्टर को, दिए गए बफ़र में लिखे गए टेक्स्ट के तौर पर एन्कोड करता है.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
देखें कि तय किए गए बफ़र में सिर्फ़ शून्य हैं.

सार्वजनिक प्रकार

@180

 @180

इससे कुछ एट्रिब्यूट की ज़्यादा से ज़्यादा लंबाई का पता चलता है.

प्रॉपर्टी
kMaxPairingCodeLength

दूसरे डिवाइस से जोड़ने के कोड की ज़्यादा से ज़्यादा लंबाई.

kMaxRendezvousWiFiESSID

Rendezvous लंबाई के लिए अधिकतम वाई-फ़ाई ESSID.

kMaxSerialNumberLength

सीरियल नंबर की ज़्यादा से ज़्यादा लंबाई.

kMaxSoftwareVersionLength

सॉफ़्टवेयर वर्शन की ज़्यादा से ज़्यादा लंबाई.

@181

 @181

डिवाइस की खास सुविधाओं के बारे में बताने वाले फ़ीचर फ़्लैग.

प्रॉपर्टी
kFeature_HomeAlarmLinkCapable

इससे, Nest Protect के बारे में पता चलता है जो होम अलार्म पैनल से कनेक्ट करने की सुविधा देता है.

kFeature_LinePowered

इससे ऐसे डिवाइस के बारे में पता चलता है जिसके लिए बिजली की सप्लाई की ज़रूरत होती है.

@182

 @182

फ़्लैग फ़ील्ड की परिभाषाएं.

प्रॉपर्टी
kFlag_IsRendezvousWiFiESSIDSuffix

इससे पता चलता है कि RendezvousWiFiESSID वैल्यू एक सफ़िक्स स्ट्रिंग है. यह डिवाइस के वाई-फ़ाई से मिलने वाले नेटवर्क के ESSID के आखिर में दिखती है.

सार्वजनिक विशेषताएं

दिन

uint8_t Day

डिवाइस बनाए जाने का दिन (0 = मौजूद नहीं है)

DeviceFeatures

uint32_t DeviceFeatures

बिट फ़ील्ड, डिवाइस की खास सुविधाओं के साथ काम करने के बारे में बताता है.

DeviceId

uint64_t DeviceId

Weave डिवाइस आईडी (0 = मौजूद नहीं)

FabricId

uint64_t FabricId

वीव फ़ैब्रिक का आईडी, जिससे डिवाइस जुड़ा है (0 = मौजूद नहीं है)

झंडे

uint8_t Flags

बिट फ़ील्ड में डिवाइस के बारे में ज़्यादा जानकारी है.

ManufacturingDate

struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183 ManufacturingDate

महीना

uint8_t Month

डिवाइस बनाने का महीना (1 = जनवरी)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

डिवाइस जोड़ने के लिए कोड (NUL को खत्म किया गया, 0 लंबाई = मौजूद नहीं है)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

डिवाइस जोड़ने के लिए इस्तेमाल किए जाने वाले सॉफ़्टवेयर का मुख्य वर्शन.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

डिवाइस जोड़ने के सॉफ़्टवेयर का छोटा वर्शन.

प्राइमरी802154MACपता

uint8_t Primary802154MACAddress[8]

मुख्य 802.15.4 इंटरफ़ेस के लिए MAC पता (बिग-एंडियन, सभी शून्य = मौजूद नहीं है)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

मुख्य वाई-फ़ाई इंटरफ़ेस के लिए MAC पता (बिग-एंडियन, सभी शून्य = मौजूद नहीं)

ProductId

uint16_t ProductId

डिवाइस का प्रॉडक्ट कोड (0 = मौजूद नहीं है)

ProductRevision

uint16_t ProductRevision

डिवाइस में मौजूद प्रॉडक्ट रिविज़न (0 = मौजूद नहीं है)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

डिवाइस के वाई-फ़ाई पाने वाले नेटवर्क के लिए ESSID (NUL खत्म किया गया, 0 लंबाई = मौजूद नहीं है)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

डिवाइस का सीरियल नंबर (NUL को खत्म किया गया, 0 लंबाई = मौजूद नहीं है)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

सॉफ़्टवेयर का ऐक्टिव वर्शन (NUL को खत्म किया गया, 0 लंबाई = मौजूद नहीं है)

VendorId

uint16_t VendorId

डिवाइस का वेंडर कोड (0 = मौजूद नहीं है)

साल

uint16_t Year

डिवाइस बनाने का साल (मान्य रेंज 2001 - 2099)

सार्वजनिक फ़ंक्शन

मिटाएं

void Clear(
  void
)

डिवाइस की जानकारी मिटा देता है.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

सार्वजनिक स्टैटिक फ़ंक्शन

Decode

WEAVE_ERROR Decode(
  const uint8_t *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

यह दिए गए डेटा बफ़र के कॉन्टेंट को Weave डिवाइस के ब्यौरे वाला ऑब्जेक्ट में डिकोड करता है.

ब्यौरा
पैरामीटर
[in] data
बफ़र का पॉइंटर जिसमें टेक्स्ट या TLV एन्कोड किया गया Weave Device Descriptor डेटा हो.
[in] dataLen
दिए गए बफ़र की लंबाई.
[out] outDesc
डिवाइस की जानकारी देने वाले ऑब्जेक्ट का रेफ़रंस, जिसमें जानकारी अपने-आप भरी जानी है.
रिटर्न वैल्यू
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
अगर दिया गया बफ़र अमान्य है.
WEAVE_NO_ERROR
सफलता पर.
other
Weave या प्लैटफ़ॉर्म के हिसाब से किसी गड़बड़ी के कोड से पता चलता है कि TLV को डिकोड करने में कोई गड़बड़ी हुई है.

DecodeTLV

WEAVE_ERROR DecodeTLV(
  const uint8_t *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

यह दिए गए TLV डेटा बफ़र की सामग्री को Weave Device डिस्क्रिप्टर ऑब्जेक्ट में डिकोड करता है.

ब्यौरा
पैरामीटर
[in] data
बफ़र का पॉइंटर, जिसमें टेक्स्ट एन्कोड किया गया Weave डिवाइस का ब्यौरा देने वाला डेटा मौजूद है.
[in] dataLen
दिए गए बफ़र की लंबाई.
[out] outDesc
डिवाइस की जानकारी देने वाले ऑब्जेक्ट का रेफ़रंस, जिसमें जानकारी अपने-आप भरी जानी है.
रिटर्न वैल्यू
WEAVE_ERROR_WRONG_TLV_TYPE
अगर यह डिवाइस का ब्यौरा TLV नहीं है.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
अगर डिवाइस के ब्यौरे के बाद, TLV डेटा मिलता है.
WEAVE_NO_ERROR
सफलता पर.
other
Weave या प्लैटफ़ॉर्म के हिसाब से किसी गड़बड़ी के कोड से पता चलता है कि TLV को कोड में बदलने में कोई गड़बड़ी हुई है.

DecodeTLV

WEAVE_ERROR DecodeTLV(
  nl::Weave::TLV::TLVReader & reader,
  WeaveDeviceDescriptor & outDesc
)

यह सुविधा, पहले से शुरू किए गए TLVReader को इस्तेमाल करके, डिवाइस की जानकारी को डिकोड करती है.

ब्यौरा
पैरामीटर
[in] reader
पहले से शुरू किए गए TLVReader के बारे में जानकारी.
[out] outDesc
डिवाइस की जानकारी देने वाले ऑब्जेक्ट का रेफ़रंस, जिसमें जानकारी अपने-आप भरी जानी है.
रिटर्न वैल्यू
WEAVE_ERROR_INVALID_TLV_ELEMENT
अगर TLV डेटा में डिवाइस के ब्यौरे की गलत जानकारी मिलती है.
WEAVE_NO_ERROR
सफलता पर.
other
Weave या प्लैटफ़ॉर्म के हिसाब से किसी गड़बड़ी के कोड से पता चलता है कि कोई ऐसी गड़बड़ी हुई है जिसकी वजह से, TLV को डिकोड नहीं किया जा सका.

DecodeText

WEAVE_ERROR DecodeText(
  const char *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

यह दिए गए टेक्स्ट डेटा बफ़र के कॉन्टेंट को Weave डिवाइस डिस्क्रिप्टर ऑब्जेक्ट में डिकोड करता है.

ब्यौरा
पैरामीटर
[in] data
बफ़र का पॉइंटर, जिसमें टेक्स्ट एन्कोड किया गया Weave डिवाइस का ब्यौरा देने वाला डेटा मौजूद है.
[in] dataLen
दिए गए बफ़र की लंबाई.
[out] outDesc
डिवाइस की जानकारी देने वाले ऑब्जेक्ट का रेफ़रंस, जिसमें जानकारी अपने-आप भरी जानी है.
रिटर्न वैल्यू
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
अगर कोड में बदला गया डेटा वर्शन काम नहीं करता है.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
अगर कोड में बदले डेटा को सही तरीके से फ़ॉर्मैट नहीं किया गया है.
WEAVE_ERROR_INCORRECT_STATE
अगर डिकोडर को कोई अलग स्थिति मिलती है.
WEAVE_ERROR_BUFFER_TOO_SMALL
अगर डिकोडिंग के दौरान बफ़र खत्म हो जाता है.
WEAVE_NO_ERROR
सफलता पर.

EncodeTLV

WEAVE_ERROR EncodeTLV(
  const WeaveDeviceDescriptor & desc,
  uint8_t *buf,
  uint32_t bufLen,
  uint32_t & outEncodedLen
)

दिए गए डिवाइस डिस्क्रिप्टर को, दिए गए बफ़र में लिखे गए Weave TLV के रूप में एन्कोड करता है.

ब्यौरा
पैरामीटर
[in] desc
कोड में बदलने के लिए Weave डिवाइस के ब्यौरे का रेफ़रंस.
[out] buf
बफ़र का पॉइंटर जहां कोड में बदला गया टेक्स्ट लिखा जाएगा.
[in] bufLen
दिए गए बफ़र की लंबाई.
[out] outEncodedLen
लंबाई वाले वैरिएबल का रेफ़रंस, जिसे बफ़र में लिखे गए वर्णों की संख्या से ओवरराइट कर दिया जाएगा.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
other
Weave या प्लैटफ़ॉर्म के हिसाब से किसी गड़बड़ी के कोड से पता चलता है कि TLV को कोड में बदलने में कोई गड़बड़ी हुई है.

EncodeTLV

WEAVE_ERROR EncodeTLV(
  const WeaveDeviceDescriptor & desc,
  nl::Weave::TLV::TLVWriter & writer
)

दिए गए डिवाइस डिस्क्रिप्टर को, पहले से शुरू किए गए TLVWriter ऑब्जेक्ट का इस्तेमाल करके, Weave TLV के रूप में एन्कोड करता है.

इसका इस्तेमाल, बड़े TLV आउटपुट में डिवाइस की जानकारी जोड़ने के लिए किया जाता है.

ब्यौरा
पैरामीटर
[in] desc
कोड में बदलने के लिए Weave डिवाइस के ब्यौरे का रेफ़रंस.
[in] writer
पहले से शुरू किए गए TLVWriter ऑब्जेक्ट का रेफ़रंस, जिसे इस्तेमाल किया जाना है.
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफलता पर.
other
Weave या प्लैटफ़ॉर्म के हिसाब से किसी गड़बड़ी के कोड से पता चलता है कि TLV को कोड में बदलने में कोई गड़बड़ी हुई है.

EncodeText

WEAVE_ERROR EncodeText(
  const WeaveDeviceDescriptor & desc,
  char *buf,
  uint32_t bufLen,
  uint32_t & outEncodedLen
)

दिए गए डिवाइस डिस्क्रिप्टर को, दिए गए बफ़र में लिखे गए टेक्स्ट के तौर पर एन्कोड करता है.

ब्यौरा
पैरामीटर
[in] desc
कोड में बदलने के लिए Weave डिवाइस के ब्यौरे का रेफ़रंस.
[out] buf
बफ़र का पॉइंटर जहां कोड में बदला गया टेक्स्ट लिखा जाएगा.
[in] bufLen
दिए गए बफ़र की लंबाई.
[out] outEncodedLen
लंबाई वाले वैरिएबल का रेफ़रंस, जिसे बफ़र में लिखे गए वर्णों की संख्या से ओवरराइट कर दिया जाएगा.
रिटर्न वैल्यू
WEAVE_ERROR_BUFFER_TOO_SMALL
अगर दिया गया बफ़र, जनरेट किए गए टेक्स्ट की जानकारी के हिसाब से बहुत छोटा है.
WEAVE_ERROR_INVALID_ARGUMENT
अगर कोई डिस्क्रिप्टर फ़ील्ड अमान्य है.
WEAVE_NO_ERROR
सफलता पर.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

देखें कि तय किए गए बफ़र में सिर्फ़ शून्य हैं.

ब्यौरा
पैरामीटर
[in] buf
बफ़र का पॉइंटर.
[in] len
बफ़र की लंबाई.
रिटर्न वैल्यू
TRUE
अगर बफ़र में सिर्फ़ शून्य हैं.
FALSE
अगर बफ़र में कोई गैर-शून्य मान होता है.