מאפיינים של צירוף מצלמות לאחר ההפעלה

אחרי שמפעילים את המכשיר, אפשר להשתמש בתכונות הבאות:

מאפיין 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) }