nl::Weave::DeviceLayer::SoftwareUpdateManager

Ringkasan

Inheritance

Subclass Langsung yang Diketahui:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

Jenis publik

ActionType{
  kAction_Ignore,
  kAction_DownloadNow,
  kAction_DownloadLater,
  kAction_ApplicationManaged
}
enum
Saat update software tersedia, aplikasi dapat memilih salah satu tindakan berikut sebagai bagian dari callback peristiwa 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
Peristiwa API yang dihasilkan oleh objek SoftwareUpdateManager.
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

Kelas teman

Internal::GenericPlatformManagerImpl
friend class

Fungsi publik

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

Fungsi statis publik

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

Fungsi yang dilindungi

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

Struct

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

Serikat

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

Jenis publik

ActionType

 ActionType

Saat update software tersedia, aplikasi dapat memilih salah satu tindakan berikut sebagai bagian dari callback peristiwa SoftwareUpdateAvailable API.

Tindakan default akan ditetapkan ke kAction_Now.

Properti
kAction_ApplicationManaged

Mengizinkan aplikasi mengelola sisa fase update software seperti download, validasi integritas gambar, dan penginstalan.

Mesin status pengelola update software akan berpindah ke status ApplicationManaged. Pemeriksaan update software terjadwal (jika diaktifkan) akan ditangguhkan hingga aplikasi memanggil Abort atau ImageInstallComplete API.

kAction_DownloadLater

Jeda download saat memulai.

Pemeriksaan update software terjadwal (jika diaktifkan) akan ditangguhkan. Mesin status akan tetap dalam status Download. Jika sudah siap, aplikasi dapat memanggil API download resume untuk melanjutkan download atau memanggil Batal untuk membatalkan.

kAction_DownloadNow

Segera mulai download.

Callback peristiwa kEvent_FetchPartialImageInfo API akan dibuat tepat setelahnya.

kAction_Ignore

Abaikan download sepenuhnya.

Callback peristiwa kEvent_Finished API akan dibuat dengan error WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED jika opsi ini dipilih dan logika percobaan ulang tidak akan dipanggil.

EventCallback

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

EventType

 EventType

Peristiwa API yang dihasilkan oleh objek SoftwareUpdateManager.

Properti
kEvent_ComputeImageIntegrity

Menghitung nilai pemeriksaan integritas image.

Meminta aplikasi untuk menghitung nilai pemeriksaan integritas atas gambar yang didownload. Dibuat setelah download selesai.

kEvent_DefaultCheck

Periksa perilaku penanganan peristiwa default.

Digunakan untuk memverifikasi penanganan peristiwa default yang benar dalam aplikasi.

Aplikasi TIDAK boleh menangani peristiwa ini.

kEvent_FetchPartialImageInfo

Mengambil informasi status yang dipertahankan untuk gambar yang didownload sebagian.

Memberikan peluang bagi aplikasi untuk mengungkapkan informasi sebagian gambar yang sebelumnya didownload sehingga download dapat dilanjutkan dari titik terakhirnya. URI update software yang tersedia diberikan sebagai parameter input yang dapat digunakan aplikasi untuk membandingkan apakah gambar yang didownload sama dengan gambar parsial.

Aplikasi ini diharapkan menampilkan panjang gambar parsial dalam parameter output PartialImageLenInBytes. Aplikasi dapat menyetel nilai PartialImageLenInBytes ke 0 untuk menunjukkan bahwa tidak ada gambar parsial atau URI gambar sebagian tidak cocok.

Aplikasi dapat memilih untuk mengabaikan peristiwa ini dengan meneruskannya ke pengendali peristiwa default. Jika langkah ini dilakukan, sistem akan selalu mendownload keseluruhan image firmware yang tersedia.

kEvent_Finished

Proses update software selesai.

Dibuat saat pemeriksaan update software selesai dengan atau tanpa error. Parameter yang disertakan dengan peristiwa ini memberikan alasan kegagalan jika upaya selesai karena kegagalan.

kEvent_PrepareImageStorage

Mempersiapkan penyimpanan gambar baru.

Meminta aplikasi menjalankan langkah yang diperlukan guna menyiapkan penyimpanan lokal untuk download image firmware baru. Aplikasi tersebut dapat menggunakan cara ini, misalnya, untuk menghapus halaman flash.

