nl::Weave::DeviceLayer::SoftwareUpdateManager

Zusammenfassung

Übernahme

Direkte bekannte Unterklassen:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

Öffentliche Typen

ActionType{
  kAction_Ignore,
  kAction_DownloadNow,
  kAction_DownloadLater,
  kAction_ApplicationManaged
}
enum
Wenn ein Softwareupdate verfügbar ist, kann die Anwendung eine der folgenden Aktionen als Teil des Ereignis-Callbacks der SoftwareUpdateAvailable API auswählen.
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
API-Ereignisse, die vom Objekt SoftwareUpdateManager generiert werden.
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

Freundschaftsklassen

Internal::GenericPlatformManagerImpl
friend class

Öffentliche Funktionen

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

Öffentliche statische Funktionen

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

Geschützte Funktionen

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

Strukturen

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

Gewerkschaften

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

Öffentliche Typen

ActionType

 ActionType

Wenn ein Softwareupdate verfügbar ist, kann die Anwendung eine der folgenden Aktionen als Teil des Ereignis-Callbacks der SoftwareUpdateAvailable API auswählen.

Die Standardaktion wird auf kAction_Now festgelegt.

Attribute
kAction_ApplicationManaged

Ermöglicht der App, die übrigen Phasen der Softwareaktualisierung wie Download, Bildintegritätsprüfung und Installation zu verwalten

Der Statuscomputer des Software-Update-Managers wird in den Status „ApplicationManaged“ versetzt. Geplante Prüfungen auf Software-Updates (falls aktiviert) werden ausgesetzt, bis die Anwendung Abort oder die ImageInstallComplete API aufruft.

kAction_DownloadLater

Download beim Start pausieren.

Geplante Prüfungen auf Softwareupdates (falls aktiviert) werden ausgesetzt. Der Statuscomputer bleibt im Status „Download“. Sobald der Vorgang abgeschlossen ist, kann die Anwendung die API zum Fortsetzen des Downloads aufrufen, um mit dem Download fortzufahren, oder den Aufruf "Abbrechen", um den Vorgang abzubrechen.

kAction_DownloadNow

Starten Sie den Download sofort.

Direkt danach wird ein Callback für das kEvent_FetchPartialImageInfo API-Ereignis generiert.

kAction_Ignore

Den Download ignorieren

Wenn diese Option ausgewählt wird und die Wiederholungslogik nicht aufgerufen wird, wird ein kEvent_Finished API-Ereignisrückruf mit dem Fehler WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED generiert.

EventCallback

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

EventType

 EventType

API-Ereignisse, die vom Objekt SoftwareUpdateManager generiert werden.

Attribute
kEvent_ComputeImageIntegrity

Berechnet einen Wert für die Image-Integritätsprüfung.

Fordert die Anwendung an, einen Integritätsprüfungswert für das heruntergeladene Bild zu berechnen. Wird nach Abschluss des Downloads generiert.

kEvent_DefaultCheck

Prüfen Sie das Standardverhalten für die Ereignisverarbeitung.

Wird verwendet, um die korrekte Verarbeitung von Standardereignissen in der Anwendung zu überprüfen.

Anwendungen dürfen dieses Ereignis NICHT verarbeiten.

kEvent_FetchPartialImageInfo

Ruft persistente Statusinformationen für ein teilweise heruntergeladenes Bild ab.

Bietet die Möglichkeit für die Anwendung, Informationen zu einem bereits heruntergeladenen Teilbild offenzulegen, sodass der Download an der Stelle fortgesetzt werden kann, an der er zuletzt angehalten wurde. Der URI des verfügbaren Softwareupdates wird als Eingabeparameter bereitgestellt, mit dem die Anwendung vergleichen kann, ob das heruntergeladene Bild mit dem Teilbild identisch ist.

Es wird erwartet, dass die Anwendung die Länge des Teilbilds im Ausgabeparameter "PartialImageLenInBytes" zurückgibt. Die Anwendung kann den Wert von PartialImageLenInBytes auf 0 setzen, um anzuzeigen, dass kein Teilbild vorhanden ist oder dass der URI des Teilbildes nicht übereinstimmt.

Die Anwendung kann dieses Ereignis ignorieren, indem es an den Standard-Ereignis-Handler übergeben wird. In diesem Fall lädt das System immer das gesamte verfügbare Firmware-Image herunter.

kEvent_Finished

Software-Update abgeschlossen.

Wird generiert, wenn die Prüfung auf Softwareupdates mit oder ohne Fehler abgeschlossen wurde. In diesem Ereignis enthaltene Parameter geben den Grund für einen Fehler an, wenn der Versuch aufgrund eines Fehlers abgeschlossen wurde.

kEvent_PrepareImageStorage

Bereiten Sie die Speicherung eines neuen Images vor.

Fordert die Anwendung auf, alle Schritte auszuführen, die zur Vorbereitung des lokalen Speichers für den Download eines neuen Firmware-Images erforderlich sind. Die Anwendung kann dies beispielsweise zum Löschen von Flash-Seiten verwenden.

Das PrepareImageStorage-Ereignis wird nur generiert, wenn ein neues Firmware-Image heruntergeladen wird. Wenn ein zuvor unterbrochener Download fortgesetzt wird, wird PrepareImageStorage nicht generiert.

Die Anwendung muss den Abschluss des Vorbereitungsvorgangs durch Aufrufen der Methode PrepareImageStorageComplete() signalisieren. Dies kann im Ereignis-Callback selbst oder zu einem späteren Zeitpunkt erfolgen. Wird von einer anderen Aufgabe als der Weave-Aufgabe aufgerufen, muss der Aufrufer die Weave-Stapelsperre gedrückt halten.

Die Anwendung kann das PrepareImageStorage -Ereignis ignorieren, indem sie es an den Standard-Ereignis-Handler übergibt. In diesem Fall fährt das System automatisch in den Status des Image-Downloads fort.

Damit ein unterbrochener Download fortgesetzt werden kann, sollte die Anwendung den Image-URI (als Ereignisparameter bereitgestellt) beibehalten und diesen bei der Verarbeitung nachfolgender FetchPartialImageInfo-Ereignisse verwenden.

kEvent_PrepareQuery

ImageQuery-Nachricht vorbereiten.

Wird generiert, wenn eine Prüfung auf Softwareupdates ausgelöst wurde. Bietet die Möglichkeit für die Anwendung, produktbezogene Informationen in die SofwareUpdate:ImageQuery-Nachricht aufzunehmen.

kEvent_PrepareQuery_Metadata

Metadaten für ImageQuery-Anfrage vorbereiten

Bietet die Möglichkeit für die Anwendung, bei Bedarf zusätzliche Metadaten zur SofwareUpdate:ImageQuery-Nachricht hinzuzufügen. Wird generiert, wenn die Implementierung bereit ist, Metadaten aus der Anwendung abzurufen.

kEvent_QueryPrepareFailed

Fehler beim Vorbereiten einer ImageQuery-Anfrage.

Wird generiert, wenn bei der Implementierung während der Vorbereitung zum Senden einer Softwareupdate-Abfrage ein Fehler auftritt.

kEvent_QuerySent

ImageQuery-Anfrage wurde gesendet.

Informatives Ereignis zum Signalisieren, dass eine SofwareUpdate:ImageQuery-Nachricht gesendet wurde.

kEvent_ReadyToInstall

Das Image kann jetzt installiert werden.

Informatives Ereignis, das signalisiert, dass das Image zur Installation bereit ist. Wird generiert, sobald ein Bild die Integritätsprüfung besteht.

kEvent_ResetPartialImageInfo

Status eines teilweise heruntergeladenen Bildes zurücksetzen.

Fordert die Anwendung an, den beibehaltenen Status zu löschen, der mit einem heruntergeladenen Bild verknüpft ist. Ein ResetPartialImageInfo-Ereignis wird generiert, wenn ein heruntergeladenes Bild die Integritätsprüfung nicht besteht. Nachdem ein ResetPartialImageInfo-Ereignis verarbeitet wurde, sollten nachfolgende FetchPartialImageInfo-Ereignisse anzeigen, dass kein Teilbild verfügbar ist.

Bei der Verarbeitung des ResetPartialImageInfo-Ereignisses muss die Anwendung NICHT die Bilddaten selbst löschen, sondern nur die mit dem Bild verknüpften Statusinformationen, d.h. die URI und Teilbild des Bildes.

Wenn die Anwendung die Wiederaufnahme von Bilddownloads nicht unterstützt, kann dieses Ereignis ignoriert werden, indem es an den Standard-Ereignis-Handler übergeben wird.

kEvent_SoftwareUpdateAvailable

Ein Softwareupdate ist verfügbar.

Wird generiert, wenn ein SofwareUpdate:ImageQueryResponse als Antwort auf eine Anfrage mit Informationen zum verfügbaren Update empfangen wird.

kEvent_StartImageDownload

Der Bild-Download wurde gestartet.

Informationsereignis zum Signalisieren des Starts einer Bilddownload-Transaktion.

kEvent_StartInstallImage

Starten Sie die Image-Installation.

Fordert die Anwendung an, ein heruntergeladenes Firmware-Image zu installieren.

kEvent_StoreImageBlock

Speichert einen Block mit Bilddaten.

Wird immer dann generiert, wenn ein Datenblock vom Datei-Download-Server empfangen wird. Die in diesem Ereignis enthaltenen Parameter liefern die Daten und die Länge der Daten.

Damit ein unterbrochener Download fortgesetzt werden kann, sollte die Anwendung die Gesamtzahl der gespeicherten Image-Bytes permanent zählen und diesen Wert bei der Verarbeitung nachfolgender FetchPartialImageInfo-Ereignisse verwenden.

RetryPolicyCallback

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

Status

 State

Freundschaftsklassen

Intern::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

Öffentliche Funktionen

Abbrechen

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
)

Öffentliche statische Funktionen

DefaultEventHandler

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

Geschützte Funktionen

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

Operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default