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
تؤدي إلى إرجاع "صحيح" للعلامة المقدّمة هي علامة خاصة بالملف الشخصي.
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
يتم عرض "صحيح" إذا كان نوع 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::Debug

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

nl::Weave::TLV::Utilities

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

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

@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
)

تؤدي إلى إرجاع "صحيح" للعلامة المقدّمة هي علامة خاصة بالملف الشخصي.

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
)

يتم عرض "صحيح" إذا كان نوع 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.

TLVTypeIsString

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 خاصة بالملف الشخصي.
المرتجعات
معرّف المورّد المرتبط