nl::Weave::DeviceLayer::SoftwareUpdateManager

概要

継承

直系の既知のサブクラス:
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
  nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

公開タイプ

ActionType{
  kAction_Ignore,
  kAction_DownloadNow,
  kAction_DownloadLater,
  kAction_ApplicationManaged
}
enum
ソフトウェア アップデートが利用可能になると、アプリケーションは SoftwareUpdateAvailable API イベント コールバックの一部として次のいずれかのアクションを選択できます。
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
SoftwareUpdateManager オブジェクトによって生成された API イベント。
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

友達クラス

Internal::GenericPlatformManagerImpl
friend class

パブリック関数

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

静的パブリック関数

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

プロテクト関数

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

構造体

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

共用体

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

公開タイプ

ActionType

 ActionType

ソフトウェア アップデートが利用可能になると、アプリケーションは SoftwareUpdateAvailable API イベント コールバックの一部として次のいずれかのアクションを選択できます。

デフォルトのアクションは kAction_Now に設定されます。

プロパティ
kAction_ApplicationManaged

ダウンロード、イメージの完全性の検証、インストールなど、ソフトウェア アップデートの残りのフェーズをアプリケーションによって管理できるようにします。

ソフトウェア アップデート マネージャーのステートマシンは、ApplicationManaged の状態に移行します。スケジュール設定されたソフトウェア アップデートのチェック(有効になっている場合)は、アプリケーションが Abort または ImageInstallComplete API を呼び出すまで一時停止されます。

kAction_DownloadLater

起動時にダウンロードを一時停止します。

スケジュール設定されたソフトウェア アップデートのチェック(有効になっている場合)は停止されます。ステートマシンはダウンロード状態のままになります。準備ができたら、アプリは履歴書のダウンロード API を呼び出してダウンロードを続行するか、中止を呼び出してキャンセルできます。

kAction_DownloadNow

すぐにダウンロードを開始します。

kEvent_FetchPartialImageInfo API イベント コールバックが、その直後に生成されます。

kAction_Ignore

ダウンロードを完全に無視します。

このオプションが選択されていて、再試行ロジックが呼び出されない場合、kEvent_Finished API イベント コールバックが生成され、エラー WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED が発生します。

EventCallback

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

EventType

 EventType

SoftwareUpdateManager オブジェクトによって生成された API イベント。

プロパティ
kEvent_ComputeImageIntegrity

イメージの整合性チェック値を計算します。

ダウンロードした画像に対して整合性チェック値を計算するようアプリにリクエストします。ダウンロードが完了すると生成されます。

kEvent_DefaultCheck

デフォルトのイベント処理動作を確認します。

アプリケーションでの適切なデフォルトのイベント処理を検証するために使用されます。

アプリでこのイベントを処理することはできません。

kEvent_FetchPartialImageInfo

部分的にダウンロードされたイメージの永続的な状態の情報を取得します。

以前にダウンロードした部分的な画像に関する情報をアプリが開示する機会を提供し、最後に停止した時点からダウンロードを続行できるようにします。利用可能なソフトウェア アップデートの URI が入力パラメータとして指定され、ダウンロードされる画像が部分的な画像と同じかどうかをアプリが比較するために使用できます。

アプリケーションは、PartialImageLenInBytes 出力パラメータで部分的な画像の長さを返すことが想定されています。アプリケーションで PartialImageLenInBytes の値を 0 に設定して、部分的な画像が存在しないこと、または部分画像の URI が一致しないことを示すことができます。

アプリケーションは、このイベントをデフォルトのイベント ハンドラに渡すことで、このイベントを無視することもできます。これを行うと、システムは常に利用可能なファームウェア イメージ全体をダウンロードします。

kEvent_Finished

ソフトウェアの更新処理が完了しました。

ソフトウェア アップデート チェックが完了したときに、エラーの有無にかかわらず生成されます。失敗によって試行が終了した場合、このイベントに含まれるパラメータによって失敗の理由がわかります。

kEvent_PrepareImageStorage

新しいイメージを保存する準備をします。

