기기가 커미셔닝된 후 사용할 수 있는 특성은 다음과 같습니다.
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()연산자는 체인의 후속 코드가 특성의 상태가 실제로 변경될 때만 반응하도록 보장하므로, 이는 지속적인 폴링보다 효율적입니다.완료될 때까지 처리: OTA
updateState가 종료 상태 (예: 성공 또는 실패)가 아닌 한.transformWhile연산자는 업데이트 처리를 계속합니다.상태 수집: 각 상태 변경에 대해
.collect블록이 실행되어 특성의 최신 값으로updateState및updateStateProgress변수를 업데이트합니다.
자세한 내용은 OtaSoftwareUpdateRequestor 특성 참조를 확인하세요.
ConfigurationDone 트레이트
이 특성은 카메라 활성화에 필요하지 않지만 앱이 AppConfigurationComplete 속성을 true로 설정하여 기기가 완전히 설정되고 사용 가능한 시점을 추적할 수 있습니다.
이 특성은 OtaSoftwareUpdateRequestor 특성 다음에 사용해야 합니다.
device.trait(ConfigurationDone).first().update { setAppConfigurationComplete(true) }