nl:: बुना::प्रोफ़ाइलें::डिवाइस का ब्यौरा::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 डिवाइस डिस्क्रिप्टर ऑब्जेक्ट में डिकोड करता है.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
पहले से शुरू किए गए TLVReader का इस्तेमाल करके डिवाइस की जानकारी को डिकोड करता है.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
दिए गए टेक्स्ट डेटा के बफ़र की सामग्री को वीव डिवाइस डिस्क्रिप्टर ऑब्जेक्ट में डिकोड करता है.
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

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

kMaxSerialNumberLength

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

kMaxSoftwareVersionLength

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

@181

 @181

सुविधा फ़्लैग, डिवाइस की खास क्षमताओं की जानकारी देते हैं.

प्रॉपर्टी
kFeature_HomeAlarmLinkCapable

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

kFeature_LinePowered

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

@182 नंबर

 @182

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

प्रॉपर्टी
kFlag_IsRendezvousWiFiESSIDSuffix

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

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

दिन वाला मोड

uint8_t Day

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

डिवाइस की सुविधाएं

uint32_t DeviceFeatures

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

डिवाइस आईडी

uint64_t DeviceId

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

फ़ैब्रिक आईडी

uint64_t FabricId

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

झंडे

uint8_t Flags

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

मैन्युफ़ैक्चरिंग की तारीख

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

महीना

uint8_t Month

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

पेयरिंग कोड

char PairingCode[kMaxPairingCodeLength+1]

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

अपने डिवाइस के साथ काम करने के साथ काम करने वाला वर्शन वर्शन मेजर

uint16_t PairingCompatibilityVersionMajor

डिवाइस के साथ पेयर करने वाले मुख्य सॉफ़्टवेयर वर्शन.

दूसरे डिवाइस से जोड़ने की सुविधा

uint16_t PairingCompatibilityVersionMinor

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

मुख्य802154MACपता

uint8_t Primary802154MACAddress[8]

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

मुख्य वाई-फ़ाईमैक पता

uint8_t PrimaryWiFiMACAddress[6]

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

प्रॉडक्ट आईडी

uint16_t ProductId

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

प्रॉडक्ट में बदलाव

uint16_t ProductRevision

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

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

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

सीरियल नंबर

char SerialNumber[kMaxSerialNumberLength+1]

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

सॉफ़्टवेयर वर्शन

char SoftwareVersion[kMaxSoftwareVersionLength+1]

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

वेंडरआईडी

uint16_t VendorId

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

साल

uint16_t Year

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

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

साफ़ मौसम

void Clear(
  void
)

डिवाइस के ब्यौरे को मिटा दिया जाता है.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

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

डिकोड करें

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

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

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

डिकोड करें

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

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

ब्यौरा
पैरामीटर
[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 को कोड करने के दौरान कोई गड़बड़ी हुई.

डिकोड करें

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 को डीकोड नहीं किया जा सका.

डिकोड टेक्स्ट

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

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

ब्यौरा
पैरामीटर
[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
सफल रहा.

एनकोडटीएलवी

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 को कोड करने के दौरान कोई गड़बड़ी हुई.

एनकोडटीएलवी

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 को कोड करने के दौरान कोई गड़बड़ी हुई.

कोड में बदलने का तरीका

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
अगर बफ़र में कोई ऐसी वैल्यू है जो शून्य नहीं है.