nl:: Weave:: Profiles:: SoftwareUpdate:: ImageQuery
#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>
Một lớp hỗ trợ việc tạo và giải mã thông báo truy vấn hình ảnh.
Tóm tắt
Khung truy vấn hình ảnh có dạng sau trên dây
Chiều dài | Tên trường |
1 byte | điều khiển khung hình |
6 byte | quy cách sản phẩm |
biến | quy cách phiên bản |
2,,4 byte | danh sách loại tính toàn vẹn |
2,5 byte | cập nhật danh sách lược đồ |
biến | thông số kỹ thuật của ngôn ngữ (không bắt buộc) |
8 byte | mã nhận dạng nút đích |
biến | dữ liệu cụ thể của nhà cung cấp (không bắt buộc) |
Bit | Ý nghĩa |
0 | 1 - có dữ liệu cụ thể của nhà cung cấp, 0 - không có |
1 | 1 – có thông số kỹ thuật về ngôn ngữ, 0 – không có |
2 | 1 – có mã nút đích, 0 – không có |
3..7 | Đã đặt trước |
Hàm khởi tạo và hàm phá |
|
---|---|
ImageQuery()
Hàm khởi tạo mặc định cho ImageQuery.
|
Thuộc tính công khai |
|
---|---|
integrityTypes
|
Các loại tính toàn vẹn mà thiết bị hỗ trợ.
|
localeSpec
|
Một chuỗi UTF-8 có độ dài thay đổi chứa ngôn ngữ POSIX có hiệu lực trên thiết bị mà truy vấn hình ảnh đang được thực hiện.
|
packageSpec
|
Một chuỗi UTF-8 có độ dài thay đổi chứa chuỗi thông số kỹ thuật gói của nhà cung cấp.
|
productSpec
|
Thông số kỹ thuật sản phẩm mô tả thiết bị đang thực hiện truy vấn hình ảnh.
|
targetNodeId
|
uint64_t
Mã nhận dạng nút không bắt buộc của thiết bị mà truy vấn đang được thực hiện.
|
theMetaData
|
Trường dữ liệu của từng nhà cung cấp có độ dài khác nhau và chiếm phần còn lại của tải trọng thông báo Weave, ngoài các trường được mô tả ở trên.
|
updateSchemes
|
Cập nhật lược đồ (giao thức tải xuống) mà thiết bị hỗ trợ.
|
version
|
Một chuỗi UTF-8 có độ dài thay đổi chứa phiên bản phần mềm do nhà cung cấp chỉ định của thiết bị mà truy vấn đang được thực hiện.
|
Hàm công khai |
|
---|---|
init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
|
Khởi chạy đối tượng ImageQuery một cách rõ ràng bằng các giá trị đã cung cấp.
|
operator==(const ImageQuery &) const
|
bool
Toán tử cân bằng.
|
pack(PacketBuffer *)
|
Chuyển đổi tuần tự ImageQuery cơ bản vào Gói đệm được cung cấp.
|
print(void)
|
void
|
Hàm tĩnh công khai |
|
---|---|
parse(PacketBuffer *, ImageQuery &)
|
Giải tuần tự thông báo truy vấn hình ảnh được cung cấp trong PacketBuffer thành ImageQuery được cung cấp.
|
Thuộc tính công khai
localeSpec
ReferencedString localeSpec
Một chuỗi UTF-8 có độ dài thay đổi chứa ngôn ngữ POSIX có hiệu lực trên thiết bị mà truy vấn hình ảnh đang được thực hiện.
Nội dung của chuỗi phải tuân theo định dạng giá trị nhận dạng ngôn ngữ POSIX, như được chỉ định trong ISO/IEC 15897, ví dụ: en_AU.UTF-8 cho tiếng Anh Úc.
packageSpec
ReferencedString packageSpec
Một chuỗi UTF-8 có độ dài thay đổi chứa chuỗi thông số kỹ thuật gói của nhà cung cấp.
Nội dung của trường này mô tả loại vùng chứa mong muốn cho hình ảnh phần mềm, chẳng hạn như "RPM", "deb", "tgz", "elf", v.v. (LƯU Ý: Trường này không được sử dụng trong các quy trình triển khai giao thức của Nest)
productSpec
ProductSpec productSpec
Thông số kỹ thuật sản phẩm mô tả thiết bị đang thực hiện truy vấn hình ảnh.
targetNodeId
uint64_t targetNodeId
Mã nhận dạng nút không bắt buộc của thiết bị mà truy vấn đang được thực hiện.
Trường mã nhận dạng nút đích là trường không bắt buộc. Nếu không có, mã nhận dạng nút đích cho truy vấn sẽ ngầm định là nút là nguồn của thông báo truy vấn hình ảnh.
Trường mã nhận dạng nút đích thường được dùng trong các trường hợp nút là nguồn của thông báo IMAGE QUERY đang đóng vai trò là proxy cập nhật phần mềm cho một nút khác.
theMetaData
ReferencedTLVData theMetaData
Trường dữ liệu của từng nhà cung cấp có độ dài khác nhau và chiếm phần còn lại của tải trọng thông báo Weave, ngoài các trường được mô tả ở trên.
Trường này mã hoá thông tin cụ thể của nhà cung cấp về thiết bị mà truy vấn đang được thực hiện. Trường dữ liệu của nhà cung cấp là không bắt buộc. Nếu có, trường có dạng cấu trúc mã hoá TLV ẩn danh. Các thẻ được trình bày trong cấu trúc này phải là thẻ dành riêng cho hồ sơ đủ điều kiện.
updateSchemes
UpdateSchemeList updateSchemes
Cập nhật lược đồ (giao thức tải xuống) mà thiết bị hỗ trợ.
version
ReferencedString version
Một chuỗi UTF-8 có độ dài thay đổi chứa phiên bản phần mềm do nhà cung cấp chỉ định của thiết bị mà truy vấn đang được thực hiện.
Phải có độ dài từ 32 trở xuống.
Hàm công khai
ImageQuery
ImageQuery()
Hàm khởi tạo mặc định cho ImageQuery.
Bạn có thể điền sẵn ImageQuery bằng cách gọi init() hoặc giải trình tự đối tượng qua một thông báo.
init
WEAVE_ERROR init( ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData )
Khởi chạy đối tượng ImageQuery một cách rõ ràng bằng các giá trị đã cung cấp.
Thông tin chi tiết | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Các tham số |
|
||||||||||||||||
Trả về |
WEAVE_NO_ERROR Không có điều kiện.
|
toán tử==
bool operator==( const ImageQuery & ) const
Toán tử cân bằng.
Thông tin chi tiết | |||
---|---|---|---|
Các tham số |
|
||
Trả về |
giá trị true (đúng) nếu tất cả các trường trong cả hai đối tượng đều bằng nhau, nếu không thì false (sai)
|
gói
WEAVE_ERROR pack( PacketBuffer * )
Chuyển đổi tuần tự ImageQuery cơ bản vào Gói đệm được cung cấp.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
||||
Giá trị trả về |
|
in
void print( void )
Hàm tĩnh công khai
parse
WEAVE_ERROR parse( PacketBuffer *, ImageQuery & )
Giải tuần tự thông báo truy vấn hình ảnh được cung cấp trong PacketBuffer thành ImageQuery được cung cấp.
Thông tin chi tiết | |||||
---|---|---|---|---|---|
Các tham số |
|
||||
Trả về |
WEAVE_NO_ERROR Khi thành công
|
||||
Trả về |
WEAVE_ERROR_BUFFER_TOO_ cùng Nếu thư quá nhỏ để chứa tất cả các trường của ImageQuery
|
||||
Trả về |
WEAVE_ERROR_INVALID_LIST_LENGTH Nếu thông báo chứa IntegrityTypeList hoặc UpdateSchemeList quá dài
|