Peristiwa PrepareImageStorage dihasilkan hanya jika image firmware baru sedang didownload. Jika download yang sebelumnya terganggu dilanjutkan, PrepareImageStorage tidak dihasilkan.

Aplikasi harus menandakan penyelesaian operasi persiapan dengan memanggil metode PrepareImageStorageComplete(). Aplikasi dapat melakukannya dalam callback peristiwa itu sendiri, atau di lain waktu. Jika dipanggil dari tugas selain tugas Weave, pemanggil harus menahan penguncian stack Weave.

Aplikasi dapat memilih untuk mengabaikan peristiwa PrepareImageStorage dengan meneruskannya ke pengendali peristiwa default. Jika hal ini dilakukan, sistem secara otomatis melanjutkan ke status download gambar.

Untuk mendukung melanjutkan download yang terhenti, aplikasi harus mempertahankan URI gambar (disediakan sebagai parameter peristiwa), dan menggunakannya saat menangani peristiwa FetchPartialImageInfo berikutnya.

kEvent_PrepareQuery

Menyiapkan pesan ImageQuery.

Dibuat saat pemeriksaan update software dipicu. Memberikan peluang bagi aplikasi untuk menyediakan informasi terkait produk ke pesan SofwareUpdate:ImageQuery.

kEvent_PrepareQuery_Metadata

Menyiapkan metadata untuk permintaan ImageQuery.

Memberikan peluang bagi aplikasi untuk menambahkan metadata tambahan ke pesan SofwareUpdate:ImageQuery jika diperlukan. Dihasilkan saat implementasi siap mendapatkan metadata dari aplikasi.

kEvent_QueryPrepareFailed

Kesalahan saat mempersiapkan permintaan ImageQuery.

Dibuat saat implementasi mengalami error saat bersiap mengirimkan kueri update software.

kEvent_QuerySent

Permintaan ImageQuery telah dikirim.

Peristiwa informasi untuk memberi sinyal bahwa pesan SofwareUpdate:ImageQuery telah dikirim.

kEvent_ReadyToInstall

Gambar siap diinstal.

Peristiwa informasi untuk menandakan bahwa image siap diinstal. Dibuat setelah gambar lulus pemeriksaan integritas.

kEvent_ResetPartialImageInfo

Reset status gambar yang didownload sebagian.

Meminta aplikasi untuk melupakan status persisten yang terkait dengan gambar yang didownload. Peristiwa ResetPartialImageInfo dibuat setiap kali gambar yang didownload gagal dalam pemeriksaan integritasnya. Setelah peristiwa ResetPartialImageInfo diproses, peristiwa FetchPartialImageInfo berikutnya akan menunjukkan bahwa tidak ada gambar sebagian yang tersedia.

Perhatikan bahwa saat menangani peristiwa ResetPartialImageInfo, aplikasi TIDAK perlu menghapus data gambar itu sendiri, hanya informasi status yang terkait dengan gambar (yaitu URI dan panjang sebagian gambar).

Jika aplikasi tidak mendukung dimulainya kembali download gambar, aplikasi dapat mengabaikan peristiwa ini dengan meneruskannya ke pengendali peristiwa default.

kEvent_SoftwareUpdateAvailable

Update software tersedia.

Dibuat saat SofwareUpdate:ImageQueryResponse diterima sebagai respons terhadap kueri yang berisi informasi tentang update yang tersedia.

kEvent_StartImageDownload

Download gambar telah dimulai.

Peristiwa informasi untuk menandakan dimulainya transaksi download gambar.

kEvent_StartInstallImage

Mulai penginstalan gambar.

Meminta aplikasi untuk menjadi proses penginstalan image firmware yang didownload.

kEvent_StoreImageBlock

Simpan blok data gambar.

Dibuat setiap kali blok data diterima dari server download file. Parameter yang disertakan dengan peristiwa ini memberikan data dan panjang data.

Untuk mendukung melanjutkan download yang terhenti, aplikasi harus mempertahankan jumlah tetap dari jumlah total byte gambar yang disimpan, dan menggunakan nilai ini saat menangani peristiwa FetchPartialImageInfo berikutnya.

RetryPolicyCallback

void(* RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec)

Negara Bagian

 State

Kelas teman

Internal::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

Fungsi publik

Batalkan

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
)

Fungsi statis publik

DefaultEventHandler

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

Fungsi yang dilindungi

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default