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

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

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) }