Rasgos posteriores a la puesta en marcha para la incorporación de la cámara

Los atributos que se pueden usar después de que se pone en funcionamiento el dispositivo son los siguientes:

Atributo OtaSoftwareUpdateRequestor

Este atributo proporciona una interfaz para supervisar una actualización de software OTA en el dispositivo de la cámara. Una vez que se pone en funcionamiento, la cámara inicia la actualización y le informa su estado a la app. Una vez que la app recibe el estado de que se completó la actualización de software, la cámara puede comenzar a transmitir en vivo.

En el siguiente código de muestra y la explicación, se muestra cómo se puede usar el atributo.

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
    }
}
  • Tiempo de espera: withTimeout aplica una duración máxima (OTA_TIMEOUT_MS) para el proceso de supervisión. Si la actualización no se completa en este tiempo, se agota el tiempo de espera.

  • Observación de cambios de atributos: El operador .distinctUntilChanged() garantiza que el código posterior de la cadena solo reaccione cuando el estado del atributo cambie realmente, lo que lo hace más eficiente que el sondeo constante.

  • Procesamiento hasta la finalización: El operador .transformWhile continúa procesando actualizaciones siempre que el updateState de OTA no sea un estado terminal (como éxito o falla).

  • Recopilación de estado: Para cada cambio de estado, se ejecuta el bloque .collect para actualizar las variables updateState y updateStateProgress con los valores más recientes del atributo.

Para obtener más información, consulta la referencia del atributo OtaSoftwareUpdateRequestor.

Atributo ConfigurationDone

Este atributo no es obligatorio para la activación de la cámara, pero permite que la app haga un seguimiento de cuándo el dispositivo está completamente configurado y se puede usar configurando el atributo AppConfigurationComplete en true. Este atributo se debe usar después del atributo OtaSoftwareUpdateRequestor.

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