nl :: Dệt :: DeviceLayer :: SoftwareUpdateManager
Tóm lược
Di sản
Các lớp con đã biết trực tiếp: nl :: Weave :: DeviceLayer :: SoftwareUpdateManagerImpl nl :: Weave :: DeviceLayer :: SoftwareUpdateManagerImpl nl :: Weave :: DeviceLayer :: SoftwareUpdateManagerImpl Các loại công khai |
---|
ActionType { kAction_Ignore , kAction_DownloadNow , kAction_DownloadLater , kAction_ApplicationManaged } | enum Khi có bản cập nhật phần mềm, ứng dụng có thể chọn một trong các hành động sau như một phần của lệnh gọi lại sự kiện API SoftwareUpdateAvailable. |
EventCallback )(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) | typedef void(* |
EventType { kEvent_PrepareQuery , kEvent_PrepareQuery_Metadata , kEvent_QueryPrepareFailed , kEvent_QuerySent , kEvent_SoftwareUpdateAvailable , kEvent_FetchPartialImageInfo , kEvent_PrepareImageStorage , kEvent_StartImageDownload , kEvent_StoreImageBlock , kEvent_ComputeImageIntegrity , kEvent_ResetPartialImageInfo , kEvent_ReadyToInstall , kEvent_StartInstallImage , kEvent_Finished , kEvent_DefaultCheck = 100 } | enum |
RetryPolicyCallback )(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) | typedef void(* |
State | enum |
Các loại công khai
Loại hành động
ActionType
Khi có bản cập nhật phần mềm, ứng dụng có thể chọn một trong các hành động sau như một phần của lệnh gọi lại sự kiện API SoftwareUpdateAvailable.
Hành động mặc định sẽ được đặt thành kAction_Now.
Tính chất |
---|
kAction_ApplicationManaged | Cho phép ứng dụng quản lý phần còn lại của các giai đoạn cập nhật phần mềm như tải xuống, xác nhận tính toàn vẹn của hình ảnh và cài đặt. Máy trạng thái của trình quản lý cập nhật phần mềm sẽ chuyển sang trạng thái ApplicationManaged. Việc kiểm tra cập nhật phần mềm đã lên lịch (nếu được bật) sẽ bị tạm ngừng cho đến khi ứng dụng gọi API Abort hoặc ImageInstallComplete. |
kAction_DownloadLater | Tạm dừng tải xuống khi bắt đầu. Kiểm tra cập nhật phần mềm đã lên lịch (nếu được bật) sẽ bị tạm ngừng. Máy trạng thái sẽ vẫn ở trạng thái Tải xuống. Khi đã sẵn sàng, ứng dụng có thể gọi API tải xuống tiếp tục để tiếp tục tải xuống hoặc gọi Abort để hủy. |
kAction_DownloadNow | Bắt đầu tải xuống ngay lập tức. Lệnh gọi lại sự kiện API kEvent_FetchPartialImageInfo sẽ được tạo ngay sau đó. |
kAction_Ignore | Bỏ qua tải xuống hoàn toàn. Lệnh gọi lại sự kiện API kEvent_Finishing sẽ được tạo với lỗi WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED nếu tùy chọn này được chọn và logic thử lại sẽ không được gọi. |
EventCallback
void(* EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)
Loại sự kiện
EventType
Các sự kiện API được tạo bởi đối tượng SoftwareUpdateManager
.
Tính chất |
---|
kEvent_ComputeImageIntegrity | Tính toán giá trị kiểm tra tính toàn vẹn của hình ảnh. Yêu cầu ứng dụng tính giá trị kiểm tra tính toàn vẹn trên hình ảnh đã tải xuống. Được tạo sau khi tải xuống hoàn tất. |
kEvent_DefaultCheck | Kiểm tra hành vi xử lý sự kiện mặc định. Được sử dụng để xác minh xử lý sự kiện mặc định chính xác trong ứng dụng. Ứng dụng KHÔNG được xử lý sự kiện này. |
kEvent_FetchPartialImageInfo | Tìm nạp thông tin trạng thái vẫn tồn tại cho hình ảnh được tải xuống một phần. Tạo cơ hội cho ứng dụng tiết lộ thông tin của một phần hình ảnh đã được tải xuống trước đó để quá trình tải xuống có thể được tiếp tục từ điểm dừng cuối cùng. URI của bản cập nhật phần mềm có sẵn được cung cấp dưới dạng tham số đầu vào mà ứng dụng có thể sử dụng để so sánh xem hình ảnh đang tải xuống có giống với hình ảnh một phần hay không. Ứng dụng dự kiến sẽ trả về độ dài của hình ảnh một phần trong tham số đầu ra PartialImageLenInBytes. Ứng dụng có thể đặt giá trị của PartialImageLenInBytes thành 0 để chỉ ra rằng không có hình ảnh một phần nào tồn tại hoặc URI của một phần hình ảnh không khớp. Ứng dụng có thể chọn bỏ qua sự kiện này bằng cách chuyển nó đến trình xử lý sự kiện mặc định. Nếu điều này được thực hiện, hệ thống sẽ luôn tải xuống toàn bộ hình ảnh phần sụn có sẵn. |
kEvent_Finished | Quá trình cập nhật phần mềm đã hoàn tất. Được tạo khi quá trình kiểm tra cập nhật phần mềm kết thúc, có hoặc không có lỗi. Các thông số đi kèm với sự kiện này cung cấp lý do thất bại nếu nỗ lực kết thúc do bị lỗi. |
kEvent_PrepareImageStorage | Chuẩn bị cho việc lưu trữ một hình ảnh mới. Yêu cầu ứng dụng thực hiện bất kỳ bước nào cần thiết để chuẩn bị bộ nhớ cục bộ cho việc tải xuống hình ảnh phần sụn mới. Ví dụ, ứng dụng có thể sử dụng điều này để xóa các trang flash. Sự kiện PrepImageStorage chỉ được tạo trong trường hợp hình ảnh phần sụn mới đang được tải xuống. Khi quá trình tải xuống bị gián đoạn trước đó được tiếp tục, thì chế độ này sẽ không được tạo. Ứng dụng phải báo hiệu hoàn thành hoạt động chuẩn bị bằng cách gọi phương thức PrepareImageStorageComplete() . Nó có thể thực hiện việc này trong chính cuộc gọi lại sự kiện, hoặc sau đó. Nếu được gọi từ một nhiệm vụ khác với nhiệm vụ Weave, người gọi phải giữ khóa ngăn xếp Weave. Ứng dụng có thể chọn bỏ qua sự kiện PrepImageStorage bằng cách chuyển nó đến trình xử lý sự kiện mặc định. Nếu điều này được thực hiện, hệ thống sẽ tự động chuyển sang trạng thái tải xuống hình ảnh. Để hỗ trợ tiếp tục quá trình tải xuống bị gián đoạn, ứng dụng nên duy trì URI hình ảnh (được cung cấp dưới dạng tham số sự kiện) và sử dụng điều này khi xử lý các sự kiện FetchPartialImageInfo tiếp theo. |
kEvent_PrepareQuery | Chuẩn bị thông báo ImageQuery. Được tạo khi kiểm tra cập nhật phần mềm đã được kích hoạt. Tạo cơ hội cho ứng dụng cung cấp thông tin liên quan đến sản phẩm cho thông báo SofwareUpdate: ImageQuery. |
kEvent_PrepareQuery_Metadata | Chuẩn bị siêu dữ liệu cho yêu cầu ImageQuery. Cung cấp cơ hội để ứng dụng thêm siêu dữ liệu bổ sung vào thông báo SofwareUpdate: ImageQuery nếu cần. Được tạo khi quá trình triển khai sẵn sàng để lấy siêu dữ liệu từ ứng dụng. |
kEvent_QueryPrepareFailed | Lỗi khi chuẩn bị yêu cầu ImageQuery. Được tạo khi triển khai gặp lỗi trong khi chuẩn bị gửi truy vấn cập nhật phần mềm. |
kEvent_QuerySent | Yêu cầu ImageQuery đã được gửi. Sự kiện thông tin để báo hiệu rằng một thông báo SofwareUpdate: ImageQuery đã được gửi. |
kEvent_ReadyToInstall | Hình ảnh đã sẵn sàng để được cài đặt. Sự kiện thông tin để báo hiệu rằng hình ảnh đã sẵn sàng được cài đặt. Được tạo khi hình ảnh vượt qua kiểm tra tính toàn vẹn. |
kEvent_ResetPartialImageInfo | Đặt lại trạng thái của hình ảnh đã tải xuống một phần. Yêu cầu ứng dụng quên trạng thái tồn tại liên quan đến hình ảnh đã tải xuống. Sự kiện ResetPartialImageInfo được tạo bất cứ khi nào hình ảnh tải xuống không kiểm tra được tính toàn vẹn của nó. Sau khi sự kiện ResetPartialImageInfo được xử lý, các sự kiện FetchPartialImageInfo tiếp theo sẽ chỉ ra rằng không có hình ảnh một phần nào. Lưu ý rằng, khi xử lý sự kiện ResetPartialImageInfo, ứng dụng KHÔNG bắt buộc phải xóa chính dữ liệu hình ảnh, chỉ thông tin trạng thái được liên kết với hình ảnh (tức là URI và độ dài một phần hình ảnh). Nếu ứng dụng không hỗ trợ tiếp tục tải xuống hình ảnh, nó có thể bỏ qua sự kiện này bằng cách chuyển nó đến trình xử lý sự kiện mặc định. |
kEvent_SoftwareUpdateAvailable | Cập nhật phần mềm có sẵn. Được tạo khi nhận được SofwareUpdate: ImageQueryResponse để phản hồi lại truy vấn chứa thông tin về bản cập nhật có sẵn. |
kEvent_StartImageDownload | Tải xuống hình ảnh đã bắt đầu. Sự kiện thông tin để báo hiệu bắt đầu giao dịch tải xuống hình ảnh. |
kEvent_StartInstallImage | Bắt đầu cài đặt hình ảnh. Yêu cầu ứng dụng là quá trình cài đặt hình ảnh phần sụn đã tải xuống. |
kEvent_StoreImageBlock | Lưu trữ một khối dữ liệu hình ảnh. Được tạo bất cứ khi nào nhận được khối dữ liệu từ máy chủ tải xuống tệp. Các tham số đi kèm với sự kiện này cung cấp dữ liệu và độ dài của dữ liệu. Để hỗ trợ tiếp tục quá trình tải xuống bị gián đoạn, ứng dụng phải duy trì số lượng liên tục tổng số byte hình ảnh được lưu trữ và sử dụng giá trị này khi xử lý các sự kiện FetchPartialImageInfo tiếp theo. |
RetryPolicyCallback
void(* RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec)
Lớp học bạn bè
friend class Internal::GenericPlatformManagerImpl
Chức năng công cộng
GetState
State GetState(
void
)
IsInProgress
bool IsInProgress(
void
)
SetEventCallback
WEAVE_ERROR SetEventCallback(
void *const aAppState,
const EventCallback aEventCallback
)
SetQueryIntervalWindow
WEAVE_ERROR SetQueryIntervalWindow(
uint32_t aMinWaitTimeMs,
uint32_t aMaxWaitTimeMs
)
SetRetryPolicyCallback
void SetRetryPolicyCallback(
const RetryPolicyCallback aRetryPolicyCallback
)
Chức năng tĩnh công khai
Các chức năng được bảo vệ
SoftwareUpdateManager
SoftwareUpdateManager()=default
~ SoftwareUpdateManager
~SoftwareUpdateManager()=default