nl::Weave::TLV

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

Tóm tắt

TLV của Weave là một phương thức mã hoá chung cho dữ liệu có cấu trúc đơn giản. Phương thức này chia sẻ nhiều thuộc tính với định dạng chuyển đổi tuần tự JSON thường dùng, đồng thời nhỏ gọn hơn đáng kể so với kết nối mạ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
Một bản liệt kê xác định loại phần tử TLV.

Biến

kWeaveTLVCopyChunkSize = 16
const size_t
Sao chép phần tử TLV từ một đối tượng trình đọ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 nội dung đại diện API cho thẻ TLV hồ sơ chung.
ContextTag(uint8_t tagNum)
uint64_t
Tạo nội dung đại diện API cho thẻ TLV theo ngữ cảnh cụ thể.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Trả về true nếu thẻ được cung cấp là một thẻ theo ngữ cảnh cụ thể.
IsProfileTag(uint64_t tag)
bool
Trả về true của thẻ đã cung cấp là một thẻ dành riêng cho từng cấu hình.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định là 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ừ thẻ TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Tạo nội dung đại diện API cho 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 nội dung đại diện API cho 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 cho biết sự hiện diện của một trường độ dài tương ứng.
TLVTypeHasValue(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định cho biết sự hiện diện của một trường giá trị liên kết.
TLVTypeIsContainer(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định là một vùng chứa.
TLVTypeIsString(uint8_t type)
bool
Trả về true nếu loại TLV được chỉ định là một chuỗi UTF8 hoặc byte.
TagNumFromTag(uint64_t tag)
uint32_t
Trả về số thẻ từ thẻ TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Trả về mã nhà cung cấp từ thẻ TLV.

Lớp

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

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

nl::Weave::TLV::TLVUpdater

Cung cấp giao diện Reader/Writer hợp nhất để chỉnh sửa/thêm/xoá các phần tử trong bộ mã hoá TLV.

nl::Weave::TLV::TLVWriter

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

nl::Weave::TLV::WeaveCircularTLVBuffer

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

Không gian tên

nl::Weave::TLV::Debug

Không gian 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::Utilities

Không gian 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 TLV của Weave.

Liệt kê

@71

 @71

@73

 @73

@74

 @74
Thuộc tính
AnonymousTag

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

phần tử ẩn danh).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Thuộc tính
kProfileIdNotSpecified

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

Điều này về cơ bản giống với kWeaveProfile_Not vẹn được xác định trong WeaveProfiles.h

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 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 phần tử TLV từ một đối tượng trình đọc vào tác giả.

Phương thức CopyElement() mã hoá một phần tử TLV mới có loại và giá trị được lấy từ đối tượng TLVReader. Khi phương thức này được gọi, đối tượng trình đọ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ã hoá sẽ có cùng loại và nội dung như 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à 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
Tham số
[in] tag
Thẻ TLV để mã hoá bằng vùng chứa hoặc AnonymousTag nếu vùng chứa được mã hoá mà không cần thẻ. 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 TLVReader giúp xác định một phần tử TLV được mã hoá trước có loại và giá trị cần được sao chép.
Giá trị trả về
WEAVE_NO_ERROR
Nếu phương thức này thành công.
WEAVE_ERROR_INCORRECT_STATE
Nếu máy đọc đã cung cấp không được đặt trên một phần tử.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Nếu một người viết vùng chứa đã được mở đối với người viết hiện tại và chưa đóng.
WEAVE_ERROR_TLV_UNDERRUN
Nếu phương thức mã hoá TLV cơ bản liên kết với trình đọc đượ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 phải 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 phải thẻ TLV trong ngữ cảnh không hợp lệ hoặc nếu thẻ được cung cấp không hợp lệ hoặc 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 giá trị được ghi, sẽ vượt quá giới hạn về số byte tối đa được chỉ định khi khởi tạo trình ghi.
WEAVE_ERROR_NO_MEMORY
Nếu việc phân bổ vùng đệm đầu ra không thành công do thiếu bộ nhớ.
other
Các lỗi Weave hoặc lỗi cụ thể khác của nền tảng do các hàm GetNewBuffer() hoặc FinalizeBuffer() đã định cấu hình trả về hoặc do hàm GetNextBuffer() liên kết với đối tượng trình đọc.

sTagSizes

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

Hàm

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Tạo nội dung đại diện API cho thẻ TLV hồ sơ chung.

Thông tin chi tiết
Tham số
[in] tagNum
Số thẻ hồ sơ chung được gán cho thẻ.
Trả về
Số nguyên 64 bit đại diện cho thẻ.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Tạo nội dung đại diện API cho thẻ TLV theo ngữ cảnh cụ thể.

Thông tin chi tiết
Tham 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
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

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

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Trả về true của thẻ đã cung cấp là một thẻ dành riêng cho từng cấu hình.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

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

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

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

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

Thông tin chi tiết
Tham số
[in] tag
Nội dung đại diện API của 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ừ thẻ TLV.

Thông tin chi tiết
Tham số
[in] tag
Nội dung đại diện API của thẻ TLV dành riêng cho hồ sơ.
Trả về
Số hồ sơ được liên kết.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

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

Thông tin chi tiết
Tham số
[in] profileId
Mã của cấu hình mà trong đó thẻ được xác định.
[in] tagNum
Số thẻ theo cấu hình cụ thể được gán cho thẻ.
Trả về
Số nguyên 64 bit đại diện cho thẻ.

ProfileTag

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

Tạo nội dung đại diện API cho 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
Tham số
[in] vendorId
Mã của nhà cung cấp đã xác định thẻ.
[in] profileNum
Số được chỉ định của nhà cung cấp cho cấu hình mà trong đó thẻ được xác định.
[in] tagNum
Số thẻ theo cấu hình cụ thể được gán cho thẻ.
Trả về
Số nguyên 64 bit đại diện cho thẻ.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định cho biết sự hiện diện của một trường độ dài tương ứng.

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

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định cho biết sự hiện diện của một trường giá trị liên kết.

Thông tin chi tiết
Trả về
true nếu loại TLV được chỉ định ngụ ý sự hiện diện của trường giá trị được liên kết; false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

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

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

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Trả về true nếu loại TLV được chỉ định là một 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; false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Trả về số thẻ từ thẻ TLV.

Thông tin chi tiết
Tham số
[in] tag
Nội dung đại diện API của thẻ TLV theo bối cảnh hoặc hồ sơ cụ thể.
Trả về
Số thẻ được liên kết.
Xem thêm:
IsProfileTag()IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

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

Thông tin chi tiết
Tham số
[in] tag
Nội dung đại diện API của thẻ TLV dành riêng cho hồ sơ.
Trả về
Mã nhà cung cấp được liên kết.