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

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

מאפיין OtaSoftwareUpdateRequestor

   הטמעה באפליקציה לדוגמה ל-Android   

המאפיין הזה מספק ממשק למעקב אחרי עדכון תוכנה 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
    }
}
  • ‫Timeout: withTimeout מגדיר משך זמן מקסימלי (OTA_TIMEOUT_MS) לתהליך המעקב. אם העדכון לא יושלם בפרק הזמן הזה, הוא יפוג.

  • מעקב אחרי שינויים במאפיינים: האופרטור .distinctUntilChanged() מוודא שהקוד הבא בשרשרת יגיב רק כשמצב המאפיין משתנה בפועל, ולכן הוא יעיל יותר מסקר קבוע.

  • עיבוד עד לסיום: האופרטור .transformWhile ממשיך לעבד עדכונים כל עוד ה-OTA updateState לא נמצא במצב סופי (כמו הצלחה או כישלון).

  • איסוף סטטוס: לכל שינוי סטטוס, הבלוק .collect מופעל כדי לעדכן את המשתנים updateState ו-updateStateProgress עם הערכים האחרונים מהמאפיין.

מידע נוסף זמין במאמר בנושא OtaSoftwareUpdateRequestor.

‫ConfigurationDone trait

המאפיין הזה לא נדרש להפעלת המצלמה, אבל הוא מאפשר לאפליקציה לעקוב אחרי השלמת ההגדרה של המכשיר והפיכתו לשימושי, על ידי הגדרת המאפיין AppConfigurationComplete לערך true. צריך להשתמש במאפיין הזה אחרי המאפיין OtaSoftwareUpdateRequestor.

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