nl::Weave::DeviceLayer::SoftwareUpdateManager

Resumen

Herencia

Subclases conocidas directas:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

Tipos públicos

ActionType{
  kAction_Ignore,
  kAction_DownloadNow,
  kAction_DownloadLater,
  kAction_ApplicationManaged
}
enum
Cuando hay una actualización de software disponible, la aplicación puede seleccionar una de las siguientes acciones como parte de la devolución de llamada de eventos de la 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
Eventos de API generados por el objeto SoftwareUpdateManager
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

Clases de amigos

Internal::GenericPlatformManagerImpl
friend class

Funciones públicas

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

Funciones estáticas públicas

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

Funciones protegidas

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

Structs

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

Uniones

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

Tipos públicos

ActionType

 ActionType

Cuando hay una actualización de software disponible, la aplicación puede seleccionar una de las siguientes acciones como parte de la devolución de llamada de eventos de la API SoftwareUpdateAvailable.

La acción predeterminada se establecerá en kAction_Now.

Propiedades
kAction_ApplicationManaged

Permite que la aplicación administre el resto de las fases de actualización de software, como la descarga, la validación de la integridad de la imagen y la instalación.

La máquina de estado del administrador de actualizaciones de software pasará al estado ApplicationManaged. Las verificaciones programadas de actualizaciones de software (si están habilitadas) se suspenderán hasta que la aplicación llame a la API de Abort o ImageInstallComplete.

kAction_DownloadLater

Pausar la descarga al iniciar.

Se suspenderán las verificaciones programadas de actualizaciones de software (si están habilitadas). La máquina de estado permanecerá en el estado de descarga. Cuando esté lista, la aplicación puede llamar a la API de reanudación de descargas para continuar con la descarga o llamar a Abort para cancelarla.

kAction_DownloadNow

Comienza la descarga de inmediato.

Inmediatamente, se generará una devolución de llamada de evento de la API kEvent_FetchPartialImageInfo.

kAction_Ignore

Ignora la descarga por completo.

Si se selecciona esta opción y no se invocará la lógica de reintento, se generará una devolución de llamada de evento de la API kEvent_Finished con el error WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED.

EventCallback

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

EventType

 EventType

Eventos de API generados por el objeto SoftwareUpdateManager

Propiedades
kEvent_ComputeImageIntegrity

Calcula un valor de verificación de integridad de imagen.

Solicita a la aplicación que calcule un valor de verificación de integridad en la imagen descargada. Se genera una vez que se completa la descarga.

kEvent_DefaultCheck

Comprueba el comportamiento predeterminado de manejo de eventos.

Se usa para verificar el manejo correcto de eventos predeterminados en la aplicación.

Las aplicaciones NO deben manejar este evento.

kEvent_FetchPartialImageInfo

Recupera información de estado persistente de una imagen descargada parcialmente.

Proporciona una oportunidad para que la aplicación divulgue información de una imagen parcial descargada previamente, de modo que la descarga pueda continuar desde el punto en que se detuvo por última vez. El URI de la actualización de software disponible se proporciona como un parámetro de entrada que la aplicación puede usar para comparar si la imagen que se descarga es igual a la imagen parcial.

Se espera que la aplicación muestre la longitud de la imagen parcial en el parámetro de salida PartialImageLenInBytes. La aplicación puede establecer el valor de PartialImageLenInBytes en 0 para indicar que no existe una imagen parcial o que el URI de la imagen parcial no coincide.

La aplicación puede optar por ignorar este evento pasándolo al controlador de eventos predeterminado. Si lo haces, el sistema siempre descargará la imagen de firmware completa.

kEvent_Finished

Finalizó el proceso de actualización de software.

Se generan cuando finaliza una verificación de actualización de software con o sin errores. Los parámetros incluidos con este evento proporcionan el motivo del error si el intento finalizó debido a un error.

kEvent_PrepareImageStorage

Prepárate para almacenar una imagen nueva.

Solicita a la aplicación que realice los pasos necesarios para preparar el almacenamiento local para la descarga de una nueva imagen de firmware. La aplicación puede utilizar esta opción, por ejemplo, para borrar páginas Flash.

