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::RestartParam

الاتحادات

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

الأنواع المتاحة للجميع

نوع الإجراء

 ActionType

عند توفر تحديث للبرامج، يمكن للتطبيق اختيار أحد الإجراءات التالية كجزء من معاودة الاتصال بواجهة برمجة تطبيقات SoftwareUpdateavailable.

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

أماكن إقامة
kAction_ApplicationManaged

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

سينتقل جهاز حالة مدير تحديث البرامج إلى حالة Application Managed. سيتم تعليق عمليات البحث عن تحديثات البرامج المُجدوَلة (في حال تفعيلها) إلى أن يتم استدعاء التطبيقات لعمليات إلغاء Content API أو ImageInstallComplete.

kAction_DownloadLater

إيقاف التنزيل مؤقتًا عند البدء

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

kAction_DownloadNow

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

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

kAction_Ignore

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

سيتم إنشاء استدعاء حدث kEvent_Finish API باستخدام الخطأ WEAVE_DEVICE_ERROR_SOFTWARE_UPDATE_CANCELLED إذا تم تحديد هذا الخيار ولن يتم استدعاء منطق إعادة المحاولة.

معاودة الاتصال بالحدث

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

نوع الحدث

 EventType

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

أماكن إقامة
kEvent_ComputeImageIntegrity

احتساب قيمة التحقّق من سلامة الصور

تطلب من التطبيق حساب قيمة فحص سلامة الصورة التي تم تنزيلها. يتم إنشاؤه بعد اكتمال التنزيل.

kEvent_DefaultCheck

التحقّق من سلوك معالجة الأحداث التلقائية

يُستخدم للتحقق من معالجة الحدث التلقائية بشكل صحيح في التطبيق.

يجب ألا تتعامل التطبيقات مع هذا الحدث.

kEvent_FetchPartialImageInfo

الحصول على معلومات عن حالة معيّنة لصورة تمّ تنزيلها جزئيًا

يوفر فرصة للتطبيق بالكشف عن معلومات صورة جزئية تم تنزيلها سابقًا، وبالتالي يمكن مواصلة التنزيل من آخر وقت توقف فيه التنزيل. يتم توفير معرف موارد منتظم (URI) لتحديث البرنامج المتاح كمعلمة إدخال يمكن للتطبيق استخدامها للمقارنة إذا كانت الصورة التي يتم تنزيلها هي نفس الصورة الجزئية.

من المتوقع أن يعرض التطبيق طول الصورة الجزئية في معلمة إخراج PartialImageLenInBytes. يمكن للتطبيق إعداد قيمة PartialImageLenInBytes على 0 للإشارة إلى عدم توفّر صورة جزئية أو عدم تطابق معرّف الموارد المنتظم للصورة الجزئية.

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

kEvent_Finished

انتهت عملية تحديث البرنامج.

يتم إنشاؤه عند انتهاء عملية البحث عن تحديثات البرامج باستخدام أخطاء أو بدون أخطاء. توفِّر المعلّمات المضمّنة في هذا الحدث سبب التعذّر في حال تعذُّر المحاولة بسبب تعذُّر النقل.

kEvent_PrepareImageStorage

التحضير لتخزين صورة جديدة

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

يتم إنشاء حدث SetupImageStorage فقط في حالة تنزيل صورة جديدة للبرامج الثابتة. عند استئناف عملية تنزيل تمت مقاطعتها سابقًا، لا يتم إنشاء SetupImageStorage.

يجب أن يشير التطبيق إلى اكتمال عملية التحضير من خلال استدعاء طريقة PrepareImageStorageComplete(). ويمكن أن يتم ذلك من خلال استدعاء الحدث نفسه أو في وقت لاحق. إذا تم الاتصال من مهمة أخرى غير مهمة Weave، يجب على المتصل تثبيت قفل حزمة Weave.

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

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

kEvent_PrepareQuery

عليك إعداد رسالة ImageQuery.

يتم إنشاؤه عند تشغيل البحث عن تحديثات البرامج. توفر فرصة للتطبيق من أجل تقديم معلومات ذات صلة بالمنتج إلى رسالة SokwreUpdate:ImageQuery.

kEvent_PrepareQuery_Metadata

إعداد البيانات الوصفية لطلب ImageQuery.

يوفّر هذا الخيار فرصة للتطبيق لإلحاق بيانات وصفية إضافية برسالة SokwreUpdate:ImageQuery عند الحاجة. يتم إنشاؤه عندما يكون التنفيذ جاهزًا للحصول على بيانات وصفية من التطبيق.

kEvent_QueryPrepareFailed

حدث خطأ أثناء إعداد طلب ImageQuery.

يتم إنشاؤه عندما يواجه التنفيذ خطأ أثناء الاستعداد لإرسال طلب بحث عن تحديث البرنامج.

kEvent_QuerySent

تم إرسال طلب ImageQuery.

حدث إعلامي للإشارة إلى أنه تم إرسال رسالة SokwreUpdate:ImageQuery.

kEvent_ReadyToInstall

الصورة جاهزة للتثبيت.

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

kEvent_ResetPartialImageInfo

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

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

يُرجى العِلم بأنّه عند معالجة حدث ConfigurationPartialImageInfo، لا يُطلب من التطبيق محو بيانات الصورة نفسها، بل يجب فقط إزالة معلومات الحالة المرتبطة بالصورة (أي معرّف الموارد المنتظم (URI) وطول الصورة جزئيًا).

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

kEvent_SoftwareUpdateAvailable

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

يتم إنشاؤه عندما يتم تلقي SoifreUpdate:ImageQueryResponse ردًا على طلب بحث يحتوي على معلومات عن التحديث المتاح.

kEvent_StartImageDownload

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

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

kEvent_StartInstallImage

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

تطلب من التطبيق أن يكون عملية تثبيت صورة البرامج الثابتة التي تم تنزيلها.

kEvent_StoreImageBlock

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

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

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

إعادة الاتصال بالسياسة

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

الولاية

 State

دروس أصدقاء

داخلي::GeneralPlatformManagerImpl

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
)

ضبط CallEvent

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

SetQueryIntervalWindow

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