nl::Weave::DeviceLayer::SoftwareUpdateManager

Riepilogo

Eredità

Sottoclassi note direttamente:
  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 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

Structs

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

Sindacati

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 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, come il download, la convalida dell'integrità dell'immagine e l'installazione.

La macchina dello stato di Software Update Manager passerà allo stato ApplicationManaged. I controlli programmati degli aggiornamenti software (se abilitati) verranno sospesi fino all'interruzione della chiamata all'applicazione o all'API ImageInstallComplete.

kAction_DownloadLater

Metti in pausa il download all'avvio.

I controlli programmati degli aggiornamenti software (se abilitati) verranno sospesi. La macchina a stato rimarrà in stato di download. Quando è pronta, l'applicazione può chiamare l'API resume download per continuare il download o chiamare Interrompi per annullare.

kAction_DownloadNow

Avvia subito il download.

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

kAction_Ignore

Ignorare completamente il download.

Se questa opzione viene selezionata e la logica dei nuovi tentativi non verrà richiamata, verrà generato un callback di eventi API kEvent_Finished con l'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.

Chiede all'applicazione di calcolare un valore di controllo dell'integrità sull'immagine scaricata. Viene generato al termine del download.

kEvent_DefaultCheck

Controlla il comportamento predefinito di gestione degli eventi.

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

Le applicazioni NON devono gestire questo evento.

kEvent_FetchPartialImageInfo

Recupera le informazioni sullo stato persistente per un'immagine scaricata parzialmente.

Consente all'applicazione di divulgare informazioni su un'immagine parziale precedentemente scaricata, in modo che il download possa continuare dal punto in cui è stato interrotto l'ultima volta. L'URI dell'aggiornamento software disponibile viene fornito come parametro di input che l'applicazione può utilizzare per confrontare se l'immagine da scaricare è uguale all'immagine parziale.

L'applicazione deve 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 alcuna immagine parziale o che l'URI dell'immagine parziale non corrisponde.

L'applicazione può scegliere di ignorare questo evento passando al gestore di eventi predefinito. In questo caso, il sistema scarica sempre l'intera immagine firmware disponibile.

kEvent_Finished

Processo di aggiornamento software terminato.

Generato quando un controllo degli aggiornamenti 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

Preparati per l'archiviazione di una nuova immagine.

Consente all'applicazione di eseguire i passaggi necessari per preparare la memoria locale per il download di una nuova immagine firmware. L'applicazione può usare questo metodo, ad esempio, per cancellare le pagine Flash.

L'evento PrepareImageStorage viene generato solo nel caso in cui venga scaricata una nuova immagine firmware. Quando viene ripreso un download interrotto in precedenza, 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 stesso o in un secondo momento. Se viene chiamato da un'attività diversa da Weave, il chiamante deve bloccare lo stack di 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 la ripresa di un download interrotto, l'applicazione deve rendere permanente l'URI dell'immagine (fornito come parametro evento) e utilizzarlo durante la gestione degli eventi FetchPartialImageInfo successivi.

kEvent_PrepareQuery

Prepara il messaggio ImageQuery.

Generato quando è stato attivato un controllo degli aggiornamenti software. Consente all'applicazione di fornire informazioni relative al prodotto per il 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. Viene generato quando l'implementazione è pronta per ottenere metadati dall'applicazione.

kEvent_QueryPrepareFailed

Errore durante la preparazione di una richiesta ImageQuery.

Generato quando l'implementazione rileva un errore durante la preparazione dell'invio di una query di aggiornamento software.

kEvent_QuerySent

La richiesta ImageQuery è stata inviata.

Evento informativo per segnalare 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 generato quando un'immagine ha superato il controllo di integrità.

kEvent_ResetPartialImageInfo

Reimposta lo stato dell'immagine scaricata parzialmente.

Consente all'applicazione di cancellare lo stato persistente associato a un'immagine scaricata. Viene generato un evento ResetPartialImageInfo ogni volta che un'immagine scaricata non supera il controllo dell'integrità. Dopo l'elaborazione di un evento ResetPartialImageInfo, i successivi eventi FetchPartialImageInfo devono indicare che non sono disponibili immagini parziali.

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

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

kEvent_SoftwareUpdateAvailable

È disponibile un aggiornamento software.

Generato quando si riceve una risposta SofwareUpdate:ImageQueryResponse in risposta a una query contenente informazioni sull'aggiornamento disponibile.

kEvent_StartImageDownload

Il download dell'immagine è iniziato.

Evento informativo per segnalare l'inizio di una transazione di download di un'immagine.

kEvent_StartInstallImage

Avvia l'installazione dell'immagine.

Consente di richiedere che l'applicazione avvii il processo di installazione di un'immagine firmware scaricata.

kEvent_StoreImageBlock

Archivia un blocco di dati immagine.

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

Per supportare la ripresa 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 degli eventi FetchPartialImageInfo successivi.

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

operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default