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
เมื่อการอัปเดตซอฟต์แวร์พร้อมให้บริการ แอปพลิเคชันจะเลือกการดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ได้ ซึ่งเป็นส่วนหนึ่งของ Callback ของเหตุการณ์ 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
เหตุการณ์ API ที่สร้างโดยออบเจ็กต์ SoftwareUpdateManager
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

 ActionType

เมื่อการอัปเดตซอฟต์แวร์พร้อมใช้งาน แอปพลิเคชันจะเลือกการดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ได้ ซึ่งเป็นส่วนหนึ่งของ Callback ของเหตุการณ์ SoftwareUpdateavailable API

การดำเนินการเริ่มต้นจะตั้งค่าเป็น kAction_Now

พร็อพเพอร์ตี้
kAction_ApplicationManaged

อนุญาตให้แอปพลิเคชันจัดการขั้นตอนที่เหลือของการอัปเดตซอฟต์แวร์ เช่น การดาวน์โหลด การตรวจสอบความสมบูรณ์ของรูปภาพ และการติดตั้ง

เครื่องสถานะของตัวจัดการการอัปเดตซอฟต์แวร์จะย้ายไปที่สถานะ ApplicationManaged การตรวจสอบการอัปเดตซอฟต์แวร์ที่กำหนดเวลาไว้ (หากเปิดใช้) จะถูกระงับจนกว่าแอปพลิเคชันจะเรียกใช้ Abort หรือ ImageInstallComplete API

kAction_DownloadLater

หยุดการดาวน์โหลดชั่วคราวเมื่อเริ่ม

การตรวจสอบการอัปเดตซอฟต์แวร์ที่กำหนดเวลาไว้ (หากเปิดใช้) จะถูกระงับ เครื่องของรัฐจะยังคงอยู่ในสถานะดาวน์โหลด เมื่อพร้อมแล้ว แอปพลิเคชันจะเรียกใช้ API การดาวน์โหลดประวัติการทำงานเพื่อดำเนินการดาวน์โหลดต่อ หรือเรียกใช้การยกเลิกเพื่อยกเลิก

kAction_DownloadNow

เริ่มดาวน์โหลดทันที

ระบบจะสร้างการเรียกกลับเหตุการณ์ kEvent_FetchOtherImageInfo API ทันทีในภายหลัง

kAction_Ignore

ละเว้นการดาวน์โหลดโดยสิ้นเชิง

ระบบจะสร้างการเรียกกลับของเหตุการณ์ kEvent_Finished API โดยมีข้อผิดพลาด WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED หากเลือกตัวเลือกนี้ไว้และจะไม่เรียกใช้ตรรกะการลองอีกครั้ง

EventCallback

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

EventType

 EventType

เหตุการณ์ API ที่สร้างโดยออบเจ็กต์ SoftwareUpdateManager

พร็อพเพอร์ตี้
kEvent_ComputeImageIntegrity

คำนวณค่าการตรวจสอบความสมบูรณ์ของรูปภาพ

ขอให้แอปพลิเคชันคำนวณค่าการตรวจสอบความสมบูรณ์เหนืออิมเมจที่ดาวน์โหลด สร้างขึ้นเมื่อการดาวน์โหลดเสร็จสมบูรณ์

kEvent_DefaultCheck

ตรวจสอบลักษณะการทำงานของการจัดการเหตุการณ์เริ่มต้น

ใช้เพื่อยืนยันการจัดการเหตุการณ์เริ่มต้นที่ถูกต้องในแอปพลิเคชัน

แอปพลิเคชันต้องไม่จัดการกิจกรรมนี้

kEvent_FetchPartialImageInfo

ดึงข้อมูลสถานะที่คงอยู่สำหรับรูปภาพที่ดาวน์โหลดบางส่วน

เปิดโอกาสให้แอปพลิเคชันเปิดเผยข้อมูลของรูปภาพบางส่วนที่ได้ดาวน์โหลดไว้ก่อนหน้านี้ เพื่อให้สามารถดาวน์โหลดต่อจากจุดที่หยุดดาวน์โหลดได้ URI ของการอัปเดตซอฟต์แวร์ที่ใช้ได้จะระบุเป็นพารามิเตอร์อินพุตที่แอปพลิเคชันสามารถใช้เปรียบเทียบว่ารูปภาพที่ดาวน์โหลดเหมือนกับรูปภาพบางส่วน

คาดว่าแอปพลิเคชันจะส่งคืนความยาวของรูปภาพบางส่วนในพารามิเตอร์เอาต์พุต บางส่วนของImageLenInBytes แอปพลิเคชันสามารถกำหนดค่าของ บางส่วนของImageLenInBytes เป็น 0 เพื่อระบุว่าไม่มีรูปภาพบางส่วน หรือ URI ของรูปภาพบางส่วนไม่ตรงกัน

แอปพลิเคชันอาจเลือกละเว้นเหตุการณ์นี้ด้วยการส่งต่อไปยังเครื่องจัดการเหตุการณ์เริ่มต้น หากส่งออกแล้ว ระบบจะดาวน์โหลดอิมเมจเฟิร์มแวร์ที่มีทั้งหมดเสมอ

kEvent_Finished

ขั้นตอนการอัปเดตซอฟต์แวร์เสร็จสิ้นแล้ว

สร้างเมื่อการตรวจสอบการอัปเดตซอฟต์แวร์เสร็จสิ้นโดยมีหรือไม่มีข้อผิดพลาด พารามิเตอร์ที่รวมอยู่ในเหตุการณ์นี้จะระบุเหตุผลที่ล้มเหลวหากดำเนินการเสร็จสิ้นเนื่องจากล้มเหลว

kEvent_PrepareImageStorage

เตรียมพื้นที่เก็บข้อมูลรูปภาพใหม่

ขอให้แอปพลิเคชันทำตามขั้นตอนที่จำเป็นในการเตรียมพื้นที่เก็บข้อมูลในเครื่องสำหรับการดาวน์โหลดอิมเมจเฟิร์มแวร์ใหม่ แอปพลิเคชันสามารถใช้สิ่งนี้ เช่น เพื่อลบหน้า Flash

ระบบจะสร้างเหตุการณ์ PrepareImageStorage เฉพาะกรณีที่ดาวน์โหลดอิมเมจเฟิร์มแวร์ใหม่ เมื่อการดาวน์โหลดที่หยุดชะงักก่อนหน้านี้ดำเนินการต่อ ระบบจะไม่สร้าง PrepareImageStorage

แอปพลิเคชันต้องส่งสัญญาณแจ้งการดำเนินการเตรียมเสร็จสมบูรณ์โดยเรียกใช้เมธอด PrepareImageStorageComplete() โดยอาจทำภายในการเรียกกลับของเหตุการณ์เอง หรือในภายหลังก็ได้ หากเรียกใช้จากงานอื่นที่ไม่ใช่งาน Weave ผู้โทรจะต้องล็อกสแต็ก Weave ค้างไว้

แอปพลิเคชันสามารถเลือกที่จะละเว้นเหตุการณ์ PrepareImageStorage โดยการส่งไปยังเครื่องจัดการเหตุการณ์เริ่มต้น เมื่อดำเนินการเสร็จแล้ว ระบบจะดำเนินการต่อเป็นสถานะดาวน์โหลดภาพ

เพื่อให้การดาวน์โหลดที่หยุดชะงักกลับมาทำงานอีกครั้ง แอปพลิเคชันควรคง URI ของรูปภาพ (ซึ่งระบุเป็นพารามิเตอร์เหตุการณ์) ไว้และใช้เมื่อจัดการเหตุการณ์ Fetchส่วนอื่นๆImageInfo ที่ตามมา

kEvent_PrepareQuery

เตรียมข้อความ ImageQuery

สร้างขึ้นเมื่อมีการเรียกให้ตรวจหาการอัปเดตซอฟต์แวร์ทำงาน เปิดโอกาสให้แอปพลิเคชันส่งข้อมูลที่เกี่ยวข้องกับผลิตภัณฑ์ไปยังข้อความ SofwareUpdate:ImageQuery

kEvent_PrepareQuery_Metadata

เตรียมข้อมูลเมตาสำหรับคำขอ ImageQuery

