nl:: Weave:: TLV
คํานิยามสําหรับการทํางานกับข้อมูลที่เข้ารหัสในรูปแบบ Weave TLV
สรุป
Weave TLV คือวิธีการเข้ารหัสทั่วไปสําหรับข้อมูลที่มีโครงสร้างแบบง่าย โดยแชร์พร็อพเพอร์ตี้หลายรายการด้วยรูปแบบอนุกรม JSON ที่ใช้กันทั่วไปซึ่งกระชับกว่าการใช้สาย
การแจกแจง |
|
---|---|
@71
|
enum |
@73
|
enum |
@74{
|
enum |
@75
|
enum |
TLVCommonProfiles{
|
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
แสดงผลเป็น "จริง" หากแท็กที่ระบุเป็นแท็กเฉพาะบริบท
|
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
สร้างการนําเสนอ 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
แสดงผลเป็น "จริง" หากประเภท TLV ที่ระบุบ่งชี้ว่ามีช่องความยาวที่เชื่อมโยง
|
TLVTypeHasValue(uint8_t type)
|
bool
แสดงผลเป็น "จริง" หากประเภท TLV ที่ระบุบ่งชี้ว่ามีช่องค่าที่เชื่อมโยง
|
TLVTypeIsContainer(uint8_t type)
|
bool
แสดงผลเป็น "จริง" หากประเภท TLV ที่ระบุเป็นคอนเทนเนอร์
|
TLVTypeIsString(uint8_t type)
|
bool
แสดงผลเป็น "จริง" หากประเภท TLV ที่ระบุเป็นสตริง UTF8 หรือไบต์
|
TagNumFromTag(uint64_t tag)
|
uint32_t
แสดงหมายเลขแท็กจากแท็ก TLV
|
VendorIdFromTag(uint64_t tag)
|
uint16_t
แสดงรหัสผู้ให้บริการจากแท็ก TLV
|
ชั้นเรียน |
|
---|---|
nl:: |
|
nl:: |
|
nl:: |
ใช้โปรแกรมแยกวิเคราะห์หน่วยความจําที่มีประสิทธิภาพสําหรับข้อมูลที่เข้ารหัสในรูปแบบ Weave TLV |
nl:: |
รวมอินเทอร์เฟซ Reader/Writer แบบรวมสําหรับการแก้ไข/การเพิ่ม/ลบองค์ประกอบในการเข้ารหัส TLV |
nl:: |
มีโปรแกรมเปลี่ยนไฟล์สําหรับหน่วยความจําที่มีประสิทธิภาพสําหรับเขียนข้อมูลในรูปแบบ Weave TLV |
nl:: |
WeaveCircularTLVBuffer มีพื้นที่เก็บข้อมูลแบบวงกลมสําหรับ nl::Weave::TLV::TLVWriter และ nl::Weave::TLVTLVReader |
เนมสเปซ |
|
---|---|
nl:: |
เนมสเปซนี้จะมีประเภทและอินเทอร์เฟซสําหรับการแก้ไขข้อบกพร่องและการบันทึก Weave TLV |
nl:: |
เนมสเปซนี้ประกอบด้วยประเภทและอินเทอร์เฟซยูทิลิตีสําหรับการจัดการและทํางานกับ Weave TLV |
การแจกแจง
@71
@71
@73
@73
@74
@74
พร็อพเพอร์ตี้ | |
---|---|
AnonymousTag
|
ค่าที่บ่งบอกองค์ประกอบ TLV ซึ่งไม่มีแท็ก (เช่น องค์ประกอบที่ไม่ระบุตัวตน) |
@75
@75
TLVCommonProfiles
TLVCommonProfiles
พร็อพเพอร์ตี้ | |
---|---|
kProfileIdNotSpecified
|
ใช้เพื่อระบุการไม่มีรหัสโปรไฟล์ในตัวแปรหรือสมาชิก ซึ่งเหมือนกับ kWeaveProfile_NotSpecified ที่กําหนดไว้ใน WeaveProfiles.h |
ประเภทองค์ประกอบ TLV
TLVElementType
ขนาดช่องขนาด TLV
TLVFieldSize
การควบคุมแท็ก TLVTag
TLVTagControl
ช่องแท็ก TLVTag
TLVTagFields
ตัวแปร
ขนาด WeaveTLVChChsize
const size_t kWeaveTLVCopyChunkSize = 16
คัดลอกองค์ประกอบ TLV จากออบเจ็กต์ผู้อ่านไปยังผู้เขียน
เมธอดการคัดลอกองค์ประกอบ() จะเข้ารหัสองค์ประกอบ TLV ใหม่ที่มีประเภทและค่าจากออบเจ็กต์ TLVReader เมื่อมีการเรียกใช้เมธอด ออบเจ็กต์การอ่านที่ระบุจะอยู่ในตําแหน่งขององค์ประกอบ TLV ต้นทาง องค์ประกอบที่เข้ารหัสใหม่จะมีประเภทและเนื้อหาเหมือนกับคอนเทนเนอร์อินพุต อย่างไรก็ตาม แท็กจะตั้งค่าเป็นอาร์กิวเมนต์ที่ระบุ หากองค์ประกอบที่ระบุเป็นคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ระบบจะคัดลอกเนื้อหาทั้งหมดของคอนเทนเนอร์นั้น
รายละเอียด | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||||
แสดงผลค่า |
|
ขนาดแท็ก
const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }
ฟังก์ชัน
แท็กทั่วไป
uint64_t CommonTag( uint32_t tagNum )
สร้างการนําเสนอ API ของแท็ก TLV ของโปรไฟล์ทั่วไป
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
จํานวนเต็ม 64 บิตสําหรับใช้แท็ก
|
แท็กบริบท
uint64_t ContextTag( uint8_t tagNum )
สร้างการนําเสนอ API สําหรับแท็ก TLV เฉพาะบริบท
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
จํานวนเต็ม 64 บิตสําหรับใช้แท็ก
|
ขนาด GetTLVField
TLVFieldSize GetTLVFieldSize( uint8_t type )
แท็ก IsContext
bool IsContextTag( uint64_t tag )
แสดงผลเป็น "จริง" หากแท็กที่ระบุเป็นแท็กเฉพาะบริบท
แท็ก IsProfile
bool IsProfileTag( uint64_t tag )
แสดงผลเป็น "จริง" ของแท็กที่ระบุเป็นแท็กเฉพาะโปรไฟล์
แท็กพิเศษ
bool IsSpecialTag( uint64_t tag )
IsTypeTLVType
bool IsValidTLVType( uint8_t type )
ProfileIdFromTag
uint32_t ProfileIdFromTag( uint64_t tag )
โปรไฟล์จากแท็ก
uint16_t ProfileNumFromTag( uint64_t tag )
แท็กโปรไฟล์
uint64_t ProfileTag( uint32_t profileId, uint32_t tagNum )
สร้างการนําเสนอ API ของแท็ก TLV เฉพาะโปรไฟล์จากรหัสโปรไฟล์และหมายเลขแท็ก
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
การคืนสินค้า |
จํานวนเต็ม 64 บิตสําหรับใช้แท็ก
|
แท็กโปรไฟล์
uint64_t ProfileTag( uint16_t vendorId, uint16_t profileNum, uint32_t tagNum )
สร้างการนําเสนอ API ของแท็ก TLV เฉพาะโปรไฟล์จากรหัสผู้ให้บริการ หมายเลขโปรไฟล์ และหมายเลขแท็ก
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การคืนสินค้า |
จํานวนเต็ม 64 บิตสําหรับใช้แท็ก
|
TLVFieldSizeToBytes
uint8_t TLVFieldSizeToBytes( TLVFieldSize fieldSize )
TLVTypeHasLength
bool TLVTypeHasLength( uint8_t type )
ค่า TLVTypeHasValue
bool TLVTypeHasValue( uint8_t type )
TLVTypeIsContainer
bool TLVTypeIsContainer( uint8_t type )
TLVTypeIsString
bool TLVTypeIsString( uint8_t type )
แท็กจากแท็ก
uint32_t TagNumFromTag( uint64_t tag )
แสดงหมายเลขแท็กจากแท็ก TLV
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
หมายเลขแท็กที่เกี่ยวข้อง
|
IsProfileTag() และ IsContextTag()