Характеристики процесса ввода камеры в эксплуатацию после его завершения

К характеристикам, которые можно использовать после ввода устройства в эксплуатацию, относятся:

Черта 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 ) для процесса мониторинга. Если обновление не завершится в течение этого времени, произойдет таймаут.

  • Отслеживание изменений состояния трейта: оператор .distinctUntilChanged() гарантирует, что последующий код в цепочке реагирует только тогда, когда состояние трейта действительно изменяется, что делает этот подход более эффективным, чем постоянный опрос.

  • Обработка до завершения: Оператор .transformWhile продолжает обработку обновлений до тех пор, пока updateState OTA не переходит в конечное состояние (например, успех или неудача).

  • Статус сбора данных: При каждом изменении состояния выполняется блок .collect , который обновляет переменные updateState и updateStateProgress последними значениями из трейта.

Для получения более подробной информации обратитесь к справочнику по трейту OtaSoftwareUpdateRequestor .

Характеристика ConfigurationDone

Этот трейт не является обязательным для активации камеры, но позволяет приложению отслеживать, когда устройство полностью настроено и готово к использованию, устанавливая атрибут AppConfigurationComplete в true . Этот трейт следует использовать после трейта OtaSoftwareUpdateRequestor .

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