カメラのオンボーディング後の特性

デバイスのコミッショニング後に使用できるトレイトは次のとおりです。

OtaSoftwareUpdateRequestor トレイト

このトレイトは、カメラデバイスでの OTA ソフトウェア アップデートをモニタリングするためのインターフェースを提供します。コミッショニングが完了すると、カメラはアップデートを開始し、その状態をアプリに報告します。アプリがソフトウェア アップデートの完了ステータスを受け取ると、カメラはライブ配信を開始できます。

次のサンプルコードと説明は、このトレイトの使用方法を示しています。

withTimeout(OTA_TIMEOUT_MS) {
  device.type(OtaRequestorDevice)
    .mapNotNull { it?.trait(OtaSoftwareUpdateRequestor) }
    .distinctUntilChanged()
    .transformWhile { trait ->
      emit(trait)
      !isTerminalState(trait.updateState)
    }
    .collect { trait ->
      updateState = trait.updateState
      updateStateProgress = trait.updateStateProgress
    }
}
  • タイムアウト: withTimeout は、モニタリング プロセスの最大時間(OTA_TIMEOUT_MS)を強制します。この時間内にアップデートが完了しない場合、タイムアウトします。

  • トレイトの変更のモニタリング: .distinctUntilChanged() 演算子を使用すると、チェーン内の後続のコードはトレイトの状態が実際に変化した場合にのみ反応するため、常にポーリングするよりも効率的です。

  • 完了までの処理: OTA updateState が終端状態(成功や失敗など)でない限り、.transformWhile 演算子はアップデートの処理を続行します。

  • ステータスの収集: 状態が変化するたびに、.collect ブロックが実行され 、トレイトの 最新の値で updateState 変数と updateStateProgress 変数が更新されます。

詳細については、 OtaSoftwareUpdateRequestor トレイトのリファレンスをご覧ください

ConfigurationDone トレイト

このトレイトはカメラの有効化には必要ありませんが、AppConfigurationComplete 属性を true に設定することで、デバイスが完全にセットアップされ、使用可能になったタイミングをアプリで追跡できます。 このトレイトは、OtaSoftwareUpdateRequestor トレイトの後に使用する必要があります。

device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }