nl:: Weave:: TLV

تعريفات للعمل مع بيانات مشفّرة بتنسيق Weave TLV.

الملخّص

Weav TLV هي طريقة ترميز عامة للبيانات المنظَّمة البسيطة. وتشارك العديد من الخصائص بتنسيق تسلسل JSON شائع الاستخدام مع زيادة كثافة السلك بشكل كبير.

تعداد

@71 تعداد
@73 تعداد
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
تعداد
@75 تعداد
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
تعداد
TLVElementType تعداد
TLVFieldSize تعداد
TLVTagControl تعداد
TLVTagFields تعداد
TLVType تعداد
تعداد يحدد نوع عنصر TLV.

المتغيّرات

kWeaveTLVCopyChunkSize = 16
const size_t
لنسخ عنصر TLV من كائن قارئ إلى المؤلف.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

الدوال

CommonTag(uint32_t tagNum)
uint64_t
إنشاء تمثيل واجهة برمجة التطبيقات لعلامة ملف شخصي شائعة TLV
ContextTag(uint8_t tagNum)
uint64_t
تنشئ تمثيل واجهة برمجة التطبيقات لعلامة TLV المتعلقة بالسياق.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
عرض "صحيح" إذا كانت العلامة التي تم توفيرها هي علامة خاصة بالسياق.
IsProfileTag(uint64_t tag)
bool
تعرض القيمة "صحيح" للعلامة المقدَّمة علامة خاصة بالملف الشخصي.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
عرض "صحيح" إذا كان نوع TLV المحدّد صالحًا.
ProfileIdFromTag(uint64_t tag)
uint32_t
عرض معرّف الملف الشخصي من علامة TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
عرض رقم الملف الشخصي من علامة TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
يتم إنشاء تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي من معرّف الملف الشخصي ورقم العلامة.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
إنشاء تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي من معرّف المورّد ورقم الملف الشخصي ورقم العلامة.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
عرض "صحيح" إذا كان النوع TLV المحدّد يشير إلى توفّر حقل طول مرتبط.
TLVTypeHasValue(uint8_t type)
bool
عرض "صحيح" إذا كان النوع TLV المحدّد يشير إلى توفّر حقل قيمة مرتبط.
TLVTypeIsContainer(uint8_t type)
bool
لعرض true إذا كان نوع TLV المحدّد حاوية.
TLVTypeIsString(uint8_t type)
bool
عرض "صحيح" إذا كان نوع TLV المحدّد هو سلسلة UTF8 أو بايت.
TagNumFromTag(uint64_t tag)
uint32_t
لعرض رقم العلامة من علامة TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
عرض رقم تعريف المورِّد من علامة TLV.

صفوف

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

توفّر محلّل فعّال للذاكرة للبيانات المشفّرة بتنسيق Weave TLV.

nl::Weave::TLV::TLVUpdater

توفّر واجهة قارئ/كاتب موحّدة لتعديل/إضافة/حذف العناصر في ترميز TLV.

nl::Weave::TLV::TLVWriter

يوفّر برنامج ترميز فعّالاً للذاكرة لكتابة البيانات بتنسيق Weave TLV.

nl::Weave::TLV::WeaveCircularTLVBuffer

يوفر WeaveCircularTLVBuffer سعة تخزين دائرية لـ nl::Weave::TLV::TLVWriter وnl::Weave::TLVTLVReader.

مساحات الأسماء

nl::Weave::TLV::تصحيح الأخطاء

تشمل مساحة الاسم هذه الأنواع والواجهات لتصحيح الأخطاء وتسجيل Weave TLV.

nl::Weave::TLV::الأدوات المساعدة

تتضمن مساحة الاسم هذه أنواع وواجهات برامج الخدمات لإدارة والتعامل مع Weave TLV.

تعداد

@71

 @71

@73

 @73

@74

 @74
أماكن إقامة
AnonymousTag

قيمة تشير إلى عنصر TLV بدون علامة (أي

كعنصر مجهول).

@75

 @75

ملفات TLVCommonProfiles

 TLVCommonProfiles
أماكن إقامة
kProfileIdNotSpecified

