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 API.
EventCallback)(void *apAppState, EventType aEvent, const InEventParam &aInParam, OutEventParam &aOutParam) تعريف الكتابة
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) تعريف الكتابة
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". سيتم تعليق عمليات التحقّق المجدولة لتحديث البرامج (في حال تفعيلها) إلى أن يتم تنفيذ عمليات استدعاء التطبيق للإلغاء أو واجهة برمجة التطبيقات ImageInstallComplete.

kAction_DownloadLater

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

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

kAction_DownloadNow

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

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

kAction_Ignore

تجاهُل عملية التنزيل تمامًا.

سيتم إنشاء استدعاء حدث واجهة برمجة التطبيقات kEvent_Finished مع ظهور الخطأ WEAVE_DEVICE_ERROR_Software_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

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

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

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

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

kEvent_SoftwareUpdateAvailable

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

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

kEvent_StartImageDownload

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

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

kEvent_StartInstallImage

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

يشير إلى أنّ التطبيق يجري عملية تثبيت نسخة البرامج الثابتة التي تم تنزيلها.

kEvent_StoreImageBlock

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

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

لإتاحة استئناف عملية تنزيل تمت مقاطعتها، يجب أن يحتفظ التطبيق بعدد مستمر من إجمالي عدد وحدات بايت الصورة المخزنة، وأن يستخدم هذه القيمة عند التعامل مع أحداث 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

operator=

SoftwareUpdateManager & operator=(
  const SoftwareUpdateManager &
)=delete

~SoftwareUpdateManager

 ~SoftwareUpdateManager()=default