新しいファームウェア イメージをダウンロードするためのローカル ストレージを準備するために必要な手順を実行するよう、アプリケーションに依頼します。たとえば、アプリケーションはフラッシュ ページの消去などに使用できます。

PrepareImageStorage イベントは、新しいファームウェア イメージがダウンロードされている場合にのみ生成されます。以前に中断されたダウンロードを再開した場合、PrepareImageStorage は生成されません。

アプリケーションは、PrepareImageStorageComplete() メソッドを呼び出して、準備オペレーションの完了を通知する必要があります。これは、イベント コールバック自体の内部で行うことも、後で行うこともできます。Weave タスク以外のタスクから呼び出された場合、呼び出し元は Weave スタックロックを保持する必要があります。

PrepareImageStorage イベントは、アプリケーションでデフォルトのイベント ハンドラに渡すことで無視できます。完了すると、システムは自動的に画像のダウンロード状態に移行します。

中断されたダウンロードの再開をサポートするには、アプリで画像 URI(イベント パラメータとして指定)を保持し、後続の FetchPartialImageInfo イベントを処理するときにこれを使用する必要があります。

kEvent_PrepareQuery

ImageQuery メッセージを準備する。

ソフトウェア アップデートのチェックがトリガーされたときに生成されます。アプリケーションが製品関連情報を SofwareUpdate:ImageQuery メッセージに提供する機会を提供します。

kEvent_PrepareQuery_Metadata

ImageQuery リクエストのメタデータを準備します。

必要に応じて、アプリケーションが追加のメタデータを SofwareUpdate:ImageQuery メッセージに追加する機会を提供します。実装がアプリケーションからメタデータを取得する準備が整うと生成されます。

kEvent_QueryPrepareFailed

ImageQuery リクエストの準備中にエラーが発生しました。

ソフトウェア アップデート クエリを送信する準備中に実装でエラーが発生した場合に生成されます。

kEvent_QuerySent

ImageQuery リクエストを送信しました。

SofwareUpdate:ImageQuery メッセージが送信されたことを示す情報イベント。

kEvent_ReadyToInstall

イメージをインストールする準備ができました。

イメージをインストールする準備ができたことを知らせる情報イベント。イメージが整合性チェックに合格すると生成されます。

kEvent_ResetPartialImageInfo

部分的にダウンロードされた画像の状態をリセットします。

ダウンロードされたイメージに関連付けられた状態を保持するようアプリケーションにリクエストします。ResetPartialImageInfo イベントは、ダウンロードした画像が整合性チェックに失敗するたびに生成されます。ResetPartialImageInfo イベントが処理されると、後続の FetchPartialImageInfo イベントで、部分的な画像が利用できないことが示されます。

ResetPartialImageInfo イベントを処理する際、アプリは画像データ自体をクリアする必要はありません。画像に関連付けられている状態情報(URI と画像の部分的な長さ)のみをクリアする必要があります。

アプリケーションが画像のダウンロードの再開をサポートしていない場合、このイベントをデフォルトのイベント ハンドラに渡すことで、このイベントを無視できます。

kEvent_SoftwareUpdateAvailable

ソフトウェア アップデートが利用可能です。

利用可能なアップデートの情報を含むクエリへの応答として SofwareUpdate:ImageQueryResponse を受信したときに生成されます。

kEvent_StartImageDownload

画像のダウンロードが開始されました。

画像のダウンロード トランザクションの開始を通知する情報イベント。

kEvent_StartInstallImage

イメージのインストールを開始します。

ダウンロードしたファームウェア イメージをインストールするプロセスをアプリケーションにリクエストします。

kEvent_StoreImageBlock

画像データのブロックを保存します。

ファイル ダウンロード サーバーからデータブロックを受信するたびに生成されます。このイベントに含まれるパラメータは、データとデータの長さを指定します。

中断されたダウンロードの再開をサポートするには、保存されている画像の合計バイト数の永続的なカウントをアプリケーションで保持し、後続の FetchPartialImageInfo イベントを処理するときにこの値を使用する必要があります。

RetryPolicyCallback

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

 State

友達クラス

内部::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

パブリック関数

中止

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
)

静的パブリック関数

DefaultEventHandler

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

プロテクト関数

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default