يُستخدم للإشارة إلى عدم توفّر معرّف ملف شخصي في متغيّر أو عضو.

ويُعد هذا الأمر في الأساس مماثلاً لما تم تحديده في kWeaveProfile_NotSpecified في WeaveProfiles.h

نوع العنصر TLV

 TLVElementType

حجم TLVField

 TLVFieldSize

حملة TLVTag

 TLVTagControl

حقول TLVTag

 TLVTagFields

نوع TLV

 TLVType

تعداد يحدد نوع عنصر TLV.

المتغيّرات

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

لنسخ عنصر TLV من كائن قارئ إلى المؤلف.

وتعمل طريقة CopyElement() على ترميز عنصر TLV جديد يتم الحصول على نوعه وقيمته من عنصر TLVReader. عندما يتم استدعاء الطريقة، من المتوقع أن يتم وضع كائن القارئ الذي تم توفيره على العنصر المصدر TLV. وسيتضمّن العنصر المشفّر حديثًا النوع نفسه ومحتواه لحاوية الإدخال، ولكن سيتم ضبط العلامة على الوسيطة المحدّدة. إذا كان العنصر المزوّد حاوية TLV (بنية أو مصفوفة أو مسار)، سيتم نسخ محتوى الحاوية بالكامل.

التفاصيل
المعلَمات
[in] tag
علامة TLV المراد ترميزها باستخدام الحاوية أو AnonymousTag إذا كان يجب ترميز الحاوية بدون علامة. يجب إنشاء قيم العلامات باستخدام إحدى وظائف تعريف العلامة ProfileTag() أو ContextTag() أو CommonTag().
[in] reader
مرجع إلى عنصر TLVReader يحدّد عنصر TLV تمّ ترميزه مُسبقًا ويجب نسخ نوعه وقيمته.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INCORRECT_STATE
إذا لم يتم ضبط موضع القارئ الذي تم توفيره في عنصر.
WEAVE_ERROR_TLV_CONTAINER_OPEN
في حال تم فتح كاتب حاوية على الكاتب الحالي ولم يتم إغلاقها بعد.
WEAVE_ERROR_TLV_UNDERRUN
في حال انتهى ترميز TLV الأساسي المرتبط بالقارئ الذي تم تقديمه قبل أوانه.
WEAVE_ERROR_INVALID_TLV_ELEMENT
إذا واجه القارئ المُقدَّم نوع عنصر TLV غير صالح أو غير متوافق.
WEAVE_ERROR_INVALID_TLV_TAG
إذا صادف القارئ الذي تم تقديمه علامة TLV في سياق غير صالح، أو إذا كانت العلامة التي تم تقديمها غير صالحة أو غير ملائمة في السياق الذي تتم فيه كتابة الحاوية الجديدة.
WEAVE_ERROR_BUFFER_TOO_SMALL
إذا كانت القيمة ستتجاوز الحد الأقصى لعدد وحدات البايت التي تم تحديدها عند إعداد الكاتب.
WEAVE_ERROR_NO_MEMORY
إذا فشلت محاولة تخصيص المخزن المؤقت للمخرجات بسبب عدم توفّر مساحة كافية في الذاكرة.
other
أخطاء أخرى من Weave أو متعلقة بالأنظمة الأساسية تظهر من خلال دالة GetNewBuffer() أو FinalizeBuffer()، أو من خلال دالة GetNextBuffer() المرتبطة بكائن القارئ.

أحجام علامات

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

الدوال

العلامة المشتركة

uint64_t CommonTag(
  uint32_t tagNum
)

إنشاء تمثيل واجهة برمجة التطبيقات لعلامة ملف شخصي شائعة TLV

التفاصيل
المعلَمات
[in] tagNum
رقم علامة الملف الشخصي الشائعة المخصّصة للعلامة
المرتجعات
عدد صحيح 64 بت يمثّل العلامة

علامة السياق

uint64_t ContextTag(
  uint8_t tagNum
)

تنشئ تمثيل واجهة برمجة التطبيقات لعلامة TLV المتعلقة بالسياق.

التفاصيل
المعلَمات
[in] tagNum
رقم العلامة الخاصة بالسياق والمُخصَّصة للعلامة.
المرتجعات
عدد صحيح 64 بت يمثّل العلامة

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

