ลักษณะหลังการเปิดใช้สำหรับการเริ่มต้นใช้งานกล้อง

คุณสมบัติที่ใช้ได้หลังจากเปิดใช้อุปกรณ์มีดังนี้

ลักษณะ 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 จะประมวลผลการอัปเดตต่อไป ตราบใดที่ OTA updateState ยังไม่ได้อยู่ใน สถานะสิ้นสุด (เช่น สำเร็จหรือล้มเหลว)

  • การรวบรวมสถานะ: สำหรับการเปลี่ยนแปลงสถานะแต่ละครั้ง ระบบจะเรียกใช้บล็อก .collect เพื่ออัปเดตตัวแปร updateState และ updateStateProgress ด้วย ค่าล่าสุดจากลักษณะ

ดูข้อมูลเพิ่มเติมได้ที่ OtaSoftwareUpdateRequestorการอ้างอิงลักษณะ

ลักษณะ ConfigurationDone

คุณไม่จำเป็นต้องใช้ลักษณะนี้ในการเปิดใช้งานกล้อง แต่จะช่วยให้แอป ติดตามได้เมื่อตั้งค่าอุปกรณ์เรียบร้อยและพร้อมใช้งานโดยการตั้งค่าแอตทริบิวต์ AppConfigurationComplete เป็น true ควรใช้ลักษณะนี้หลังจากลักษณะ OtaSoftwareUpdateRequestor

device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }