يوفر للتطبيقات بيانات وصفية متعلقة بالنقل والبروتوكول لطلب تشخيص قيد التشغيل.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4cec228b1decالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يوفر للتطبيقات بيانات وصفية متعلقة بالنقل والبروتوكول لطلب تشخيص قيد التشغيل.
توفر الفئة ara::diag::MetaInfo لتطبيقات Adaptive Applications معلومات وصفية ذات صلة مثل عنوان المصدر وعنوان الوجهة وسياق البروتوكول لطلب تشخيص قيد التشغيل (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1 «MetaInfo class»). وتستعلم التطبيقات عن هذه القيم بشكل متزامن عبر دوال الفحص أثناء استدعاء رد اتصال بدأته Diagnostic Management. وتقتصر مدة بقاء الكائن المضمونة بدقة على وقت تنفيذ دالة رد الاتصال النشطة، ولذلك يؤدي حفظه إلى ما بعد هذا الاستدعاء إلى سلوك غير محدد ([SWS_DM_01345]).
السياق
توفر الفئة ara::diag::MetaInfo آلية موحدة لنقل المعلومات الوصفية الخاصة بالنقل والبروتوكول من Diagnostic Management (DM) إلى تطبيقات Adaptive Applications المعنية (AUTOSAR_AP_SWS_Diagnostics §7.3.1.1 «MetaInfo class»). وفي بنية تشخيص AUTOSAR Adaptive، يعمل DM كوسيط بين عملاء التشخيص الخارجيين وعناقيد الوظائف أو التطبيقات الداخلية. وعند وصول طلب تشخيص عبر بروتوكول نقل UDS أو SOVD، يستخرج DM بيانات البروتوكول ذات الصلة ويمررها عند استدعاء الدوال إلى واجهات التطبيق ([SWS_DM_02094]).
تشمل المهام الأساسية لـ ara::diag::MetaInfo توفير سياق الاستدعاء وأزواج مفتاح-قيمة محددة. وعبر الواجهة، تحصل خدمات التطبيق على معلومات حول عنوان المصدر (SA) لعميل التشخيص باستخدام المفتاح kSA ([SWS_DM_02094])، وعنوان الوجهة (TA) لخادم التشخيص عبر kTA ([SWS_DM_02095])، بالإضافة إلى نوع عنونة UDS (فيزيائية أو وظيفية) عبر المفتاح kTAType ([SWS_DM_02096]). ويتم تحديد نوع سياق الاستدعاء عبر النوع ara::diag::MetaInfo::Context ([SWS_DM_00977]). وتتضمن السياقات المحتملة اتصالات التشخيص العادية kDiagnosticCommunication ([SWS_DM_01342])، والوصول إلى ذاكرة الأعطال kFaultMemory ([SWS_DM_01343])، واستعلامات DoIP الأولية مثل قراءة رقم تعريف المركبة kDoIP ([SWS_DM_01344])، وطلبات الخدمة في سياق SOVD kSovd ([SWS_DM_01818]).
تقع مسؤولية إنشاء كائنات ara::diag::MetaInfo وإدارتها بالكامل على عاتق Diagnostic Management. والمنشئ الافتراضي بدون معلمات محذوف صراحةً ([SWS_DM_00972]). وبالتالي، لا يمكن للتطبيق إنشاء كائنات خاصة به مباشرة ولا تكرارها عبر عمليات النسخ، حيث تم حذف كل من منشئ النسخ ([SWS_DM_00973]) وعامل تعيين النسخ ([SWS_DM_00975]). ويتم إنشاء الكائن على الأرجح داخليًا بواسطة DM قبل استدعاء ردود اتصال التطبيق. سؤال Q-f695f92296527ce8 (مفتوح) يدعم ara::diag::MetaInfo دلالات النقل: حيث يتوفر منشئ النقل ([SWS_DM_00974]) وعامل تعيين النقل ([SWS_DM_00976]). ويتم التدمير عبر الهادم الافتراضي ([SWS_DM_00980]).
فيما يتعلق بملكية الموارد ومدة الصلاحية، ينطبق ارتباط صارم باستدعاء الدالة النشط: فلكل دالة موجهة من DM إلى التطبيق مع كائن MetaInfo كمعلمة، تقتصر مدة البقاء المضمونة بدقة على مدة استدعاء هذه الدالة ([SWS_DM_01345]، AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.2 «Lifetime of MetaInfo»). وبعد عودة الدالة، لا يُسمح بالاستخدام الإضافي للكائن أو تخزينه.
يمتد مسار الاستخدام النموذجي من استلام استدعاء التشخيص حتى تقييم البيانات الوصفية الممررة:
الاستدعاء بواسطة DM: يستدعي Diagnostic Management دالة رد نداء خاصة بالتطبيق ويمرر مرجعًا إلى ara::diag::MetaInfo ([SWS_DM_01345]).
تحديد السياق: يستدعي التطبيق GetContext() ([SWS_DM_00979]) لتحديد ما إذا كان الاستدعاء يتم على سبيل المثال في إطار اتصال تشخيصي منتظم (kDiagnosticCommunication، [SWS_DM_01342]) أو وصول إلى ذاكرة الأخطاء (kFaultMemory، [SWS_DM_01343]).
الاستعلام عن قيم المفاتيح: يستعلم التطبيق بشكل هادف عبر GetValue() ([SWS_DM_00978]) عن السمات المطلوبة، مثل عنوان المرسل باستخدام kSA ([SWS_DM_02094])، أو عنوان الوجهة باستخدام kTA ([SWS_DM_02095])، أو وضع العنونة باستخدام kTAType ([SWS_DM_02096]).
معالجة النتيجة: يُرجع GetValue() كائن ara::core::Optional<ara::core::StringView> ([SWS_DM_00978]). إذا كانت القيمة موجودة، يقيّم التطبيق السلسلة النصية بشكل متزامن لإجراء عمليات التحقق من الوصول أو منطق العنونة.
إكمال الاستدعاء: يكمل التطبيق المعالجة ويعود من دالة رد النداء، وبذلك تنتهي دورة حياة البيانات الوصفية الممررة ([SWS_DM_01345]).
عند استخدام ara::diag::MetaInfo، يجب على المطورين مراعاة شروط مسبقة ولاحقة محددة:
التخزين إلى ما بعد مدة رد النداء: إذا قام تطبيق بتخزين كائن MetaInfo أو ara::core::StringView مُرجع بواسطة GetValue() إلى ما بعد وقت تنفيذ دالة رد النداء، فإن ذلك يؤدي إلى سلوك غير محدد ([SWS_DM_01345]، AUTOSAR_AP_SWS_Diagnostics §7.3.1.1.2 «Lifetime of MetaInfo»). يجب الاحتفاظ بالقيم المطلوبة بشكل غير متزامن أو دائم كنسخ مستقلة من السلاسل النصية.
الاستعلام عن مفاتيح غير موجودة: إذا تم تمرير مفتاح غير متوفر في السياق الحالي، فلا يُطلق GetValue() استثناءً، بل يُرجع ara::core::Optional فارغًا ([SWS_DM_00978]). كلتا دالتي الوصول مُعلنتان مع noexcept وآمنتان من حيث الاستثناءات ([SWS_DM_00978]، [SWS_DM_00979]).
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني