nl::Weave::DeviceLayer::SoftwareUpdateManager

Riepilogo

Eredità

Sottoclassi note dirette:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

Tipi pubblici

ActionType{
  kAction_Ignore,
  kAction_DownloadNow,
  kAction_DownloadLater,
  kAction_ApplicationManaged
}
enum
Quando è disponibile un aggiornamento software, l'applicazione può scegliere una delle seguenti azioni come parte del callback dell'evento dell'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
Eventi API generati dall'oggetto SoftwareUpdateManager.
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

Classi di amici

Internal::GenericPlatformManagerImpl
friend class

Funzioni pubbliche

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

Funzioni statiche pubbliche

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

Funzioni protette

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

Strutture

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

Unione

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

Tipi pubblici

ActionType

 ActionType

Quando è disponibile un aggiornamento software, l'applicazione può scegliere una delle seguenti azioni come parte del callback dell'evento dell'API SoftwareUpdateAvailable.

L'azione predefinita sarà impostata su kAction_Now.

Proprietà
kAction_ApplicationManaged

Consente all'applicazione di gestire le altre fasi dell'aggiornamento del software, quali download, convalida dell'integrità dell'immagine e installazione.

La macchina a stato del gestore degli aggiornamenti software passerà allo stato ApplicationManaged. I controlli degli aggiornamenti software pianificati (se attivati) verranno sospesi fino a quando l'applicazione non chiama l'API Abort o ImageInstallComplete.

kAction_DownloadLater

Sospendi il download all'avvio.

I controlli degli aggiornamenti software pianificati (se attivati) verranno sospesi. La macchina a stato rimarrà in stato Download. Quando è pronta, l'applicazione può chiamare l'API per il ripristino del download per procedere con il download o chiamare Abort per annullare.

kAction_DownloadNow

Avvia subito il download.

Subito dopo verrà generato un callback dell'evento API kEvent_FetchPartialImageInfo.

kAction_Ignore

Ignorare del tutto il download.

Se questa opzione viene selezionata e la logica di nuovo tentativo non verrà richiamata, verrà generato un callback di evento API kEvent_Finished con errore WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED.

EventCallback

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

EventType

 EventType

Eventi API generati dall'oggetto SoftwareUpdateManager.

Proprietà
kEvent_ComputeImageIntegrity

Calcola un valore di controllo dell'integrità dell'immagine.

Richiede all'applicazione di calcolare un valore di controllo dell'integrità sull'immagine scaricata. Vengono generati al termine del download.

kEvent_DefaultCheck

Controlla il comportamento predefinito di gestione degli eventi.

Utilizzato per verificare la corretta gestione predefinita degli eventi nell'applicazione.

Le applicazioni NON devono gestire questo evento.

kEvent_FetchPartialImageInfo

Recuperate informazioni sullo stato persistenti di un'immagine scaricata parzialmente.

Offre all'applicazione l'opportunità di divulgare le informazioni di un'immagine parziale precedentemente scaricata, in modo che il download possa continuare dal punto in cui è stato interrotto. L'URI dell'aggiornamento software disponibile viene fornito come parametro di input che l'applicazione può utilizzare per confrontare se l'immagine scaricata è uguale a quella parziale.

L'applicazione dovrebbe restituire la lunghezza dell'immagine parziale nel parametro di output PartialImageLenInBytes. L'applicazione può impostare il valore di PartialImageLenInBytes su 0 per indicare che non esiste un'immagine parziale o che l'URI dell'immagine parziale non corrisponde.

L'applicazione può scegliere di ignorare questo evento passandolo al gestore di eventi predefinito. In tal caso, il sistema scaricherà sempre l'intera immagine del firmware disponibile.

kEvent_Finished

Procedura di aggiornamento del software terminata.

Vengono generati quando il controllo degli aggiornamenti del software è terminato con o senza errori. I parametri inclusi in questo evento forniscono il motivo dell'errore se il tentativo è terminato a causa di un errore.

kEvent_PrepareImageStorage

Prepararsi per l'archiviazione di una nuova immagine.

Richiede all'applicazione di eseguire gli eventuali passaggi necessari per preparare l'archiviazione locale per il download di una nuova immagine del firmware. L'applicazione può utilizzarla, ad esempio, per cancellare pagine flash.

