ویژگی‌های پس از راه‌اندازی برای نصب دوربین

ویژگی‌هایی که پس از راه‌اندازی دستگاه می‌توانند مورد استفاده قرار گیرند عبارتند از:

ویژگی 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
    }
}
  • Timeout: withTimeout حداکثر مدت زمان ( OTA_TIMEOUT_MS ) را برای فرآیند نظارت اعمال می‌کند. اگر به‌روزرسانی در این مدت زمان کامل نشود، timeout می‌شود.

  • مشاهده تغییرات ویژگی: عملگر .distinctUntilChanged() تضمین می‌کند که کد بعدی در زنجیره فقط زمانی واکنش نشان می‌دهد که وضعیت ویژگی واقعاً تغییر کند، که این امر باعث می‌شود این روش نسبت به نمونه‌برداری مداوم کارآمدتر باشد.

  • پردازش تا زمان تکمیل: عملگر .transformWhile تا زمانی که updateState OTA یک وضعیت پایانی (مانند موفقیت یا شکست) نباشد، به پردازش به‌روزرسانی‌ها ادامه می‌دهد.

  • وضعیت جمع‌آوری: برای هر تغییر وضعیت، بلوک .collect اجرا می‌شود تا متغیرهای updateState و updateStateProgress با آخرین مقادیر از trait به‌روزرسانی شوند.

برای اطلاعات بیشتر، به مرجع ویژگی OtaSoftwareUpdateRequestor مراجعه کنید.

ویژگی ConfigurationDone

این ویژگی برای فعال‌سازی دوربین ضروری نیست، اما به برنامه اجازه می‌دهد تا با تنظیم ویژگی AppConfigurationComplete روی true ، زمانی که دستگاه کاملاً راه‌اندازی و قابل استفاده شد را ردیابی کند. این ویژگی باید پس از ویژگی OtaSoftwareUpdateRequestor استفاده شود.

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