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
เหตุการณ์ 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

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

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

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

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

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

kAction_DownloadLater

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

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

kAction_DownloadNow

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

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

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

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

kEvent_Finished

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

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

kEvent_PrepareImageStorage

เตรียมการจัดเก็บรูปภาพใหม่

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

เหตุการณ์ 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

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

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

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

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

kEvent_SoftwareUpdateAvailable

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

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

kEvent_StartImageDownload

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

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

kEvent_StartInstallImage

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

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

kEvent_StoreImageBlock

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

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

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

RetryPolicyCallback

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

รัฐ

 State

ชั้นเรียนของเพื่อน

ภายใน::GeneralPlatformManagerImpl

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()=default