علامة IsContextTag

bool IsContextTag(
  uint64_t tag
)

عرض "صحيح" إذا كانت العلامة التي تم توفيرها هي علامة خاصة بالسياق.

علامة الملف الشخصي

bool IsProfileTag(
  uint64_t tag
)

تعرض القيمة "صحيح" للعلامة المقدَّمة علامة خاصة بالملف الشخصي.

علامة خاصة

bool IsSpecialTag(
  uint64_t tag
)

نوع الصالحة TLV

bool IsValidTLVType(
  uint8_t type
)

عرض "صحيح" إذا كان نوع TLV المحدّد صالحًا.

التفاصيل
المرتجعات
true إذا كان نوع TLV المحدّد صالحًا، أو false.

رقم تعريف الملف الشخصي من

uint32_t ProfileIdFromTag(
  uint64_t tag
)

عرض معرّف الملف الشخصي من علامة TLV.

التفاصيل
المعلَمات
[in] tag
تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي.
المرتجعات
رقم تعريف الملف الشخصي.

الملف الشخصي من العلامة

uint16_t ProfileNumFromTag(
  uint64_t tag
)

عرض رقم الملف الشخصي من علامة TLV.

التفاصيل
المعلَمات
[in] tag
تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي.
المرتجعات
رقم الملف الشخصي المرتبط

علامة الملف الشخصي

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

يتم إنشاء تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي من معرّف الملف الشخصي ورقم العلامة.

التفاصيل
المعلَمات
[in] profileId
معرّف الملف الشخصي الذي يتم تحديد العلامة ضمنه.
[in] tagNum
رقم العلامة الخاص بالملف الشخصي الذي تم تخصيصه للعلامة.
المرتجعات
عدد صحيح 64 بت يمثّل العلامة

علامة الملف الشخصي

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

إنشاء تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي من معرّف المورّد ورقم الملف الشخصي ورقم العلامة.

التفاصيل
المعلَمات
[in] vendorId
رقم تعريف المورّد الذي حدّد العلامة.
[in] profileNum
حدّد المورّد رقمًا للملف الشخصي الذي يتم تحديد العلامة ضمنه.
[in] tagNum
رقم العلامة الخاص بالملف الشخصي الذي تم تخصيصه للعلامة.
المرتجعات
عدد صحيح 64 بت يمثّل العلامة

قناة TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

عرض "صحيح" إذا كان النوع TLV المحدّد يشير إلى توفّر حقل طول مرتبط.

التفاصيل
المرتجعات
true إذا كان النوع TLV المحدّد يشير إلى وجود حقل طول مرتبط، أو false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

عرض "صحيح" إذا كان النوع TLV المحدّد يشير إلى توفّر حقل قيمة مرتبط.

التفاصيل
المرتجعات
true إذا كان النوع TLV المحدّد يشير إلى توفّر حقل قيمة مرتبط، وبخلاف ذلك false.

TLVTypeIscontainer

bool TLVTypeIsContainer(
  uint8_t type
)

لعرض true إذا كان نوع TLV المحدّد حاوية.

التفاصيل
المرتجعات
true إذا كان نوع TLV المحدّد حاوية، وبخلاف ذلك false.

سلسلة TLV

bool TLVTypeIsString(
  uint8_t type
)

عرض "صحيح" إذا كان نوع TLV المحدّد هو سلسلة UTF8 أو بايت.

التفاصيل
المرتجعات
true إذا كان نوع TLV المحدّد هو سلسلة UTF8 أو بايت، أو false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

لعرض رقم العلامة من علامة TLV.

التفاصيل
المعلَمات
[in] tag
تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي أو سياق.
المرتجعات
رقم العلامة المرتبط به.
يُرجى الاطِّلاع أيضًا على:
IsProfileTag() وIsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

عرض رقم تعريف المورِّد من علامة TLV.

التفاصيل
المعلَمات
[in] tag
تمثيل واجهة برمجة التطبيقات لعلامة TLV خاصة بالملف الشخصي.
المرتجعات
رقم تعريف المورّد المرتبط.