ให้โอกาสแอปพลิเคชันในการเพิ่มข้อมูลเมตาเพิ่มเติมลงในข้อความ SofwareUpdate:ImageQuery หากจำเป็น สร้างขึ้นเมื่อการติดตั้งใช้งานพร้อมที่จะรับข้อมูลเมตาจากแอปพลิเคชัน

kEvent_QueryPrepareFailed

เกิดข้อผิดพลาดขณะเตรียมคำขอ ImageQuery

สร้างขึ้นเมื่อการใช้งานพบข้อผิดพลาดขณะเตรียมส่งคำค้นหาการอัปเดตซอฟต์แวร์

kEvent_QuerySent

ส่งคำขอ ImageQuery แล้ว

เหตุการณ์ที่ให้ข้อมูลที่จะส่งสัญญาณว่าส่งข้อความ SofwareUpdate:ImageQuery แล้ว

kEvent_ReadyToInstall

รูปภาพพร้อมติดตั้งแล้ว

เหตุการณ์ที่ให้ข้อมูลเพื่อส่งสัญญาณว่าอิมเมจพร้อมติดตั้งแล้ว สร้างเมื่อรูปภาพผ่านการตรวจสอบความสมบูรณ์

kEvent_ResetPartialImageInfo

รีเซ็ตสถานะของรูปภาพที่ดาวน์โหลดบางส่วน

ขอให้แอปพลิเคชันไม่จำสถานะถาวรซึ่งเชื่อมโยงกับรูปภาพที่ดาวน์โหลด ระบบจะสร้างเหตุการณ์รีเซ็ตบางส่วนของรูปภาพเมื่อรูปภาพที่ดาวน์โหลดไม่ผ่านการตรวจสอบความสมบูรณ์ หลังจากประมวลผลเหตุการณ์รีเซ็ตบางส่วนของImageInfo แล้ว เหตุการณ์ Fetchส่วนอื่นๆImageInfo ที่ตามมาควรแสดงว่าไม่มีรูปภาพบางส่วนพร้อมใช้งาน

โปรดทราบว่า เมื่อจัดการกับเหตุการณ์รีเซ็ตบางส่วนของImageInfo แอปพลิเคชันจะ "ไม่" ล้างข้อมูลรูปภาพด้วยตนเอง แต่จะมีเฉพาะข้อมูลสถานะที่เชื่อมโยงกับรูปภาพเท่านั้น (เช่น URI และความยาวของรูปภาพบางส่วน)

หากแอปพลิเคชันไม่รองรับการเริ่มดาวน์โหลดรูปภาพอีกครั้ง แอปอาจเพิกเฉยต่อเหตุการณ์นี้ด้วยการส่งต่อไปยังเครื่องจัดการเหตุการณ์เริ่มต้น

kEvent_SoftwareUpdateAvailable

มีการอัปเดตซอฟต์แวร์

สร้างขึ้นเมื่อได้รับ SofwareUpdate:ImageQueryResponse ต่อคำค้นหาที่มีข้อมูลของการอัปเดตที่มีอยู่

kEvent_StartImageDownload

เริ่มดาวน์โหลดรูปภาพแล้ว

เหตุการณ์ที่ให้ข้อมูลเพื่อส่งสัญญาณเริ่มต้นธุรกรรมการดาวน์โหลดรูปภาพ

kEvent_StartInstallImage

เริ่มการติดตั้งอิมเมจ

ขอให้แอปพลิเคชันเป็นกระบวนการติดตั้งอิมเมจเฟิร์มแวร์ที่ดาวน์โหลด

kEvent_StoreImageBlock

จัดเก็บบล็อกของข้อมูลรูปภาพ

สร้างเมื่อใดก็ตามที่ได้รับบล็อกข้อมูลจากเซิร์ฟเวอร์ดาวน์โหลดไฟล์ พารามิเตอร์ที่รวมอยู่ในเหตุการณ์นี้จะให้ข้อมูลและความยาวของข้อมูล

เพื่อรองรับการดาวน์โหลดที่หยุดชะงักอีกครั้ง แอปพลิเคชันควรรักษาจำนวนไบต์ของรูปภาพที่จัดเก็บทั้งหมดไว้ตลอดเวลา และใช้ค่านี้เมื่อจัดการเหตุการณ์ Fetchส่วนอื่นๆImageInfo ที่ตามมา

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

operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default