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

Union

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

공개 유형

ActionType

 ActionType

소프트웨어 업데이트를 사용할 수 있는 경우 애플리케이션은 SoftwareUpdateAvailable API 이벤트 콜백의 일부로 다음 작업 중 하나를 선택할 수 있습니다.

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

속성
kAction_ApplicationManaged

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

소프트웨어 업데이트 관리자 상태 시스템이 ApplicationManaged 상태로 이동합니다. 예약된 소프트웨어 업데이트 검사 (사용 설정된 경우)는 애플리케이션이 Abort 또는 ImageInstallComplete API를 호출할 때까지 정지됩니다.

kAction_DownloadLater

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

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

kAction_DownloadNow

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

그 직후 kEvent_FetchPartialImageInfo API 이벤트 콜백이 생성됩니다.

kAction_Ignore

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

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

EventCallback

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

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

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

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

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

다운로드된 이미지와 연결된 유지 상태를 삭제하도록 애플리케이션에 요청합니다. RemovePartialImageInfo 이벤트는 다운로드한 이미지가 무결성 검사에 실패할 때마다 생성됩니다. 재설정PartialImageInfo 이벤트가 처리된 후 이후의 FetchPartialImageInfo 이벤트는 부분 이미지를 사용할 수 없음을 나타냅니다.

재설정PartialImageInfo 이벤트를 처리할 때 애플리케이션은 이미지 데이터 자체를 삭제할 필요가 없으며 이미지와 연결된 상태 정보 (예: 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
)

CheckNow

WEAVE_ERROR CheckNow(
  void
)

GetState

State GetState(
  void
)

ImageInstallComplete

WEAVE_ERROR ImageInstallComplete(
  WEAVE_ERROR aError
)

IsInProgress

bool IsInProgress(
  void
)

PrepareImageStorageComplete

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
)

SetRetryPolicyCallback

void SetRetryPolicyCallback(
  const RetryPolicyCallback aRetryPolicyCallback
)

공개 정적 함수

DefaultEventHandler

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

보호된 함수

SoftwareUpdateManager

 SoftwareUpdateManager()=default

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &
)=delete

SoftwareUpdateManager

 SoftwareUpdateManager(
  const SoftwareUpdateManager &&
)=delete

연산자=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default