El evento PrepareImageStorage se genera solo en el caso de que se descargue una nueva imagen de firmware. Cuando se reanuda una descarga interrumpida anteriormente, no se genera PrepareImageStorage.

La aplicación debe indicar que se completó la operación de preparación llamando al método PrepareImageStorageComplete(). Se puede hacer dentro de la devolución de llamada de eventos en sí o más adelante. Si se llama desde una tarea que no sea la de Weave, el llamador debe mantener el bloqueo de pila de Weave.

La aplicación puede optar por ignorar el evento PrepareImageStorage pasándolo al controlador de eventos predeterminado. Si lo haces, el sistema pasará automáticamente al estado de descarga de la imagen.

Para admitir la reanudación de una descarga interrumpida, la aplicación debe conservar el URI de la imagen (proporcionado como parámetro de evento) y usarlo cuando se manejan eventos FetchPartialImageInfo posteriores.

kEvent_PrepareQuery

Prepara el mensaje de ImageQuery.

Se genera cuando se activa una verificación de actualización de software. Proporciona una oportunidad para que la aplicación proporcione información relacionada con el producto en el mensaje SofwareUpdate:ImageQuery.

kEvent_PrepareQuery_Metadata

Preparar metadatos para la solicitud de ImageQuery

Proporciona la oportunidad para que la aplicación agregue metadatos adicionales al mensaje SofwareUpdate:ImageQuery si es necesario. Se genera cuando la implementación está lista para obtener metadatos de la aplicación.

kEvent_QueryPrepareFailed

Se produjo un error en la preparación de una solicitud de ImageQuery.

Se genera cuando la implementación encuentra un error mientras se prepara para enviar una consulta de actualización de software.

kEvent_QuerySent

Se envió la solicitud de ImageQuery.

Evento informativo que indica que se envió un mensaje SofwareUpdate:ImageQuery.

kEvent_ReadyToInstall

La imagen está lista para instalarse.

Evento informativo que indica que la imagen está lista para instalarse. Se genera una vez que una imagen pasa la verificación de integridad.

kEvent_ResetPartialImageInfo

Restablecer el estado de la imagen descargada parcialmente.

Solicita a la aplicación que olvide el estado persistente asociado con una imagen descargada. Se genera un evento ResetPartialImageInfo cuando una imagen descargada falla en su verificación de integridad. Después de que se procesa un evento ResetPartialImageInfo, los eventos FetchPartialImageInfo posteriores deben indicar que no hay una imagen parcial disponible.

Ten en cuenta que, cuando se controla el evento ResetPartialImageInfo, NO se requiere que la aplicación borre los datos de la imagen en sí, sino solo la información de estado asociada con la imagen (es decir, el URI y la longitud parcial de la imagen).

Si la aplicación no admite la reanudación de descargas de imágenes, puede ignorar este evento y pasarlo al controlador de eventos predeterminado.

kEvent_SoftwareUpdateAvailable

Hay una actualización de software disponible.

Se genera cuando se recibe SofwareUpdate:ImageQueryResponse en respuesta a una consulta que contiene información sobre la actualización disponible.

kEvent_StartImageDownload

Comenzó la descarga de la imagen.

Evento informativo para indicar el inicio de una transacción de descarga de imágenes.

kEvent_StartInstallImage

Inicia la instalación de la imagen.

Solicita que la aplicación sea el proceso de instalación de una imagen de firmware descargada.

kEvent_StoreImageBlock

Almacena un bloque de datos de imagen.

Se genera cada vez que se recibe un bloque de datos del servidor de descargas de archivos. Los parámetros incluidos con este evento proporcionan los datos y la longitud de los datos.

Para admitir la reanudación de una descarga interrumpida, la aplicación debe mantener un recuento persistente de la cantidad total de bytes de imagen almacenados y usar este valor cuando se manejan eventos FetchPartialImageInfo posteriores.

RetryPolicyCallback

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

Estado

 State

Clases de amigos

Interno::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

Funciones públicas

Anular

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
)

Funciones estáticas públicas

DefaultEventHandler

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

Funciones protegidas

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default