nl::Weave::DeviceLayer::SoftwareUpdateManager

Tóm tắt

Tính kế thừa

Lớp học con đã biết trực tiếp:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

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 thao tác sau đây trong lệnh gọi lại sự kiện SoftwareUpdateAvailable API.
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
Các sự kiện API do đối tượng SoftwareUpdateManager tạo.
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

Lớp học bạn bè

Internal::GenericPlatformManagerImpl
friend class

Hàm công khai

Abort(void)
CheckNow(void)
GetState(void)
State
ImageInstallComplete(WEAVE_ERROR aError)
IsInProgress(void)
bool
PrepareImageStorageComplete(WEAVE_ERROR aError)
SetEventCallback(void *const aAppState, const EventCallback aEventCallback)
SetQueryIntervalWindow(uint32_t aMinWaitTimeMs, uint32_t aMaxWaitTimeMs)
SetRetryPolicyCallback(const RetryPolicyCallback aRetryPolicyCallback)
void

Hàm tĩnh công khai

DefaultEventHandler(void *apAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

Hàm được bảo vệ

SoftwareUpdateManager()=default
SoftwareUpdateManager(const SoftwareUpdateManager &)=delete
SoftwareUpdateManager(const SoftwareUpdateManager &&)=delete
operator=(const SoftwareUpdateManager &)=delete
~SoftwareUpdateManager()=default

Cấu trúc

nl::Weave::DeviceLayer::SoftwareUpdateManager::RetryParam

Liên đoàn

nl::Weave::DeviceLayer::SoftwareUpdateManager::InEventParam
nl::Weave::DeviceLayer::SoftwareUpdateManager::OutEventParam

Loại công khai

ActionType

 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 thao tác sau đây trong lệnh gọi lại sự kiện SoftwareUpdateAvailable API.

Hành động mặc định sẽ được đặt thành kAction_Now.

Thuộc tính
kAction_ApplicationManaged

Cho phép ứng dụng quản lý các giai đoạn còn lại của quá trình cập nhật phần mềm, chẳng hạn như tải xuống, xác thực 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. Các hoạt động kiểm tra bản cập nhật phần mềm định kỳ (nếu đã bật) sẽ bị tạm ngưng cho đến khi ứng dụng gọi abort hoặc ImageInstallComplete API.

kAction_DownloadLater

Tạm dừng tải xuống khi bắt đầu.

Các hoạt động kiểm tra bản cập nhật phần mềm định kỳ (nếu đã 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 sơ yếu lý lịch xuống để tiếp tục tải xuống hoặc thực hiện lệnh gọi Cancel (Huỷ) để huỷ.

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_FetchSegmentImageInfo sẽ được tạo ngay sau đó.

kAction_Ignore

Bỏ qua hoàn toàn quá trình tải xuống.

Lệnh gọi lại sự kiện API kEvent_Finish sẽ được tạo kèm theo lỗi WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED nếu tuỳ 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)

EventType

 EventType

Các sự kiện API do đối tượng SoftwareUpdateManager tạo.

Thuộc tính
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 toán 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 quá trình tải xuống hoàn tất.

kEvent_DefaultCheck

Kiểm tra hành vi xử lý sự kiện mặc định.

Dùng để xác minh cách xử lý sự kiện mặc định chính xác trong ứng dụng.

Các ứng dụng KHÔNG được xử lý sự kiện này.

kEvent_FetchPartialImageInfo

Đã tìm nạp thông tin về trạng thái cố định cho hình ảnh được tải xuống một phần.

Cho phép ứng dụng công bố thông tin về một phần hình ảnh đã tải xuống trước đó, do đó, quá trình tải xuống có thể tiếp tục từ điểm dừng gần đây nhất. URI của bản cập nhật phần mềm hiện có đượ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 được 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ề chiều 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 để cho biết rằng không có hình ảnh một phần nào tồn tại hoặc URI của hình ảnh một phần không khớp.

Ứng dụng có thể chọn bỏ qua sự kiện này bằng cách chuyển sự kiện đến trình xử lý sự kiện mặc định. Nếu thao tác này hoàn tất, hệ thống sẽ luôn tải toàn bộ hình ảnh chương trình cơ sở có sẵn xuống.

kEvent_Finished

Đã hoàn tất quá trình cập nhật phần mềm.

Được tạo khi quá trình kiểm tra bản cập nhật phần mềm hoàn tất mà có hoặc không có lỗi. Các thông số có trong sự kiện này cho biết lý do không thực hiện được nếu quá trình thử hoàn tất do không thành công.

kEvent_PrepareImageStorage

Chuẩn bị lưu trữ hình ảnh mới.

Yêu cầu ứng dụng thực hiện mọi bước cần thiết nhằm chuẩn bị bộ nhớ cục bộ cho việc tải hình ảnh chương trình cơ sở mới xuống. Ứng dụng có thể sử dụng chức năng này, chẳng hạn, để xoá các trang flash.

Sự kiện PrepareImageStorage chỉ được tạo trong trường hợp hình ảnh chương trình cơ sở 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, PrepareImageStorage sẽ không được tạo.

Ứng dụng phải báo hiệu việc hoàn tất thao tác chuẩn bị bằng cách gọi phương thức PrepareImageStorageComplete(). Mã này có thể thực hiện việc này trong chính lệnh gọi lại sự kiện hoặc sau đó. Nếu được gọi từ một nhiệm vụ khác nhiệm vụ Weave, thì phương thức gọi phải có khoá ngăn xếp Weave.

Ứng dụng có thể chọn bỏ qua sự kiện PrepareImageStorage bằng cách chuyển sự kiện đó đến trình xử lý sự kiện mặc định. Nếu bạn làm như vậy, hệ thống sẽ tự động chuyển sang trạng thái tải hình ảnh xuống.

Để hỗ trợ việc 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 thông số sự kiện) và sử dụng URI 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 quá trình kiểm tra bản cập nhật phần mềm được kích hoạt. Giúp ứng dụng có cơ hội 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.

Cho phép ứ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 để nhận 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 quá trình 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 cung cấp 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ài đặt.

Sự kiện cung cấp thông tin để báo hiệu rằng hình ảnh đã sẵn sàng để cài đặt. Được tạo sau khi một hình ảnh vượt qua quy trình kiểm tra tính toàn vẹn.

kEvent_ResetPartialImageInfo

Đặt lại trạng thái của hình ảnh được tải xuống một phần.

Yêu cầu ứng dụng xoá trạng thái cố định liên kết với hình ảnh đã tải xuống. Sự kiện ResetpartialImageInfo sẽ được tạo bất cứ khi nào hình ảnh tải xuống không vượt qua được quy trình kiểm tra tính toàn vẹn. Sau khi hệ thống xử lý sự kiện tại Reset hồidạngImageInfo, các sự kiện FetchbộImageInfo tiếp theo sẽ cho biết rằng không có hình ảnh một phần nào có sẵn.

Xin lưu ý rằng khi xử lý sự kiện này

Nếu không hỗ trợ tiếp tục tải hình ảnh xuống, thì ứng dụng có thể bỏ qua sự kiện này bằng cách truyền sự kiện đến trình xử lý sự kiện mặc định.

kEvent_SoftwareUpdateAvailable

Đã có bản cập nhật phần mềm.

Được tạo khi nhận được SofwareUpdate:ImageQueryResponse cho một truy vấn có chứa thông tin về bản cập nhật hiện có.

kEvent_StartImageDownload

Đã bắt đầu tải hình ảnh xuống.

Sự kiện cung cấp thông tin để báo hiệu sự bắt đầu của một giao dịch tải hình ảnh xuống.

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 chương trình cơ sở đã tải xuống.

kEvent_StoreImageBlock

Lưu trữ một khối dữ liệu hình ảnh.

Được tạo mỗi khi nhận được khối dữ liệu từ máy chủ tải tệp xuống. Các thông số có trong 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 ổn định trong tổng số byte ả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)

Tiểu bang

 State

Lớp học bạn bè

Nội bộ::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

Hàm công khai

Hủy

WEAVE_ERROR Abort(
  void
)

CheckNow

WEAVE_ERROR CheckNow(
  void
)

GetState

State GetState(
  void
)

ImageInstallComplete

WEAVE_ERROR ImageInstallComplete(
  WEAVE_ERROR aError
)

IsInProgress

bool IsInProgress(
  void
)

PrepareImageStorageComplete

WEAVE_ERROR PrepareImageStorageComplete(
  WEAVE_ERROR aError
)

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
)

Hàm tĩnh công khai

DefaultEventHandler

void DefaultEventHandler(
  void *apAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

Hàm được bảo vệ

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default