คุณสมบัติที่ใช้ได้หลังจากเปิดใช้อุปกรณ์มีดังนี้
ลักษณะ 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()ช่วยให้มั่นใจได้ว่าโค้ดที่ตามมาในเชนจะตอบสนองเมื่อสถานะของ ลักษณะเปลี่ยนไปจริงๆ เท่านั้น ซึ่งทำให้มีประสิทธิภาพมากกว่าการสำรวจอย่างต่อเนื่องการประมวลผลจนเสร็จสมบูรณ์: ตัวดำเนินการ
.transformWhileจะประมวลผลการอัปเดตต่อไปตราบใดที่ OTAupdateStateยังไม่ได้อยู่ในสถานะสิ้นสุด (เช่น สำเร็จหรือล้มเหลว)การรวบรวมสถานะ: สำหรับการเปลี่ยนแปลงสถานะแต่ละครั้ง ระบบจะเรียกใช้บล็อก
.collectเพื่ออัปเดตตัวแปรupdateStateและupdateStateProgressด้วย ค่าล่าสุดจากลักษณะ
ดูข้อมูลเพิ่มเติมได้ที่
OtaSoftwareUpdateRequestorการอ้างอิงลักษณะ
ลักษณะ ConfigurationDone
คุณไม่จำเป็นต้องใช้ลักษณะนี้ในการเปิดใช้งานกล้อง แต่ลักษณะนี้จะช่วยให้แอป
ติดตามได้เมื่ออุปกรณ์ตั้งค่าเสร็จสมบูรณ์และพร้อมใช้งานโดยการตั้งค่าแอตทริบิวต์ AppConfigurationComplete เป็น true
ควรใช้ลักษณะนี้หลังจากลักษณะ OtaSoftwareUpdateRequestor
device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }