nl::Weave::TLV

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

Tóm tắt

Weave TLV là một phương thức mã hoá chung cho dữ liệu có cấu trúc đơn giản. Lớp này có chung nhiều thuộc tính với định dạng chuyển đổi tuần tự JSON thường dùng nhưng lại nhỏ gọn hơn đáng kể so với định dạng có 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 trình đọc vào trình ghi.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Hàm

CommonTag(uint32_t tagNum)
uint64_t
Tạo bản trình bày API của một thẻ TLV hồ sơ phổ biến.
ContextTag(uint8_t tagNum)
uint64_t
Tạo dữ liệu biểu 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ẻ đã 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ẻ theo 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ố hồ sơ từ thẻ TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Tạo biểu 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 biểu 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 đã chỉ định ngụ ý rằng có một trường độ dài liên kết.
TLVTypeHasValue(uint8_t type)
bool
Trả về true nếu loại TLV đã chỉ định ngụ ý rằng có 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à chuỗi byte hoặc UTF8.
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 trình phân tích cú pháp bộ nhớ hiệu quả cho dữ liệu được mã hoá ở định dạng TLV của Weave.

nl::Weave::TLV::TLVUpdater

Cung cấp giao diện Người đọc/Người ghi 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.

Bảng liệt kê

@71

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

một phần tử ẩn danh).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Thuộc tính
kProfileIdNotSpecified

Được dùng để cho biết biến hoặc thành viên không có mã hồ sơ.

Điều này về cơ bản giống với kWeaveProfile_NotSpecified đượ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 một phần tử TLV từ đối tượng trình đọc vào trình ghi.

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 đượ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), 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 tham số
[in] tag
Thẻ TLV sẽ được mã hoá bằng vùng chứa hoặc AnonymousTag nếu vùng chứa cần được mã hoá mà không cần thẻ. Bạn phải tạo giá trị thẻ bằng một trong các hàm định nghĩa thẻ ProfileTag(), ContextTag() hoặc CommonTag().
[in] reader
Mã tham chiếu đến một đối tượng TLVReader xác định 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 thành công.
WEAVE_ERROR_INCORRECT_STATE
Nếu máy đọc đã cung cấp không được định vị trên một phần tử.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Trường hợp người ghi vùng chứa đã được mở trên người ghi hiện tại mà chưa đóng.
WEAVE_ERROR_TLV_UNDERRUN
Nếu bộ mã hoá TLV cơ bản được 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 người đọ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 người đọc được cung cấp gặp phải một 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ệ hay không phù hợp trong ngữ cảnh mà vùng chứa mới đang được viết.
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu việc ghi giá trị 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 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 riêng của nền tảng khác được trả về bởi các hàm GetNewBuffer() hoặc FinalizeBuffer() được định cấu hình hoặc bởi 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 bản trình bày API của một thẻ TLV hồ sơ phổ biến.

Thông tin chi tiết
Các 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 dữ liệu biểu diễn API cho thẻ TLV theo ngữ cảnh cụ thể.

Thông tin chi tiết
Các 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ẻ đã 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ẻ theo 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ệ; nếu không thì là false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

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

Thông tin chi tiết
Các tham số
[in] tag
Biểu thị 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ố hồ sơ từ thẻ TLV.

Thông tin chi tiết
Các tham số
[in] tag
Biểu thị 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 biểu 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 tham số
[in] profileId
Id của cấu hình mà thẻ được xác định trong đó.
[in] tagNum
Số thẻ theo cấu hình cụ thể được chỉ định 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 biểu 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 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 chỉ định 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 đã chỉ định ngụ ý rằng có một trường độ dài 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 độ dài liên kết; nếu không thì là false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Trả về true nếu loại TLV đã chỉ định ngụ ý rằng có 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ị liên kết; nếu không thì là 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; nếu không thì là false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

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

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

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

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

Thông tin chi tiết
Các tham số
[in] tag
Biểu thị API của thẻ TLV theo ngữ cảnh hoặc theo hồ sơ cụ thể.
Trả về
Số thẻ liên quan.
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
Các tham số
[in] tag
Biểu thị API của thẻ TLV dành riêng cho hồ sơ.
Trả về
Mã nhà cung cấp được liên kết.