nl::Weave::TLV

הגדרות לעבודה עם נתונים שמקודדים בפורמט Weave TLV.

סיכום

TLV היא שיטת קידוד כללית לנתונים מובְנים פשוטים. הוא חולק מאפיינים רבים עם פורמט הפורמט המקובל של JSON בהמשכים, אבל הוא קומפקטי יותר ביחס לחוט.

ערכים של ספירה

@71 טיפוסים בני מנייה (enum)
@73 טיפוסים בני מנייה (enum)
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
טיפוסים בני מנייה (enum)
@75 טיפוסים בני מנייה (enum)
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
טיפוסים בני מנייה (enum)
TLVElementType טיפוסים בני מנייה (enum)
TLVFieldSize טיפוסים בני מנייה (enum)
TLVTagControl טיפוסים בני מנייה (enum)
TLVTagFields טיפוסים בני מנייה (enum)
TLVType טיפוסים בני מנייה (enum)
ספירה של הסוג של רכיב 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
יוצרת את ייצוג ה-API של תג TLV של פרופיל נפוץ.
ContextTag(uint8_t tagNum)
uint64_t
יוצר את ייצוג ה-API של תג 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
יוצרת את ייצוג ה-API של תג TLV ספציפי לפרופיל ממזהה פרופיל ומספר תג.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
יוצרת את ייצוג ה-API של תג 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
הפונקציה מחזירה true אם סוג 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

מנתח נתונים יעיל בזיכרון לקידוד נתונים בפורמט TLV של Weave.

nl::Weave::TLV::TLVUpdater

ממשק מאוחד של Reader/Writer לעריכה, להוספה או למחיקה של רכיבים בקידוד TLV.

nl::Weave::TLV::TLVWriter

מקודד יעיל בזיכרון לכתיבת נתונים בפורמט TLV של Weave.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer מספק אחסון מעגלי עבור nl::Weave::TLV::TLVWriter ו-nl::Weave::TLVTLVReader.

מרחבי שמות

nl::Weave::TLV::Debug

מרחב השמות הזה כולל סוגים וממשקים לניפוי באגים ולרישום ביומן ב-Weave TLV.

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. כשקוראים ל-method, האובייקט של הקורא שסופק ימוקם ברכיב המקור 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
)

יוצרת את ייצוג ה-API של תג TLV של פרופיל נפוץ.

פרטים
פרמטרים
[in] tagNum
המספר של תג הפרופיל המשותף שהוקצה לתג.
החזרות
מספר שלם בגרסת 64 ביט שמייצג את התג.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

יוצר את ייצוג ה-API של תג 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
ייצוג ה-API של תג TLV ספציפי לפרופיל.
החזרות
מזהה הפרופיל.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

הפונקציה מחזירה את מספר הפרופיל מתג TLV.

פרטים
פרמטרים
[in] tag
ייצוג ה-API של תג TLV ספציפי לפרופיל.
החזרות
מספר הפרופיל המשויך.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

יוצרת את ייצוג ה-API של תג TLV ספציפי לפרופיל ממזהה פרופיל ומספר תג.

פרטים
פרמטרים
[in] profileId
מזהה הפרופיל שבו מוגדר התג.
[in] tagNum
מספר התג הספציפי לפרופיל שהוקצה לתג.
החזרות
מספר שלם בגרסת 64 ביט שמייצג את התג.

ProfileTag

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

יוצרת את ייצוג ה-API של תג 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
)

הפונקציה מחזירה true אם סוג 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
ייצוג ה-API של תג TLV ספציפי לפרופיל או ספציפי להקשר.
החזרות
מספר התג המשויך.
מידע נוסף זמין גם:
IsProfileTag() ו-IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

הפונקציה מחזירה את מזהה הספק מתוך תג TLV.

פרטים
פרמטרים
[in] tag
ייצוג ה-API של תג TLV ספציפי לפרופיל.
החזרות
מזהה הספק המשויך.