nl::Dệt::TLV

Định nghĩa về cách làm việc với dữ liệu được mã hóa ở định dạng Weave TLV.

Tóm tắt

TLV là một phương pháp mã hóa chung dành cho dữ liệu có cấu trúc đơn giản. Định dạng này chia sẻ nhiều thuộc tính với định dạng tuần tự JSON thường dùng trong khi dùng gọn hơn đáng kể so với dây.

Bảng liệt kê

@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
Bảng liệt kê xác định loại phần tử TLV.

Biến

kWeaveTLVCopyChunkSize = 16
const size_t
Sao chép một phần tử TLV từ đối tượng người đọc vào tác giả.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Hàm

CommonTag(uint32_t tagNum)
uint64_t
Tạo đại diện API của thẻ TLV hồ sơ phổ biến.
ContextTag(uint8_t tagNum)
uint64_t
Tạo đại diện API cho thẻ TLV dành riêng cho ngữ cảnh.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Trả về true nếu thẻ được cung cấp là thẻ theo ngữ cảnh cụ thể.
IsProfileTag(uint64_t tag)
bool
Trả về true của thẻ được cung cấp là thẻ dành riêng cho hồ sơ.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định hợp lệ.
ProfileIdFromTag(uint64_t tag)
uint32_t
Trả về mã hồ sơ từ thẻ TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Trả về số cấu hình từ một thẻ TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Tạo đại diện API của thẻ TLV dành riêng cho hồ sơ từ mã hồ sơ và số thẻ.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Tạo đại diện API của thẻ TLV dành riêng cho hồ sơ từ mã nhà cung cấp, số hồ sơ và số thẻ.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định có nghĩa là có sự hiện diện của trường độ dài được liên kết.
TLVTypeHasValue(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định ngụ ý có trường giá trị được liên kết.
TLVTypeIsContainer(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định là vùng chứa.
TLVTypeIsString(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định là chuỗi UTF8 hoặc byte.
TagNumFromTag(uint64_t tag)
uint32_t
Trả về số thẻ của một thẻ TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Trả về mã nhà cung cấp từ thẻ TLV.

Lớp

nl::Weave::TLV::CirularTLV Reader
nl::Weave::TLV::CirularTLVWriter
nl::Weave::TLV::TLV Reader

Cung cấp một trình phân tích cú pháp hiệu quả về bộ nhớ cho dữ liệu được mã hóa ở định dạng Weave TLV.

nl::Weave::TLV::TLVUpdater

Cung cấp giao diện người đọc/trình ghi hợp nhất để chỉnh sửa/thêm/xóa các thành phần trong quá trình mã hóa TLV.

nl::Weave::TLV::TLVWriter

Cung cấp một bộ mã hóa hiệu quả của bộ nhớ để ghi dữ liệu ở định dạng Weave TLV.

nl::Weave::TLV::WeaveCirularTLVBuffer

WeaveCircularTLVBuffer cung cấp bộ nhớ hình tròn cho nl::Weave::TLV::TLVWriter và nl::Weave::TLVTLVreader.

Không gian tên

nl::Weave::TLV::Gỡ lỗi

Vùng chứa tên này bao gồm các loại và giao diện để gỡ lỗi và ghi nhật ký Weave TLV.

nl::Weave::TLV::Tiện ích

Vùng chứa tên này bao gồm các loại và giao diện tiện ích để quản lý và làm việc với Weave TLV.

Bảng liệt kê

@11

 @71

@73

 @73

@74

 @74
Thuộc tính
AnonymousTag

Giá trị biểu thị phần tử TLV không có thẻ (tức là

phần tử ẩn danh).

@75

 @75

Hồ sơ thanh toán chung

 TLVCommonProfiles
Thuộc tính
kProfileIdNotSpecified

Dùng để cho biết việc không có mã hồ sơ trong một biến hoặc thành viên.

Về cơ bản, tên này giống với kWeaveProfile_NotSpecated được xác định trong WeaveProfiles.h

Loại TLVElement

 TLVElementType

Kích thước trường TLV

 TLVFieldSize

TLVTagControl

 TLVTagControl

Thẻ TLVTag

 TLVTagFields

Loại TLV

 TLVType

Bảng liệt kê xác định loại phần tử TLV.

Biến

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Sao chép một phần tử TLV từ đối tượng người đọc vào tác giả.

Phương thức CopyElement() mã hoá một phần tử TLV mới có phần tử và loại được lấy từ đối tượng TLV Reader. Khi phương thức này được gọi, đối tượng đọc đã cung cấp dự kiến sẽ được định vị trên phần tử TLV nguồn. Phần tử mới được mã hóa sẽ có cùng loại và nội dung với vùng chứa đầu vào. Tuy nhiên, thẻ sẽ được đặt thành đối số được chỉ định. Nếu phần tử được cung cấp là một vùng chứa TLV (cấu trúc, mảng hoặc đường dẫn), thì toàn bộ nội dung của vùng chứa đó sẽ được sao chép.

Thông tin chi tiết
Các thông số
[in] tag
Thẻ TLV sẽ được mã hóa bằng vùng chứa hoặc AnonymousTag nếu vùng chứa phải được mã hóa mà không có thẻ. Các giá trị thẻ phải được tạo bằng một trong các hàm định nghĩa thẻ ProfileTag(), ContextTag() hoặc CommonTag().
[in] reader
Tham chiếu đến đối tượng TLV Reader nhận dạng phần tử TLV được mã hoá trước có loại và giá trị cần sao chép.
Giá trị trả về
WEAVE_NO_ERROR
Nếu phương thức thành công.
WEAVE_ERROR_INCORRECT_STATE
Nếu trình đọc được cung cấp không được đặt trên phần tử.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Nếu một tác giả vùng chứa đã được mở trên tác giả hiện tại và chưa đóng.
WEAVE_ERROR_TLV_UNDERRUN
Nếu chế độ mã hóa TLV cơ bản liên kết với trình đọc đã cung cấp kết thúc sớm.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Nếu trình đọc được cung cấp gặp loại phần tử TLV không hợp lệ hoặc không được hỗ trợ.
WEAVE_ERROR_INVALID_TLV_TAG
Nếu trình đọc được cung cấp gặp thẻ TLV trong ngữ cảnh không hợp lệ hoặc nếu thẻ đã cung cấp không hợp lệ hay không phù hợp trong ngữ cảnh mà vùng chứa mới đang được ghi.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu bạn viết giá trị này sẽ vượt quá giới hạn về số byte tối đa được chỉ định khi người viết được khởi tạo.
WEAVE_ERROR_NO_MEMORY
Nếu cố gắng phân bổ bộ đệm đầu ra không thành công do thiếu bộ nhớ.
other
Các lỗi Weave hoặc lỗi nền tảng khác được trả về bởi các hàm GetNewBuffer() hoặc FinalizeBuffer() đã định cấu hình hoặc bằng hàm GetNextBuffer() được liên kết với đối tượng người đọc.

sTagSize

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

Hàm

Thẻ chung

uint64_t CommonTag(
  uint32_t tagNum
)

Tạo đại diện API của thẻ TLV hồ sơ phổ biến.

Thông tin chi tiết
Các thông số
[in] tagNum
Số thẻ hồ sơ phổ biến được chỉ định cho thẻ.
Trả về
Số nguyên 64 bit đại diện cho thẻ.

Thẻ ngữ cảnh

uint64_t ContextTag(
  uint8_t tagNum
)

Tạo đại diện API cho thẻ TLV dành riêng cho ngữ cảnh.

Thông tin chi tiết
Các thông số
[in] tagNum
Số thẻ theo ngữ cảnh cụ thể được chỉ định cho thẻ.
Trả về
Số nguyên 64 bit đại diện cho thẻ.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

Thẻ IsContextTag

bool IsContextTag(
  uint64_t tag
)

Trả về true nếu thẻ được cung cấp là thẻ theo ngữ cảnh cụ thể.

Thẻ Hồ sơ

bool IsProfileTag(
  uint64_t tag
)

Trả về true của thẻ được cung cấp là thẻ dành riêng cho hồ sơ.

Thẻ đặc biệt

bool IsSpecialTag(
  uint64_t tag
)

Loại hợp lệ

bool IsValidTLVType(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định hợp lệ.

Thông tin chi tiết
Trả về
true nếu loại TLV được chỉ định hợp lệ; nếu không thì false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Trả về mã hồ sơ từ thẻ TLV.

Thông tin chi tiết
Các thông số
[in] tag
Cách trình bày API của một thẻ TLV dành riêng cho hồ sơ.
Trả về
Mã hồ sơ.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Trả về số cấu hình từ một thẻ TLV.

Thông tin chi tiết
Các thông số
[in] tag
Cách trình bày API của một thẻ TLV dành riêng cho hồ sơ.
Trả về
Số hồ sơ liên kết.

Thẻ hồ sơ

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Tạo đại diện API của thẻ TLV dành riêng cho hồ sơ từ mã hồ sơ và số thẻ.

Thông tin chi tiết
Các thông số
[in] profileId
Mã của hồ sơ mà thẻ được xác định.
[in] tagNum
Số thẻ dành riêng cho hồ sơ được chỉ định cho thẻ.
Trả về
Số nguyên 64 bit đại diện cho thẻ.

Thẻ hồ sơ

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

Tạo đại diện API của thẻ TLV dành riêng cho hồ sơ từ mã nhà cung cấp, số hồ sơ và số thẻ.

Thông tin chi tiết
Các thông số
[in] vendorId
Mã của nhà cung cấp đã xác định thẻ đó.
[in] profileNum
Số điện thoại do nhà cung cấp chỉ định cho hồ sơ mà trong đó thẻ được xác định.
[in] tagNum
Số thẻ dành riêng cho hồ sơ được chỉ định cho thẻ.
Trả về
Số nguyên 64 bit đại diện cho thẻ.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeCóLength

bool TLVTypeHasLength(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định có nghĩa là có sự hiện diện của trường độ dài được liên kết.

Thông tin chi tiết
Trả về
true nếu loại TLV được chỉ định ngụ ý có trường trường độ dài được liên kết; nếu không, false.

Loại TLVTypehasValue

bool TLVTypeHasValue(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định ngụ ý có trường giá trị được liên kết.

Thông tin chi tiết
Trả về
true nếu loại TLV được chỉ định ngụ ý có trường trường giá trị được liên kết; nếu không, false.

Vùng chứa TLVTypeIsIs

bool TLVTypeIsContainer(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định là vùng chứa.

Thông tin chi tiết
Trả về
true nếu loại TLV được chỉ định là vùng chứa; nếu không thì false.

Chuỗi TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định là chuỗi UTF8 hoặc byte.

Thông tin chi tiết
Trả về
true nếu loại TLV được chỉ định là một chuỗi UTF8 hoặc byte; nếu không thì false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Trả về số thẻ của một thẻ TLV.

Thông tin chi tiết
Các thông số
[in] tag
Trình bày API của một thẻ TLV dành riêng cho hồ sơ hoặc ngữ cảnh.
Trả về
Số thẻ liên kết.
Xem thêm:
IsProfileTag()IsContextTag()

Mã nhà cung cấp từ thẻ

uint16_t VendorIdFromTag(
  uint64_t tag
)

Trả về mã nhà cung cấp từ thẻ TLV.

Thông tin chi tiết
Các thông số
[in] tag
Cách trình bày API của một thẻ TLV dành riêng cho hồ sơ.
Trả về
Mã nhà cung cấp liên kết.