nl::Weave::TLV

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

ملخّص

Weave 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
تعرض القيمة true إذا كانت العلامة المقدّمة خاصة بسياق.
IsProfileTag(uint64_t tag)
bool
عرض true للعلامة المقدّمة هو علامة خاصة بالملف الشخصي.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
تعرض القيمة true إذا كان نوع 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
تعرض القيمة true إذا كان النوع TLV المحدَّد يشير إلى توفُّر حقل طول مرتبط به.
TLVTypeHasValue(uint8_t type)
bool
تعرض القيمة true إذا كان نوع TLV المحدَّد يشير إلى توفُّر حقل قيمة مرتبط.
TLVTypeIsContainer(uint8_t type)
bool
تعرض القيمة "صحيح" إذا كان نوع TLV المحدَّد حاوية.
TLVTypeIsString(uint8_t type)
bool
تعرض القيمة true إذا كان نوع 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::Debug

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

nl::Weave::TLV::Utilities

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

عمليات التعداد

71@

 @71

73@

 @73

74@

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

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

عنصر مجهول).

75@

 @75

TLVCommonProfiles

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

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

ينطبق ذلك في الأساس على قيمة kWeaveProfile_NotSpecified في WeaveProfiles.h.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 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() المرتبطة بكائن القارئ.

sTagSizes

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

الدوال

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

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

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

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

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

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

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

تعرض القيمة true إذا كانت العلامة المقدّمة خاصة بسياق.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

عرض true للعلامة المقدّمة هو علامة خاصة بالملف الشخصي.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

تعرض القيمة true إذا كان نوع TLV المحدَّد صالحًا.

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

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

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

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

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

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

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

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

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

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

ProfileTag

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
)

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

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

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

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

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

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

تعرض القيمة "صحيح" إذا كان نوع TLV المحدَّد حاوية.

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

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

تعرض القيمة true إذا كان نوع 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 خاصة بالملف الشخصي.
المرتجعات
رقم تعريف المورّد المرتبط