Trait yang dapat digunakan setelah perangkat diaktifkan adalah:
Trait OtaSoftwareUpdateRequestor
Trait ini menyediakan antarmuka untuk memantau update software OTA di perangkat kamera. Setelah diaktifkan, kamera akan memulai update dan melaporkan statusnya ke aplikasi. Setelah aplikasi menerima status bahwa update software telah selesai, kamera dapat mulai melakukan livestreaming.
Contoh kode dan penjelasan berikut menunjukkan cara penggunaan trait ini.
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
}
}
Batas waktu:
withTimeoutmenerapkan durasi maksimum (OTA_TIMEOUT_MS) untuk proses pemantauan. Jika update tidak selesai dalam waktu ini, waktu akan habis.Mengamati perubahan trait: Operator
.distinctUntilChanged()memastikan bahwa kode berikutnya dalam rantai hanya bereaksi saat status trait benar-benar berubah, sehingga lebih efisien daripada polling konstan.Memproses hingga selesai: Operator
.transformWhileterus memproses update selamaupdateStateOTA bukan status terminal (seperti berhasil atau gagal).Mengumpulkan status: Untuk setiap perubahan status, blok
.collectdijalankan untuk mengupdate variabelupdateStatedanupdateStateProgressdengan nilai terbaru dari trait.
Untuk mengetahui informasi selengkapnya, lihat referensi trait
OtaSoftwareUpdateRequestor.
Trait ConfigurationDone
Trait ini tidak diperlukan untuk aktivasi kamera, tetapi memungkinkan aplikasi melacak kapan perangkat disiapkan sepenuhnya dan dapat digunakan dengan menetapkan atribut AppConfigurationComplete ke true.
Trait ini harus digunakan setelah trait OtaSoftwareUpdateRequestor.
device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }