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 API または ImageInstallComplete API を呼び出すまで一時停止されます。

kAction_DownloadLater

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

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

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

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

新しいファームウェア イメージのダウンロード用にローカル ストレージを準備するために必要なステップを実行するようアプリケーションにリクエストします。アプリケーションはこの関数を使用して、たとえば Flash ページの消去を行えます。

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

パブリック関数

中止(abort)

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

演算子=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default