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