سمات ما بعد إعداد الكاميرا

السمات التي يمكن استخدامها بعد إعداد الجهاز هي:

OtaSoftwareUpdateRequestor 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
    }
}
  • المهلة: يفرض withTimeout مدة قصوى (OTA_TIMEOUT_MS) لعملية المراقبة. إذا لم يكتمل التحديث خلال هذه الفترة، ستنتهي مهلته.

  • مراقبة تغييرات السمة: يضمن عامل التشغيل .distinctUntilChanged() أنّ الرمز البرمجي اللاحق في السلسلة يتفاعل فقط عندما تتغير حالة السمة فعليًا، ما يجعل هذه العملية أكثر فعالية من الاستقصاء المستمر.

  • المعالجة حتى الاكتمال: يواصل عامل التشغيل .transformWhile معالجة التحديثات طالما أنّ عملية التحديث عبر الهواء updateState ليست في حالة نهائية (مثل النجاح أو الإخفاق).

  • حالة التجميع: لكل تغيير في الحالة، يتم تنفيذ كتلة .collect لتعديل المتغيّرَين updateState وupdateStateProgress باستخدام أحدث القيم من السمة.

لمزيد من المعلومات، راجِع مرجع سمة OtaSoftwareUpdateRequestor.

ConfigurationDone trait

هذه السمة غير مطلوبة لتفعيل الكاميرا، ولكنها تتيح للتطبيق تتبُّع الوقت الذي يتم فيه إعداد الجهاز بالكامل وإمكانية استخدامه من خلال ضبط السمة AppConfigurationComplete على true. يجب استخدام هذه السمة بعد السمة OtaSoftwareUpdateRequestor.

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