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

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

السمة 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 معالجة التحديثات ما دامت updateState في OTA ليست حالة نهائية (مثل النجاح أو الفشل).

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

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

السمة ConfigurationDone

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

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