デバイスのコミッショニング後に使用できるトレイトは次のとおりです。
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) }