nl::Weave::DeviceLayer::SoftwareUpdateManager

Tóm tắt

Tính kế thừa

Lớp 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 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

Hiệp hội

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ý bản 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 đã lên lịch (nếu được bật) sẽ bị tạm ngưng cho đến khi ứng dụng gọi đến Cancellation (Huỷ bỏ) hoặc ImageInstallComplete API (API ImageInstallComplete).

kAction_DownloadLater

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

Quá trình kiểm tra bản cập nhật phần mềm theo 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 tiếp tục xuống để tiếp tục tải xuống hoặc gọi Huỷ để huỷ.

kAction_DownloadNow

Bắt đầu tải xuống ngay.

Lệnh gọi lại sự kiện API kEvent_FetchPartialImageInfo API 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_Completed sẽ được tạo kèm theo lỗi WEAVE_DEVICE_ERROR_NAMES_UPDATE_CANCELLED nếu bạn chọn tuỳ chọn này 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 đối với 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.

Ứ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 đã 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 đã tải xuống trước đó để có thể tiếp tục quá trình tải xuống từ điểm dừng trước đó. 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 nếu hình ảnh đang tải xuống giống với hình ảnh một phần.

Ứng dụng dự kiến sẽ trả về độ dài của một phần hình ảnh trong tham số đầu ra PartialImageLenInBytes. Ứng dụng có thể đặt giá trị của PartialImageLenInBytes thành 0 để cho biết 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 đó vào trình xử lý sự kiện mặc định. Nếu việc này được thực hiện, hệ thống sẽ luôn tải toàn bộ hình ảnh chương trình cơ sở hiện có xuống.

kEvent_Finished

Quá trình cập nhật phần mềm đã kết thúc.

Được tạo khi quá trình kiểm tra bản cập nhật phần mềm hoàn tất (có hoặc không có lỗi). Các thông số đi kèm với sự kiện này cho biết lý do không thành công nếu lượt thử kết thúc 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 để chuẩn bị bộ nhớ cục bộ cho quá trình 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 như để xóa các trang flash.

Sự kiện PrepareImageStorage được tạo chỉ 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(). Bạn có thể thực hiện việc này ngay trong lệnh gọi lại sự kiện hoặc sau này. Nếu được gọi từ một tác vụ không phải tác vụ Weave, phương thức gọi phải giữ nguyên khoá ngăn xếp Weave.

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

Để 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 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. Mang đến cơ hội để ứ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 nối 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 quá trình 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 thông báo SofwareUpdate:ImageQuery đã được gửi.

kEvent_ReadyToInstall

Hình ảnh đã sẵn sàng để cài đặt.

Sự kiện thông tin để báo hiệu rằng hình ảnh đã sẵn sàng để cài đặt. Được tạo sau khi 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 đã tải xuống một phần.

Yêu cầu ứng dụng bỏ qua trạng thái ổn định liên kết với hình ảnh đã tải xuống. Sự kiện ResetpartImageInfo đượ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 sự kiện ResetPartialImageInfo đã được xử lý, các sự kiện FetchPartialImageInfo tiếp theo sẽ cho biết 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 xoá chính dữ liệu hình ảnh, mà chỉ bắt buộc phải thông tin trạng thái liên kết với hình ảnh (tức là URI và một phần chiều dài hình ảnh).

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 chuyể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 một SofwareUpdate:ImageQueryResponse để phản hồi một truy vấn chứa thông tin về bản cập nhật có sẵn.

kEvent_StartImageDownload

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

Sự kiện thông tin để báo hiệu việc bắt đầu 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 thực hiện quy 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 bất cứ khi nào một khối dữ liệu được nhận từ máy chủ tải tệp xuống. Các thông số đi kèm với sự kiện này sẽ 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ì tổng số byte hình ảnh đã lưu trữ liên tục 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 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

toán tử=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default