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
เมื่อมีการอัปเดตซอฟต์แวร์ แอปพลิเคชันสามารถเลือกการดําเนินการอย่างใดอย่างหนึ่งต่อไปนี้ให้เป็นส่วนหนึ่งของโค้ดเรียกกลับของ SoftwareUpdateAvailability 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::ลองอีกครั้งParam

สหภาพ

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

ประเภทสาธารณะ

ประเภทการดําเนินการ

 ActionType

เมื่อมีการอัปเดตซอฟต์แวร์ แอปพลิเคชันสามารถเลือกการดําเนินการอย่างใดอย่างหนึ่งต่อไปนี้ให้เป็นส่วนหนึ่งของโค้ดเรียกกลับของ SoftwareUpdateAvailability API

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

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

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

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

kAction_DownloadLater

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

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

kAction_DownloadNow

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

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

kAction_Ignore

ไม่ต้องสนใจการดาวน์โหลดทั้งหมด

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

เรียกกลับเหตุการณ์

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

ประเภทเหตุการณ์

 EventType

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

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

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

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

kEvent_DefaultCheck

ตรวจสอบวิธีจัดการเหตุการณ์เริ่มต้น

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

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

kEvent_FetchPartialImageInfo

การดึงข้อมูลจะเก็บข้อมูลสถานะรูปภาพที่ดาวน์โหลดไว้บางส่วน

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

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

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

kEvent_Finished

อัปเดตซอฟต์แวร์เรียบร้อยแล้ว

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

kEvent_PrepareImageStorage

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

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

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

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

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

หากต้องการกลับมาใช้งานการดาวน์โหลดที่หยุดชะงัก แอปพลิเคชันควรคง 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

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

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

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

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

kEvent_SoftwareUpdateAvailable

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

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

kEvent_StartImageDownload

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

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

kEvent_StartInstallImage

เริ่มการติดตั้งรูปภาพ

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

kEvent_StoreImageBlock

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

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

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

ลองอีกครั้ง

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

สถานะ

 State

ชั้นเรียนสําหรับเพื่อน

ภายใน::GenericPlatformManagerImpl

friend class Internal::GenericPlatformManagerImpl

ฟังก์ชันสาธารณะ

ล้มเลิก

WEAVE_ERROR Abort(
  void
)

ตรวจสอบเลย

WEAVE_ERROR CheckNow(
  void
)

รับสถานะ

State GetState(
  void
)

ติดตั้งรูปภาพเสร็จสมบูรณ์

WEAVE_ERROR ImageInstallComplete(
  WEAVE_ERROR aError
)

กําลังดําเนินการ

bool IsInProgress(
  void
)

จัดเตรียมพื้นที่เก็บข้อมูลของรูปภาพ

WEAVE_ERROR PrepareImageStorageComplete(
  WEAVE_ERROR aError
)

ตั้งค่าการเรียกกลับเหตุการณ์

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

ตั้งค่ากรอบเวลาการค้นหา

WEAVE_ERROR SetQueryIntervalWindow(
  uint32_t aMinWaitTimeMs,
  uint32_t aMaxWaitTimeMs
)

ตั้งค่าลองใหม่นโยบายการโทรกลับ

void SetRetryPolicyCallback(
  const RetryPolicyCallback aRetryPolicyCallback
)

ฟังก์ชันสาธารณะแบบคงที่

เครื่องจัดการเหตุการณ์เริ่มต้น

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