L'evento PrepareImageStorage viene generato solo nel caso in cui viene scaricata una nuova immagine del firmware. Quando viene ripreso un download interrotto in precedenza, il metodo PrepareImageStorage non viene generato.

L'applicazione deve segnalare il completamento dell'operazione di preparazione chiamando il metodo PrepareImageStorageComplete(). Può farlo all'interno del callback dell'evento o in un secondo momento. Se la chiamata viene chiamata da un'attività diversa dall'attività Weave, il chiamante deve mantenere il blocco dello stack Weave.

L'applicazione può scegliere di ignorare l'evento PrepareImageStorage passando al gestore di eventi predefinito. In questo caso, il sistema passa automaticamente allo stato di download dell'immagine.

Per supportare il ripristino di un download interrotto, l'applicazione deve rendere persistenti l'URI dell'immagine (fornito come parametro evento) e utilizzarlo quando gestisce i successivi eventi FetchPartialImageInfo.

kEvent_PrepareQuery

Prepara il messaggio ImageQuery.

Viene generato quando viene attivato un controllo degli aggiornamenti software. Fornisce all'applicazione un'opportunità per fornire informazioni relative al prodotto al messaggio SofwareUpdate:ImageQuery.

kEvent_PrepareQuery_Metadata

Prepara i metadati per la richiesta ImageQuery.

Offre all'applicazione l'opportunità di aggiungere metadati aggiuntivi al messaggio SofwareUpdate:ImageQuery, se necessario. Vengono generati quando l'implementazione è pronta per ottenere metadati dall'applicazione.

kEvent_QueryPrepareFailed

Errore durante la preparazione di una richiesta ImageQuery.

Vengono generati quando l'implementazione rileva un errore durante la preparazione all'invio di una query di aggiornamento del software.

kEvent_QuerySent

La richiesta ImageQuery è stata inviata.

Evento informativo che segnala l'invio di un messaggio SofwareUpdate:ImageQuery.

kEvent_ReadyToInstall

L'immagine è pronta per essere installata.

Evento informativo che segnala che l'immagine è pronta per essere installata. Viene generata quando un'immagine supera il controllo di integrità.

kEvent_ResetPartialImageInfo

Reimposta stato dell'immagine scaricata parzialmente.

Richiede all'applicazione di eliminare lo stato persistente associato a un'immagine scaricata. Un evento ResetPartialImageInfo viene generato ogni volta che un'immagine scaricata non supera il controllo di integrità. Dopo l'elaborazione di un evento ResetPartialImageInfo, gli eventi FetchPartialImageInfo successivi dovrebbero indicare che non è disponibile alcuna immagine parziale.

Tieni presente che, durante la gestione dell'evento ResetPartialImageInfo, l'applicazione NON deve cancellare i dati dell'immagine stessa, ma solo le informazioni sullo stato associate all'immagine (ovvero l'URI e la lunghezza parziale dell'immagine).

Se l'applicazione non supporta la ripresa del download delle immagini, potrebbe ignorare questo evento passandolo al gestore di eventi predefinito.

kEvent_SoftwareUpdateAvailable

È disponibile un aggiornamento software.

Vengono generati quando viene ricevuto un SofwareUpdate:ImageQueryResponse in risposta a una query contenente informazioni sull'aggiornamento disponibile.

kEvent_StartImageDownload

Il download dell'immagine è iniziato.

Evento informativo che segnala l'inizio di una transazione di download di un'immagine.

kEvent_StartInstallImage

Inizia l'installazione dell'immagine.

Richiede che l'applicazione sia il processo di installazione di un'immagine del firmware scaricata.

kEvent_StoreImageBlock

Archivia un blocco di dati immagine.

Viene generato ogni volta che viene ricevuto un blocco dati dal server di download dei file. I parametri inclusi in questo evento forniscono i dati e la lunghezza dei dati.

Per supportare il ripristino di un download interrotto, l'applicazione deve mantenere un conteggio permanente del numero totale di byte immagine archiviati e utilizzare questo valore durante la gestione di successivi eventi FetchPartialImageInfo.

RetryPolicyCallback

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

Stato

 State

Classi di amici

Interno::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

Funzioni pubbliche

Interrompi

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
)

Funzioni statiche pubbliche

DefaultEventHandler

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

Funzioni protette

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

operatore=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default