Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

nl::Weave::DeviceLayer::SoftwareUpdateManager

요약

상속

직접 알려진 서브클래스:
nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl
nl::Weave::DeviceLayer::SoftwareUpdateManagerImpl

공개 유형

ActionType{
  kAction_Ignore,
  kAction_DownloadNow,
  kAction_DownloadLater,
  kAction_ApplicationManaged
}
enum
소프트웨어 업데이트가 제공되면 애플리케이션은 SoftwareUpdateAvailable API 이벤트 콜백의 일부로 다음 작업 중 하나를 선택할 수 있습니다.
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) typedef
void(*
EventType{
  kEvent_PrepareQuery,
  kEvent_PrepareQuery_Metadata,
  kEvent_QueryPrepareFailed,
  kEvent_QuerySent,
  kEvent_SoftwareUpdateAvailable,
  kEvent_FetchPartialImageInfo,
  kEvent_PrepareImageStorage,
  kEvent_StartImageDownload,
  kEvent_StoreImageBlock,
  kEvent_ComputeImageIntegrity,
  kEvent_ResetPartialImageInfo,
  kEvent_ReadyToInstall,
  kEvent_StartInstallImage,
  kEvent_Finished,
  kEvent_DefaultCheck = 100
}
enum
SoftwareUpdateManager 객체에서 생성한 API 이벤트입니다.
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State enum

친구 수업

Internal::GenericPlatformManagerImpl
friend class

공개 함수

Abort(void)
CheckNow(void)
GetState(void)
State
ImageInstallComplete(WEAVE_ERROR aError)
IsInProgress(void)
bool
PrepareImageStorageComplete(WEAVE_ERROR aError)
SetEventCallback(void *const aAppState, const EventCallback aEventCallback)
SetQueryIntervalWindow(uint32_t aMinWaitTimeMs, uint32_t aMaxWaitTimeMs)
SetRetryPolicyCallback(const RetryPolicyCallback aRetryPolicyCallback)
void

공개 정적 함수

DefaultEventHandler(void *apAppState, EventType aEvent, const InEventParam & aInParam, OutEventParam & aOutParam)
void

보호된 함수

SoftwareUpdateManager()=default
SoftwareUpdateManager(const SoftwareUpdateManager &)=delete
SoftwareUpdateManager(const SoftwareUpdateManager &&)=delete
operator=(const SoftwareUpdateManager &)=delete
~SoftwareUpdateManager()=default

구조체

nl::Weave::DeviceLayer::SoftwareUpdateManager::RetryParam

유니온

nl::Weave::DeviceLayer::SoftwareUpdateManager::InEventParam
nl::Weave::DeviceLayer::SoftwareUpdateManager::OutEventParam

공개 유형

작업 유형

 ActionType

소프트웨어 업데이트가 제공되면 애플리케이션은 SoftwareUpdateAvailable API 이벤트 콜백의 일부로 다음 작업 중 하나를 선택할 수 있습니다.

기본 작업은 kAction_Now로 설정됩니다.

속성
kAction_ApplicationManaged

애플리케이션이 다운로드, 이미지 무결성 확인, 설치와 같은 나머지 소프트웨어 업데이트 단계를 관리할 수 있도록 허용합니다.

소프트웨어 업데이트 관리자 상태 머신이 ApplicationManaged 상태로 전환됩니다. 예약된 소프트웨어 업데이트 확인 (사용 설정된 경우)은 애플리케이션이 취소 또는 ImageInstallComplete API를 호출할 때까지 정지됩니다.

kAction_DownloadLater

시작 시 다운로드를 일시중지합니다.

예약된 소프트웨어 업데이트 확인 (사용 설정된 경우)이 정지됩니다. 상태 머신은 다운로드 상태로 유지됩니다. 준비되면 애플리케이션은 다운로드 재개 API를 호출하여 다운로드를 진행하거나 취소를 호출하여 취소할 수 있습니다.

kAction_DownloadNow

바로 다운로드를 시작합니다.

kEvent_FetchPartialImageInfo API 이벤트 콜백은 바로 생성됩니다.

kAction_Ignore

다운로드를 완전히 무시합니다.

이 옵션을 선택하면 재시도 로직이 호출되지 않으면 WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED 오류와 함께 kEvent_Finished API 이벤트 콜백이 생성됩니다.

이벤트 콜백

void(* EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam)

EventType

 EventType

SoftwareUpdateManager 객체에서 생성한 API 이벤트입니다.

속성
kEvent_ComputeImageIntegrity

이미지 무결성 검사 값을 계산합니다.

다운로드한 이미지에 무결성 검사 값을 계산하도록 애플리케이션에 요청합니다. 다운로드가 완료되면 생성됩니다.

kEvent_DefaultCheck

기본 이벤트 처리 동작을 확인합니다.

애플리케이션에서 올바른 기본 이벤트 처리를 확인하는 데 사용됩니다.

애플리케이션은 이 이벤트를 처리하면 안 됩니다.

kEvent_FetchPartialImageInfo

부분적으로 다운로드된 이미지의 영구 상태 정보를 가져옵니다.

애플리케이션이 마지막으로 중단된 지점부터 계속 다운로드될 수 있도록 이전에 다운로드한 이미지 일부의 정보를 애플리케이션에 공개할 기회를 제공합니다. 사용 가능한 소프트웨어 업데이트의 URI는 다운로드 중인 이미지가 부분 이미지와 동일한지 확인하기 위해 애플리케이션에서 사용할 수 있는 입력 매개변수로 제공됩니다.

애플리케이션은 PartialImageLenInBytes 출력 매개변수에 부분 이미지의 길이를 반환해야 합니다. 애플리케이션은 PartialImageLenInBytes 값을 0으로 설정하여 부분 이미지가 없거나 부분 이미지의 URI가 일치하지 않음을 나타낼 수 있습니다.

애플리케이션은 이 이벤트를 기본 이벤트 핸들러에 전달하여 무시할 수 있습니다. 이렇게 하면 시스템은 항상 사용 가능한 펌웨어 이미지 전체를 다운로드합니다.

kEvent_Finished

소프트웨어 업데이트 프로세스가 완료되었습니다.

소프트웨어 업데이트 확인이 완료되거나 오류가 없을 때 생성됩니다. 이 이벤트에 포함된 매개변수는 실패로 인해 시도가 실패한 경우 실패 이유를 제공합니다.

kEvent_PrepareImageStorage

새 이미지의 저장을 준비합니다.

새 펌웨어 이미지를 다운로드하기 위해 로컬 저장소를 준비하는 데 필요한 단계를 실행하도록 애플리케이션에 요청합니다. 예를 들어, 애플리케이션은 이 API를 사용하여 플래시 페이지를 지울 수 있습니다.

PrepareImageStorage 이벤트는 새 펌웨어 이미지가 다운로드되는 경우에만 생성됩니다. 이전에 중단된 다운로드가 재개되면 PrepareImageStorage가 생성되지 않습니다.

애플리케이션은 PrepareImageStorageComplete() 메서드를 호출하여 준비 작업 완료 신호를 보내야 합니다. 이벤트 콜백 자체 내에서 또는 나중에 할 수 있습니다. Weave 작업 이외의 작업에서 호출된 경우 호출자는 Weave 스택 잠금을 보유해야 합니다.

애플리케이션은 PrepareImageStorage 이벤트를 기본 이벤트 핸들러에 전달하여 무시할 수 있습니다. 이 경우 시스템에서 자동으로 이미지 다운로드 상태로 진행합니다.

중단된 다운로드 재개를 지원하기 위해 애플리케이션은 이미지 URI (이벤트 매개변수로 제공됨)를 유지하고 후속 FetchPartialImageInfo 이벤트를 처리할 때 이 메서드를 사용해야 합니다.

kEvent_PrepareQuery

ImageQuery 메시지 준비

소프트웨어 업데이트 확인이 트리거될 때 생성됩니다. 애플리케이션이 제품 관련 정보를 SofwareUpdate:ImageQuery 메시지에 제공할 수 있는 기회를 제공합니다.

kEvent_PrepareQuery_Metadata

ImageQuery 요청의 메타데이터를 준비합니다.

필요한 경우 애플리케이션이 SofwareUpdate:ImageQuery 메시지에 추가 메타데이터를 추가할 수 있는 기회를 제공합니다. 구현이 애플리케이션에서 메타데이터를 가져올 준비가 되면 생성됩니다.

kEvent_QueryPrepareFailed

ImageQuery 요청을 준비하는 중에 오류가 발생했습니다.

소프트웨어 업데이트 쿼리 전송을 준비하는 동안 구현에서 오류가 발생하면 생성됩니다.

kEvent_QuerySent

ImageQuery 요청을 보냈습니다.

SofwareUpdate:ImageQuery 메시지가 전송되었음을 알리는 정보 이벤트입니다.

kEvent_ReadyToInstall

이미지를 설치할 준비가 되었습니다.

이미지를 설치할 준비가 되었음을 알리는 정보 이벤트 이미지가 무결성 검사를 통과하면 생성됩니다.

kEvent_ResetPartialImageInfo

부분적으로 다운로드된 이미지의 상태를 재설정합니다.

다운로드한 이미지에 연결된 상태를 유지할 것을 애플리케이션에 요청합니다. ResetPartialImageInfo 이벤트는 다운로드한 이미지가 무결성 검사에 실패할 때마다 생성됩니다. ResetPartialImageInfo 이벤트가 처리된 후 후속 FetchPartialImageInfo 이벤트에는 사용 가능한 부분 이미지가 없음을 나타내야 합니다.

ResetPartialImageInfo 이벤트를 처리할 때 애플리케이션은 이미지 데이터 자체를 삭제할 필요 없이 이미지와 연결된 상태 정보 (예: URI 및 부분 이미지 길이)만 삭제할 수 있습니다.

애플리케이션에서 이미지 다운로드 재개를 지원하지 않으면 이 이벤트를 기본 이벤트 핸들러에 전달하여 무시할 수 있습니다.

kEvent_SoftwareUpdateAvailable

소프트웨어 업데이트가 있습니다.

사용 가능한 업데이트 정보가 포함된 쿼리에 대한 응답으로 SofwareUpdate:ImageQueryResponse가 수신될 때 생성됩니다.

kEvent_StartImageDownload

이미지 다운로드가 시작되었습니다.

이미지 다운로드 트랜잭션의 시작을 알리는 정보 이벤트

kEvent_StartInstallImage

이미지 설치를 시작합니다.

다운로드한 펌웨어 이미지를 설치하는 중입니다.

kEvent_StoreImageBlock

이미지 데이터 블록을 저장합니다.

데이터 블록이 파일 다운로드 서버에서 수신될 때마다 생성됩니다. 이 이벤트에 포함된 매개변수는 데이터와 데이터 길이를 제공합니다.

다운로드가 중단된 다운로드 재개를 지원하려면 애플리케이션은 저장된 총 이미지 바이트 수를 영구적으로 유지하고 후속 FetchPartialImageInfo 이벤트를 처리할 때 이 값을 사용해야 합니다.

RetryPolicyCallback

void(* RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec)

상태

 State

친구 수업

내부::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

공개 함수

취소

WEAVE_ERROR Abort(
  void
)

지금 확인

WEAVE_ERROR CheckNow(
  void
)

GetState

State GetState(
  void
)

ImageInstallComplete

WEAVE_ERROR ImageInstallComplete(
  WEAVE_ERROR aError
)

진행 중

bool IsInProgress(
  void
)

준비 이미지 저장소 완료

WEAVE_ERROR PrepareImageStorageComplete(
  WEAVE_ERROR aError
)

SetEventCallback

WEAVE_ERROR SetEventCallback(
  void *const aAppState,
  const EventCallback aEventCallback
)

SetQueryIntervalWindow

WEAVE_ERROR SetQueryIntervalWindow(
  uint32_t aMinWaitTimeMs,
  uint32_t aMaxWaitTimeMs
)

재시도 재시도

void SetRetryPolicyCallback(
  const RetryPolicyCallback aRetryPolicyCallback
)

공개 정적 함수

DefaultEventHandler

void DefaultEventHandler(
  void *apAppState,
  EventType aEvent,
  const InEventParam & aInParam,
  OutEventParam & aOutParam
)

보호된 함수

소프트웨어 업데이트 관리자

 SoftwareUpdateManager()=default

소프트웨어 업데이트 관리자

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

소프트웨어 업데이트 관리자

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

연산자=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default