nl :: نسج:: مظهر:: تحديث النظام:: ImageQuery

#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>

فئة لدعم إنشاء وفك تشفير رسائل استعلام الصور.

ملخص

يحتوي إطار الاستعلام عن الصورة على الشكل التالي عبر السلك

طول اسم الحقل
1 بايت التحكم في الإطار
6 بايت مواصفات المنتج
عامل مواصفات الإصدار
2..4 بايت قائمة نوع النزاهة
2..5 بايت قائمة مخطط التحديث
عامل مواصفات اللغة (اختياري)
8 بايت معرف العقدة الهدف
عامل بيانات البائع المحددة (اختياري)
حيث يحتوي حقل التحكم في الرتل على حقول بت على النحو التالي:

قليلا المعنى
0 1 - البيانات الخاصة بالبائع موجودة ، 0 - غير موجودة
1 1 - المواصفات المحلية موجودة ، 0 - غير موجودة
2 1 - معرف العقدة الهدف موجود ، 0 - غير موجود
3..7 محجوز
و ImageQuery ، كما يقرأ بنية مختلفة قليلا عن التمثيل في الطيران. على وجه الخصوص ، الإصدار والإعدادات المحلية عبارة عن سلاسل c منتهية بقيمة خالية (على عكس (الطول ، الأحرف) مجموعات) ويتم تمثيل كلا العنصرين الاختياريين كمؤشرات قابلة للقيم ، لذلك لا يوجد عنصر منطقي منفصل للتحقق.

البنائين والمدمرين

ImageQuery ()
المنشئ الافتراضي لل ImageQuery .

السمات العامة

integrityTypes
أنواع النزاهة التي يدعمها الجهاز.
localeSpec
سلسلة UTF-8 متغيرة الطول تحتوي على لغة POSIX السارية على الجهاز الذي يتم إجراء استعلام الصورة له.
packageSpec
سلسلة UTF-8 متغيرة الطول تحتوي على سلسلة مواصفات الحزمة الخاصة بالبائع.
productSpec
مواصفات المنتج التي تصف الجهاز الذي يقوم بإجراء الاستعلام عن الصورة.
targetNodeId
uint64_t
معرّف عقدة اختياري للجهاز الذي يتم إجراء الاستعلام من أجله.
theMetaData
يتغيّر طول حقل البيانات الخاص بالبائع ويحتل ما تبقى من حمولة رسالة Weave ، خارج الحقول الموضحة أعلاه.
updateSchemes
أنظمة التحديث (بروتوكولات التنزيل) التي يدعمها الجهاز.
version
سلسلة UTF-8 متغيرة الطول تحتوي على إصدار البرنامج المحدد من قبل البائع للجهاز الذي يتم إجراء الاستعلام من أجله.

الوظائف العامة

init ( ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
صراحة تهيئة ImageQuery الكائن مع القيم المقدمة.
operator== (const ImageQuery &) const
bool
عامل المساواة.
pack (PacketBuffer *)
تسلسل الكامنة ImageQuery في المقدمة PacketBuffer.
print (void)
void

وظائف ثابتة عامة

parse (PacketBuffer *, ImageQuery &)
إلغاء تسلسل رسالة الاستعلام الصورة المقدمة في PacketBuffer في المقدمة ImageQuery .

السمات العامة

سلامة الأنواع

IntegrityTypeList integrityTypes

أنواع النزاهة التي يدعمها الجهاز.

اللغة

ReferencedString localeSpec

سلسلة UTF-8 متغيرة الطول تحتوي على لغة POSIX السارية على الجهاز الذي يتم إجراء استعلام الصورة له.

يجب أن تتوافق محتويات السلسلة مع تنسيق معرف لغة POSIX ، كما هو محدد في ISO / IEC 15897 ، على سبيل المثال en_AU.UTF-8 للغة الإنجليزية الأسترالية.

الحزمة

ReferencedString packageSpec

سلسلة UTF-8 متغيرة الطول تحتوي على سلسلة مواصفات الحزمة الخاصة بالبائع.

تصف محتويات الحقل نوع الحاوية المطلوب لصورة البرنامج ، مثل "rpm" و "deb" و "tgz" و "elf" وما إلى ذلك (ملاحظة: هذا الحقل غير مستخدم في تطبيقات Nest للبروتوكول)

المنتج

ProductSpec productSpec

مواصفات المنتج التي تصف الجهاز الذي يقوم بإجراء الاستعلام عن الصورة.

targetNodeId

uint64_t targetNodeId

معرّف عقدة اختياري للجهاز الذي يتم إجراء الاستعلام من أجله.

حقل معرف العقدة الهدف اختياري. في حالة عدم وجوده ، يكون معرف العقدة الهدف للاستعلام ضمنيًا هو العقدة التي كانت مصدر رسالة استعلام الصور.

عادةً ما يتم استخدام حقل معرف العقدة الهدف في الحالات التي تعمل فيها العقدة التي تمثل مصدر رسالة IMAGE QUERY كوكيل تحديث برنامج لعقدة أخرى.

theMetaData

ReferencedTLVData theMetaData

يتنوع طول حقل البيانات الخاص بالبائع ويحتل ما تبقى من حمولة رسالة Weave ، خارج الحقول الموضحة أعلاه.

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

updateSchemes

UpdateSchemeList updateSchemes

أنظمة التحديث (بروتوكولات التنزيل) التي يدعمها الجهاز.

إصدار

ReferencedString version

سلسلة UTF-8 متغيرة الطول تحتوي على إصدار البرنامج المحدد من قبل البائع للجهاز الذي يتم إجراء الاستعلام من أجله.

يجب أن يكون بطول 32 أو أصغر.

الوظائف العامة

ImageQuery

 ImageQuery()

المنشئ الافتراضي لل ImageQuery .

و ImageQuery قد يتم ملؤها من خلال الدعوة الحرف الأول () أو عن طريق deserializing الكائن من الرسالة.

فيه

WEAVE_ERROR init(
  ProductSpec & aProductSpec,
  ReferencedString & aVersion,
  IntegrityTypeList & aTypeList,
  UpdateSchemeList & aSchemeList,
  ReferencedString *aPackage,
  ReferencedString *aLocale,
  uint64_t aTargetNodeId,
  ReferencedTLVData *aMetaData
)

صراحة تهيئة ImageQuery الكائن مع القيم المقدمة.

تفاصيل
المعلمات
[in] aProductSpec
مواصفات المنتج.
[in] aVersion
إصدار البرنامج المثبت حاليًا.
[in] aTypeList
أنواع التكامل التي يدعمها العميل.
[in] aSchemeList
مخططات التحديث التي يدعمها العميل.
[in] aPackage
مواصفات حزمة اختيارية يدعمها العميل.
[in] aLocale
مواصفات محلية اختيارية يطلبها العميل.
[in] aTargetNodeId
معرّف عقدة هدف اختياري.
[in] aMetaData
كتلة بيانات بائع اختيارية بترميز TLV.
عائدات
WEAVE_NO_ERROR بدون شروط.

عامل التشغيل ==

bool operator==(
  const ImageQuery &
) const 

عامل المساواة.

تفاصيل
المعلمات
another
و ImageQuery للتحقق ضد هذا ImageQuery
عائدات
صواب إذا كانت جميع الحقول في كلا الكائنين متساوية ، أو إذا كانت غير صحيحة

علية

WEAVE_ERROR pack(
  PacketBuffer *
)

تسلسل الكامنة ImageQuery في المقدمة PacketBuffer.

تفاصيل
المعلمات
[in] aBuffer
حزمة عازلة لحزم الاستعلام
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح
WEAVE_ERROR_BUFFER_TOO_SMALL
إذا كان ImageQuery كبير جدا لاحتوائه في المخزن المؤقت المقدمة.

مطبعة

void print(
  void
)

وظائف ثابتة عامة

تحليل

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

إلغاء تسلسل رسالة الاستعلام الصورة المقدمة في PacketBuffer في المقدمة ImageQuery .

تفاصيل
المعلمات
[in] aBuffer
مؤشر لحزمة يمكن من خلالها تحليل استعلام الصورة
[in] aQuery
كائن لوضع النتيجة فيه
عائدات
WEAVE_NO_ERROR على النجاح
عائدات
WEAVE_ERROR_BUFFER_TOO_SMALL إذا كانت رسالة صغيرة جدا لاحتواء كافة الحقول من ImageQuery
عائدات
WEAVE_ERROR_INVALID_LIST_LENGTH إذا كانت الرسالة تحتوي على IntegrityTypeList أو UpdateSchemeList كان لفترة طويلة جدا