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
شناسه دستگاه بافت (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
آدرس MAC برای رابط اصلی 802.15.4 (big-endian، همه صفر = وجود ندارد)
PrimaryWiFiMACAddress [6]
uint8_t
آدرس MAC برای رابط WiFi اولیه (big-endian، همه صفر = وجود ندارد)
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 Device Descriptor رمزگشایی می کند.
DecodeTLV (const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
محتویات بافر داده TLV ارائه شده را در یک شی Weave Device Descriptor رمزگشایی می کند.
DecodeTLV ( nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
توضیحات دستگاه را با استفاده از TLVReader از پیش راه اندازی شده ارائه شده رمزگشایی می کند.
DecodeText (const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
محتویات بافر داده متنی ارائه شده را در یک شی Weave Device Descriptor رمزگشایی می کند.
EncodeTLV (const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
توصیفگر دستگاه ارائه شده را به صورت Weave TLV که در بافر ارائه شده نوشته شده است، رمزگذاری می کند.
EncodeTLV (const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
توصیفگر دستگاه ارائه شده را به صورت Weave TLV که با استفاده از شی TLVWriter از پیش مقداردهی شده ارائه شده نوشته شده است، رمزگذاری می کند.
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 WiFi برای طول قرار ملاقات.

kMaxSerialNumberLength

حداکثر طول شماره سریال

kMaxSoftwareVersionLength

حداکثر طول نسخه نرم افزار.

@181

 @181

دارای پرچم هایی که قابلیت های دستگاه خاص را نشان می دهد.

خواص
kFeature_HomeAlarmLinkCapable

Nest Protect را نشان می دهد که از اتصال به پانل زنگ خانه پشتیبانی می کند.

kFeature_LinePowered

دستگاهی را نشان می دهد که به برق خط نیاز دارد.

@182

 @182

تعاریف فیلد را پرچم گذاری می کند.

خواص
kFlag_IsRendezvousWiFiESSIDSuffix

نشان می دهد که مقدار RendezvousWiFiESSID یک رشته پسوندی است که در انتهای ESSID شبکه قرار ملاقات WiFi دستگاه ظاهر می شود.

صفات عمومی

روز

uint8_t Day

روز ساخت دستگاه (0 = موجود نیست)

ویژگی های دستگاه

uint32_t DeviceFeatures

فیلد بیتی که نشان دهنده پشتیبانی از ویژگی های خاص دستگاه است.

شناسه دستگاه

uint64_t DeviceId

شناسه دستگاه بافت (0 = موجود نیست)

FabricId

uint64_t FabricId

شناسه پارچه بافتی که دستگاه به آن تعلق دارد (0 = موجود نیست)

پرچم ها

uint8_t Flags

فیلد بیت حاوی اطلاعات اضافی درباره دستگاه.

تاریخ تولید

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

نسخه سازگاری نرم افزار جفت سازی جزئی دستگاه.

آدرس اصلی802154MACA

uint8_t Primary802154MACAddress[8]

آدرس MAC برای رابط اصلی 802.15.4 (big-endian، همه صفر = وجود ندارد)

آدرس WiFiMACA اولیه

uint8_t PrimaryWiFiMACAddress[6]

آدرس MAC برای رابط WiFi اولیه (big-endian، همه صفر = وجود ندارد)

شناسه محصول

uint16_t ProductId

کد محصول دستگاه (0 = موجود نیست)

ProductRevision

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 Device Descriptor رمزگشایی می کند.

جزئیات
مولفه های
[in] data
اشاره‌گر به بافر حاوی متن یا داده‌های Weave Device Descriptor با کد TLV .
[in] dataLen
طول بافر ارائه شده
[out] outDesc
ارجاع به شی Device Descriptor که باید پر شود.
ارزش های بازگشتی
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
اگر بافر ارائه شده نامعتبر باشد.
WEAVE_NO_ERROR
در مورد موفقیت
other
سایر کدهای خطای خاص Weave یا پلتفرم که نشان می دهد خطایی در جلوگیری از رمزگشایی TLV رخ داده است.

رمزگشایی TLV

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

محتویات بافر داده TLV ارائه شده را در یک شی Weave Device Descriptor رمزگشایی می کند.

جزئیات
مولفه های
[in] data
اشاره گر به یک بافر حاوی متن رمزگذاری شده با داده های Weave Device Descriptor.
[in] dataLen
طول بافر ارائه شده
[out] outDesc
ارجاع به شی Device Descriptor که باید پر شود.
ارزش های بازگشتی
WEAVE_ERROR_WRONG_TLV_TYPE
اگر این توضیحات دستگاه TLV نیست.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
اگر بعد از Device Description با داده های TLV بیشتری مواجه شد.
WEAVE_NO_ERROR
در مورد موفقیت
other
سایر کدهای خطای Weave یا پلتفرم خاص که نشان می دهد خطایی در جلوگیری از رمزگذاری TLV رخ داده است.

رمزگشایی TLV

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

توضیحات دستگاه را با استفاده از TLVReader از پیش راه اندازی شده ارائه شده رمزگشایی می کند.

جزئیات
مولفه های
[in] reader
ارجاع به TLVReader از قبل راه اندازی شده.
[out] outDesc
ارجاع به شی Device Descriptor که باید پر شود.
ارزش های بازگشتی
WEAVE_ERROR_INVALID_TLV_ELEMENT
اگر اطلاعات Device Description نامعتبر در داده های TLV یافت شود.
WEAVE_NO_ERROR
در مورد موفقیت
other
سایر کدهای خطای Weave یا پلتفرم خاص که نشان می دهد خطایی رخ داده است که از رمزگشایی TLV جلوگیری می کند.

رمزگشایی متن

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

محتویات بافر داده متنی ارائه شده را در یک شی Weave Device Descriptor رمزگشایی می کند.

جزئیات
مولفه های
[in] data
اشاره گر به یک بافر حاوی متن رمزگذاری شده با داده های Weave Device Descriptor.
[in] dataLen
طول بافر ارائه شده
[out] outDesc
ارجاع به شی Device Descriptor که باید پر شود.
ارزش های بازگشتی
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 Device Descriptor برای رمزگذاری.
[out] buf
اشاره گر به بافری که متن کدگذاری شده در آن نوشته خواهد شد.
[in] bufLen
طول بافر عرضه شده
[out] outEncodedLen
اشاره ای به متغیر طول که با تعداد کاراکترهای نوشته شده در بافر بازنویسی می شود.
ارزش های بازگشتی
WEAVE_NO_ERROR
در مورد موفقیت
other
سایر کدهای خطای Weave یا پلتفرم خاص که نشان می دهد خطایی در جلوگیری از رمزگذاری TLV رخ داده است.

EncodeTLV

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

توصیفگر دستگاه ارائه شده را به صورت Weave TLV که با استفاده از شی TLVWriter از پیش مقداردهی شده ارائه شده نوشته شده است، رمزگذاری می کند.

این برای افزودن توضیحات دستگاه به خروجی TLV بزرگتر استفاده می شود.

جزئیات
مولفه های
[in] desc
ارجاع به Weave Device Descriptor برای رمزگذاری.
[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 Device Descriptor برای رمزگذاری.
[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
اگر بافر حاوی مقادیر غیر صفر باشد.