يوفر معلومات تعريفية مثل نوع MIME وحجم البيانات لنقل تكوينات SOVD.
السياق
تُستخدم البنية ara::diag::SovdConfiguration::SovdConfigurationMetaInfo كحاوية بيانات وصفية قياسية لنقل بيانات تكوين SOVD (Service-Oriented Vehicle Diagnostics) في AUTOSAR Adaptive Platform [SWS_DM_01861]. تم التصريح عنها في ملف الترويسة ara/diag/sovd_configuration.h وهي مخصصة تنظيمياً بشكل مباشر لفئة الواجهة ara::diag::SovdConfiguration AUTOSAR_AP_SWS_Diagnostics §8.54.2 «Struct: SovdConfigurationMetaInfo». وتتمثل مسؤوليتها الأساسية في توفير المعلومات الوصفية المطلوبة لنقل تكوين التشخيص، مثل نوع المحتوى وحجم البيانات [SWS_DM_01862]، [SWS_DM_01863].
تشمل أطراف التفاعل الأساسية من جهة تطبيق التشخيص المستخدم، الذي يُنشئ بيانات التكوين أو يعدلها أو يعالجها، ومن جهة أخرى نظام إدارة التشخيص في AUTOSAR Adaptive. تعمل البنية ككائن لنقل البيانات (Data Transfer Object، DTO) يتوسط بين المنطق الخاص بالتطبيق وخدمات النقل القياسية لمنصة Diagnostics. ومن خلال الحقول المتوفرة، يمكن للمرسل والمستقبل الاتفاق على التنسيق الذي تتوفر به بيانات التكوين وعدد البايتات المتوقعة في قناة النقل.
دورة الحياة
كنوع بيانات C++ سلبي بحت (struct)، لا تخضع SovdConfigurationMetaInfo لمراحل دورة حياة معقدة تديرها المنصة [SWS_DM_01861]. يتم الإنشاء عادةً مباشرة بواسطة Adaptive Application على المكدس (Stack) أو في الذاكرة المكدسة (Heap)، قبل بدء نقل التكوين مباشرة أو قبل تقييم مجموعة بيانات تعريف مستلمة. تتبع البنية دلالات القيمة القياسية للغة C++؛ ويتحمل المكون المالك المسؤولية عن إنشاء النسخة وعمرها الافتراضي.
فيما يتعلق بالحالة الداخلية، لا تمتلك البنية آلة حالة ولا أوضاع تشغيل منفصلة. بعد تهيئة المتغيرات العامة، تظل البيانات في الذاكرة دون تغيير حتى إتلاف النسخة، ما لم تتم الكتابة فوقها صراحة بواسطة التطبيق المالك. يتم تحرير النسخة تلقائيًا وفقًا لنمط RAII عند مغادرة نطاق الصلاحية (Scope)، حيث يتم تحرير الذاكرة المخصصة ديناميكيًا للسلسلة النصية المضمنة [SWS_DM_01863].
فيما يتعلق بالتزامن، لا توفر SovdConfigurationMetaInfo أمانًا متكاملاً لخيوط المعالجة. يُسمح لعدة خيوط معالجة بقراءة نسخة بالتزامن، على سبيل المثال لفحص معلمات التكوين. ومع ذلك، تتطلب عمليات الكتابة المتزامنة على نفس النسخة إجراءات مزامنة خارجية، نظرًا لأن التعديلات المتنافسة على متغيرات الأعضاء تؤدي إلى عدم اتساق البيانات.
مسار الاستخدام
تتمثل حالة الاستخدام النموذجية في إعداد بيانات التعريف وتوفيرها قبل نقل التكوين الفعلي. يُنشئ التطبيق أولاً نسخة من البنية ويعين إلى الحقل mimetype سلسلة نصية تصف نوع الوسائط لملف التكوين [SWS_DM_01863]، AUTOSAR_AP_SWS_Diagnostics §8.54.2.1.1 «mimetype». يتيح ذلك للمستقبل ربطها بمحلل أو مخطط، على سبيل المثال للتكوينات المستندة إلى JSON أو XML.
في الخطوة التالية، يتم التحقق مما إذا كان يمكن تحديد حجم الملف الدقيق لبيانات الحمولة مسبقًا. إذا كان الأمر كذلك، يتم ملء السمة size بقيمة البايت الصحيحة المقابلة [SWS_DM_01862]، AUTOSAR_AP_SWS_Diagnostics §8.54.2.1.2 «size». إذا كان الحجم غير معروف قبل بدء النقل، يظل المتغير غير معين. بعد ذلك، يتم تمرير الكائن المُجهّز كوسيطة إلى دالة النقل للفئة ara::diag::SovdConfiguration.
مخطط تسلسلي: التسلسل النموذجي لتهيئة SovdConfigurationMetaInfo وتمريرها في إطار نقل التكوين. المصادر: [SWS_DM_01861]، [SWS_DM_01862]، [SWS_DM_01863]، AUTOSAR_AP_SWS_Diagnostics §8.54.2 «Struct: SovdConfigurationMetaInfo».
سيناريوهات الأخطاء
نظرًا لتصميم SovdConfigurationMetaInfo كبنية بيانات بحتة بدون دوال أعضاء، فإنها لا تحدد قيم إرجاع أو رموز أخطاء أو استثناءات خاصة بها [SWS_DM_01861]. تنشأ حالات الخطأ المحتملة أساسًا من تعيينات بيانات غير مكتملة أو غير متسقة، والتي تكتشفها خدمات المنصة المعالجة في ara::diag::SovdConfiguration.
تفسير: يتعلق سيناريو الخطأ الأول بأنواع MIME غير المسموح بها. سؤال (مفتوح) إذا تم تخزين سلسلة نصية فارغة أو معرف تنسيق غير مدعوم في mimetype، فمن المرجح أن ترفض خدمة النقل المستدعاة المعالجة وترجع رمز خطأ مطابقًا إلى التطبيق. ويكمن سيناريو الخطأ الثاني في وجود تعارض في حجم البيانات: إذا اختلف حجم البيانات المنقولة فعليًا عن قيمة البايت المصرح بها في size، فمن المحتمل أن تقطع البنية التحتية للتشخيص النقل بسبب عدم الاتساق. بالإضافة إلى ذلك، قد يؤدي ترك الحقل size غير معين إلى أخطاء في النقل، إذا كانت قناة النقل المختارة تتطلب بالضرورة طولاً إجماليًا معروفًا مسبقًا.
يستند هذا الدليل إلى مواصفة AUTOSAR Adaptive Platform الإصدار R25-11.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني