nl::Weave::Geräteschicht::SoftwareUpdateManager

Fazit

Übernahme

Direkt bekannte untergeordnete Klassen:
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 im Rahmen des SoftwareUpdateAvailable API-Ereignis-Callbacks eine der folgenden Aktionen auswählen.
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) Typdef
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
Vom SoftwareUpdateManager-Objekt generierte API-Ereignisse
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) Typdef
void(*
State enum

Kurse von Freunden

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

Strebenklemmen

nl::Weave::Geräteschicht::SoftwareUpdateManager::Wiederholungsparameter

Gewerkschaften

nl::Weave::Geräteschicht::SoftwareUpdateManager::InEventParam
nl::Weave::Geräteschicht::SoftwareUpdateManager::OutEventParam

Öffentliche Typen

Aktionstyp

 ActionType

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

Die Standardaktion ist „kAction_Now“.

Attribute
kAction_ApplicationManaged

Ermöglicht der App, die restlichen Phasen der Softwareupdates zu verwalten, zum Beispiel den Download, die Validierung der Image-Integrität und die Installation

Der Statusstatus des Software-Update-Managers wird in den Status „ApplicationManaged“ verschoben. Geplante Softwareupdate-Prüfungen (sofern aktiviert) werden ausgesetzt, bis die Anwendung die Abort API oder die ImageInstallComplete API aufruft.

kAction_DownloadLater

Download beim Start pausieren.

Geplante Software-Updateüberprüfungen (sofern aktiviert) werden gesperrt. Zustandsgerät bleibt im Downloadstatus. Wenn die Anwendung bereit ist, kann sie die Lebenslauf-Download-API aufrufen, um den Download fortzusetzen, oder den Vorgang abbrechen.

kAction_DownloadNow

Starten Sie den Download sofort.

Im Anschluss wird ein kEvent_FetchPartialImageInfo API-Ereignis-Callback generiert.

kAction_Ignore

Der Download wird dann vollständig ignoriert.

Ein kEvent_Finished API-Ereignis-Callback wird mit dem Fehler WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_cancelLED generiert, wenn diese Option ausgewählt ist und die Wiederholungslogik nicht aufgerufen wird.

Ereignis-Callback

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

EventType

 EventType

Vom SoftwareUpdateManager-Objekt generierte API-Ereignisse

Attribute
kEvent_ComputeImageIntegrity

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

Fordert die Anwendung auf, einen Integritätsprüfungswert für das heruntergeladene Image zu berechnen. Wird generiert, sobald der Download abgeschlossen ist.

kEvent_DefaultCheck

Prüfen Sie das Standardverhalten bei der Verarbeitung von Ereignissen.

Wird verwendet, um die korrekte standardmäßige Ereignisverarbeitung in der Anwendung zu prüfen.

Apps dürfen dieses Ereignis NICHT verarbeiten.

kEvent_FetchPartialImageInfo

Informationen zum beibehaltenen Status für ein teilweise heruntergeladenes Bild abrufen.

Ermöglicht der App, Informationen eines teilweise heruntergeladenen Bildes offenzulegen, um den Download an der Stelle fortzusetzen, 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.

Für die Anwendung wird erwartet, dass sie die Länge des Teilbilds im Ausgabeparameter "PartialImageLenInBytes" zurückgibt. In der Anwendung kann der Wert von PartialImageLenInBytes auf 0 gesetzt werden, um anzugeben, dass kein Teilbild vorhanden ist oder der URI des Teilbilds nicht übereinstimmt.

Die Anwendung kann dieses Ereignis ignorieren, indem sie es an den Standard-Event-Handler übergibt. Wenn Sie dies tun, lädt das System immer das gesamte verfügbare Firmware-Image herunter.

kEvent_Finished

Die Software-Update wurde abgeschlossen.

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

kEvent_PrepareImageStorage

Bereiten Sie sich auf das Speichern eines neuen Bildes vor.

Fordert die Anwendung auf, alle erforderlichen Schritte auszuführen, um den lokalen Speicher für den Download eines neuen Firmware-Images vorzubereiten. Die Anwendung kann damit beispielsweise Flash-Seiten löschen.

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

Die Anwendung muss den Abschluss des Vorbereitungsvorgangs durch Aufrufen der PrepareImageStorageComplete()-Methode signalisieren. Das kann im Ereignis-Callback selbst oder später geschehen. Wenn der Aufruf über eine andere Aufgabe als die Weave-Aufgabe erfolgt, muss der Aufrufer die Weave-Stacksperre halten.

Die Anwendung kann das Ereignis „PrepareImageStorage“ ignorieren, indem es an den Standard-Handler für Ereignisse übergeben wird. In diesem Fall fährt das System automatisch mit dem Downloadstatus des Bildes fort.

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

kEvent_PrepareQuery

Bereiten Sie die ImageQuery-Nachricht vor.

Wird ausgelöst, wenn eine Prüfung auf Softwareupdates ausgelöst wurde. Bietet der Anwendung die Möglichkeit, der SofwareUpdate:ImageQuery-Nachricht produktbezogene Informationen bereitzustellen

kEvent_PrepareQuery_Metadata

Bereiten Sie Metadaten für die ImageQuery-Anfrage vor.

Bietet der Anwendung die Möglichkeit, bei Bedarf weitere Meta-Daten an die Nachricht „SofwareUpdate:ImageQuery“ anzuhängen. Wird generiert, wenn die Implementierung zum Abrufen von Metadaten aus der Anwendung bereit ist.

kEvent_QueryPrepareFailed

Fehler beim Vorbereiten einer ImageQuery-Anfrage.

Wird generiert, wenn bei der Implementierung ein Fehler auftritt, während die Anfrage zum Senden eines Softwareupdates vorbereitet wird.

kEvent_QuerySent

ImageQuery-Anfrage wurde gesendet.

Informatives Ereignis, das signalisiert, dass eine Nachricht „SofwareUpdate:ImageQuery“ gesendet wurde

kEvent_ReadyToInstall

Image kann installiert werden.

Ein Informationsereignis, das signalisiert, dass das Image installiert werden kann. Wird erstellt, wenn ein Bild die Integritätsprüfung bestanden hat.

kEvent_ResetPartialImageInfo

Status des teilweise heruntergeladenen Bildes zurücksetzen.

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

Beachten Sie, dass bei der Verarbeitung des ResetPartialImageInfo-Ereignisses die Anwendung NICHT dazu benötigt wird, die Bilddaten selbst zu löschen, sondern nur die mit dem Bild verknüpften Statusinformationen, d.h. den URI und die teilweise Bildlänge.

Wenn die Anwendung die Wiederaufnahme von Bildern nicht unterstützt, wird dieses Ereignis ignoriert. Dazu wird es an den Standard-Event-Handler übergeben.

kEvent_SoftwareUpdateAvailable

Softwareupdate ist verfügbar.

Wird generiert, wenn ein SofwareUpdate:ImageQueryResponse als Antwort auf eine Abfrage empfangen wird, die Informationen zum verfügbaren Update enthält.

kEvent_StartImageDownload

Download des Bildes hat begonnen.

Informationsereignis, das den Beginn einer Bilddownload-Transaktion signalisiert.

kEvent_StartInstallImage

Starten Sie die Installation des Images.

Beantragt die Anwendung als Installation eines heruntergeladenen Firmware-Images

kEvent_StoreImageBlock

Speichern Sie einen Block von Bilddaten.

Wird generiert, wenn ein Datenblock vom Dateidownloadserver empfangen wird. Parameter für dieses Ereignis enthalten die Daten und die Länge der Daten.

Damit ein Download unterbrochen werden kann, sollte die Anwendung eine dauerhafte Anzahl von gespeicherten Bildbytes beibehalten und diesen Wert bei der Verarbeitung zukünftiger FetchPartialImageInfo-Ereignisse verwenden.

Wiederholung – Richtlinienrückruf

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

Status

 State

Kurse von Freunden

Intern::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

Öffentliche Funktionen

Abbrechen

WEAVE_ERROR Abort(
  void
)

Jetzt prüfen

WEAVE_ERROR CheckNow(
  void
)

GetState

State GetState(
  void
)

ImageInstallComplete

WEAVE_ERROR ImageInstallComplete(
  WEAVE_ERROR aError
)

In Bearbeitung

bool IsInProgress(
  void
)

ReadyImageStorageComplete

WEAVE_ERROR PrepareImageStorageComplete(
  WEAVE_ERROR aError
)

SetEventCallback

WEAVE_ERROR SetEventCallback(
  void *const aAppState,
  const EventCallback aEventCallback
)

SetQueryIntervall-Fenster

WEAVE_ERROR SetQueryIntervalWindow(
  uint32_t aMinWaitTimeMs,
  uint32_t aMaxWaitTimeMs
)

SetRetryPolicyCallback festlegen

void SetRetryPolicyCallback(
  const RetryPolicyCallback aRetryPolicyCallback
)

Öffentliche statische Funktionen

Standard-EventHandler

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

Geschützte Funktionen

Software-Update-Manager

 SoftwareUpdateManager()=default

Software-Update-Manager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

Software-Update-Manager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

Operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default