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 livestream.
Contoh kode dan penjelasan berikut menunjukkan cara penggunaan trait.
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
}
}
Waktu tunggu:
withTimeoutmenerapkan durasi maksimum (OTA_TIMEOUT_MS) untuk proses pemantauan. Jika update tidak selesai dalam jangka waktu ini, update akan habis waktunya.Mengamati perubahan sifat: Operator
.distinctUntilChanged()memastikan bahwa kode berikutnya dalam rantai hanya bereaksi saat status sifat benar-benar berubah, sehingga lebih efisien daripada polling konstan.Pemrosesan hingga selesai: Operator
.transformWhileterus memproses update selamaupdateStateOTA bukan merupakan status akhir (seperti berhasil atau gagal).Mengumpulkan status: Untuk setiap perubahan status, blok
.collectdieksekusi untuk memperbarui variabelupdateStatedanupdateStateProgressdengan nilai terbaru dari trait.
Untuk mengetahui informasi selengkapnya, lihat
referensi karakteristik OtaSoftwareUpdateRequestor.
Trait ConfigurationDone
Ciri ini tidak diperlukan untuk aktivasi kamera, tetapi memungkinkan aplikasi
melacak saat perangkat disiapkan sepenuhnya dan dapat digunakan dengan menyetel
atribut AppConfigurationComplete ke true.
Ciri ini harus digunakan setelah ciri OtaSoftwareUpdateRequestor.
device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }