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
}
تعداد
عند توفر تحديث للبرنامج، يمكن للتطبيق اختيار أحد الإجراءات التالية كجزء من استدعاء حدث واجهة برمجة التطبيقات SoftwareUpdateAvailable.
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
}
تعداد
أحداث واجهة برمجة التطبيقات التي تم إنشاؤها بواسطة العنصر SoftwareUpdateManager
RetryPolicyCallback)(void *aAppState, RetryParam &aRetryParam, uint32_t &aOutIntervalMsec) typedef
void(*
State تعداد

فصول الصداقة

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.

سيتمّ ضبط الإجراء التلقائي على kAction_Now.

أماكن إقامة
kAction_ApplicationManaged

للسماح للتطبيق بإدارة بقية مراحل تحديث البرنامج مثل التنزيل والتحقق من سلامة الصورة والتثبيت.

سيتم نقل جهاز حالة مدير تحديثات البرامج إلى حالة ApplicationManaged. سيتم تعليق عمليات التحقق من تحديث البرنامج المجدولة (إذا تم تفعيلها) إلى أن يستدعي التطبيق Abort أو ImageInstallComplete API.

kAction_DownloadLater

أوقِف التنزيل مؤقتًا عند البدء.

سيتم تعليق عمليات البحث المجدوَلة عن تحديثات البرنامج (في حال تفعيلها). سيظل جهاز الحالة في حالة التنزيل. عندما تكون مستعدًا، يمكن للتطبيق استدعاء واجهة برمجة تطبيقات تنزيل السيرة الذاتية لمتابعة التنزيل أو طلب إلغاء الإلغاء.

kAction_DownloadNow

ابدأ التنزيل على الفور.

وسيتم إنشاء استدعاء حدث kEvent_FetchPartialImageInfo API بعد الحدث مباشرةً.

kAction_Ignore

تجاهل التنزيل تمامًا.

سيتم إنشاء استدعاء حدث kEvent_Finished API مع ظهور الخطأ WEAVE_DEVICE_ERROR_ICON_UPDATE_CANCELLED في حال تحديد هذا الخيار ولن يتم استدعاء منطق إعادة المحاولة.

EventCallback

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

EventType

 EventType

أحداث واجهة برمجة التطبيقات التي تم إنشاؤها بواسطة العنصر SoftwareUpdateManager

أماكن إقامة
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

إعادة ضبط حالة الصورة التي تم تنزيلها جزئيًا.

يطلب التطبيق حذف الحالة الدائمة المرتبطة بالصورة التي تم تنزيلها. يتم إنشاء حدث renamePartialImageInfo عند إخفاق صورة تم تنزيلها في التحقق من سلامتها. بعد معالجة حدثResetPartialImageInfo، يجب أن تشير أحداث FetchPartialImageInfo اللاحقة إلى عدم توفّر صورة جزئية.

لاحظ أنه عند التعامل مع الحدث RePartialImageInfo (معرّف الموارد المنتظم) والطول الجزئي للصورة غير مطلوب من التطبيق محو بيانات الصورة نفسها، لا يكون من الضروري فقط محو معلومات الحالة المرتبطة بالصورة.

في حال كان التطبيق لا يتيح استئناف تنزيل الصور، قد يتجاهل هذا الحدث من خلال تمريره إلى معالج الأحداث التلقائي.

kEvent_SoftwareUpdateAvailable

يتوفّر تحديث للبرنامج.

يتم إنشاؤه عند تلقّي SofwareUpdate:ImageQueryResponse كاستجابة لطلب بحث يحتوي على معلومات عن التحديث المتاح.

kEvent_StartImageDownload

بدأ تنزيل الصورة.

حدث معلوماتي للإشارة إلى بدء معاملة تنزيل صورة.

kEvent_StartInstallImage

بدء تثبيت الصور

تطلب من التطبيق بدء تثبيت نسخة من البرامج الثابتة التي تم تنزيلها.

kEvent_StoreImageBlock

تخزين مجموعة من بيانات الصورة.

يتم إنشاؤه عندما يتم تلقّي كتلة بيانات من خادم تنزيل الملفات. توفِّر المَعلمات المضمّنة في هذا الحدث البيانات وطولها.

لإتاحة استئناف تنزيل تمت مقاطعته، يجب أن يحافظ التطبيق على عدد دائم لإجمالي عدد وحدات بايت الصورة المخزنة، وأن يستخدم هذه القيمة عند التعامل مع أحداث FetchPartialImageInfo اللاحقة.

RetryPolicyCallback

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

الحالة

 State

فصول الصداقة

داخلي::UniversalPlatformManagerImpl

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

r=or

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default