مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 40db6d76454cالمصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
توفر الفئة ara::diag::Condition الواجهة DiagnosticConditionInterface التي تبلّغ التطبيقات التكيفية من خلالها عن الظروف البيئية وحالات الإذن إلى Diagnostic Management ([SWS_DM_00712]). يقوم Diagnostic Server بتقييم هذه الحالات للتحكم الموجه في تنفيذ وظائف التشخيص القياسية أو عمليات المسح في المركبة (AUTOSAR_AP_SWS_Diagnostics §7.3.2.5.5 «Condition checks»). ترتبط المثيلات ارتباطاً وثيقاً بنموذج المنفذ الأولي وهي غير قابلة للنسخ أو النقل. وعند الاستخدام المتزامن، تتطلب عمليات الاستعلام والتعيين مزامنة خارجية، نظراً لأنها ليست آمنة خيطياً.
السياق
تمثل الفئة ara::diag::Condition واجهة برمجة التطبيقات لشروط التشخيص (DiagnosticConditionInterface) في AUTOSAR Adaptive Platform ([SWS_DM_00712]). في أنظمة تشخيص المركبات، لا يجوز تنفيذ وظائف تشخيص معينة أو خدمات UDS إلا إذا كانت المركبة في حالة بيئية محددة — مثل أن تكون المركبة متوقفة وسرعتها صفراً (AUTOSAR_AP_SWS_Diagnostics §7.3.2.5.5 «Condition checks»). ووفقاً لـ [SWS_DM_00111]، يُجري Diagnostic Server فحوصات بيئية ملائمة عندما تنص المواصفة ISO 14229-1 على فحوصات شروط خاصة بالخدمة، ويستجيب بكود استجابة سلبية (NRC) مهيأ في حالة عدم استيفائها.
ضمن بنية التطبيق، يعمل ara::diag::Condition كحلقة وصل بين التطبيق التكيفي وDiagnostic Management (DM). يُنشئ التطبيق كائن الشرط عبر منفذ مرتبط في النموذج إما عبر DiagnosticEnableConditionPortMapping أو DiagnosticClearConditionPortMapping ([SWS_DM_00712]). تفسير: يُحدد من خلال تخصيص المنفذ هذا ما إذا كانت الحالة المُبلّغ عنها تعمل كشرط إذن لإجراءات التشخيص المنتظمة أو كمعيار لمسح بيانات التشخيص. سؤال (مفتوح) وبالتالي، يغلف الكائن عملية نقل الحالة إلى Diagnostic Server، الذي يقيم الشروط لطلبات التشخيص الواردة ([SWS_DM_00111]).
يتم إنشاء كائن ara::diag::Condition صراحةً عبر تمرير ara::core::InstanceSpecifier إلى الدالة الإنشائية ([SWS_DM_00712]). يشير هذا المعرّف إلى نموذج المنفذ الأولي المنمذج للتطبيق. أُعلنت الدالة الإنشائية كـ noexcept وتضمن الأمان الاستثنائي والخيطي ([SWS_DM_00712]).
فيما يتعلق بملكية الكائن، صُممت الفئة كمثيل فردي صارم: حيث تم حذف كل من دالة إنشاء النسخ ([SWS_DM_01625]) ومعامل الإسناد بالنسخ ([SWS_DM_01623]) (=delete). وبالمثل، تم حذف دالة إنشاء النقل ([SWS_DM_01626]) ومعامل الإسناد بالنقل ([SWS_DM_01624]). لا يمكن نسخ كائن الشرط أو نقله، مما يضمن تخصيصاً ثابتاً بنسبة 1:1 للمنفذ المعني.
أثناء التشغيل المستمر، حُددت الدوال SetCondition ([SWS_DM_00715]) وGetCondition ([SWS_DM_00714]) بأنها غير آمنة خيطياً. وفي حال الوصول المتوازي من عدة خيوط معالجة، يجب على التطبيق المستدعي ضمان المزامنة الخارجية. تنتهي دورة الحياة مع دالة الهدم ~Condition() ([SWS_DM_00713])، وهي noexcept وآمنة استثنائياً، لكنها ليست آمنة خيطياً أيضاً.
مسار الاستخدام
يتضمن مسار الاستخدام النموذجي كلاً من التهيئة، وتحديث الحالة المتكرر، بالإضافة إلى الاستعلام عن الشرط:
التهيئة: يُنشئ التطبيق مثيلاً لـ ara::diag::Condition مع تحديد ara::core::InstanceSpecifier المناسب ([SWS_DM_00712]) للربط بتهيئة النموذج.
تعيين الحالة: إذا تغيرت حالة المركبة أو النظام المعنية، يُحدّث التطبيق الشرط عبر SetCondition(condition) ([SWS_DM_00715]). يؤكد الاستدعاء الاعتماد باستخدام ara::core::Result<void>.
الاستعلام عن الحالة: للتحقق من الحالة الحالية، يستدعي التطبيق GetCondition() ([SWS_DM_00714]). وتُتاح النتيجة بشكل غير متزامن عبر ara::core::Future<ConditionType>.
يمكن أن تحدث حالات خطأ أثناء إنشاء كائن المثيل وكذلك أثناء وقت التشغيل:
انتهاكات الدالة الإنشائية: أثناء الإنشاء ([SWS_DM_00712])، يتحقق إطار العمل من صحة التهيئة مقابل نموذج البرمجيات. وتشمل الانتهاكات المحتملة ما يلي:
InstanceSpecifierMappingIntegrityViolation: يتعذر حل المعرّف في النموذج أو أنه لا يشير إلى PortPrototype ([SWS_DM_00712]).
PortInterfaceMappingViolation: على الرغم من أن PortPrototype مصنف نوعيًا بواسطة DiagnosticConditionInterface، إلا أنه لا تتم الإشارة إليه بواسطة DiagnosticEnableConditionPortMapping ولا بواسطة DiagnosticClearConditionPortMapping ([SWS_DM_00712]).
ProcessMappingViolation: لا توجد عملية منمذجة مطابقة لمرجع المثيل في وقت التشغيل ([SWS_DM_00712]).
InstanceSpecifierAlreadyInUseViolation: المعرّف مستخدم بالفعل بواسطة مثيل آخر في العملية نفسها ([SWS_DM_00712]).
فشل خدمات التشخيص الأساسية: يمكن أن يفشل GetCondition() ([SWS_DM_00714]) عبر ara::core::Future المُرجع مع الخطأ DiagErrc::kServiceNotAvailable، إذا كانت الوظائف الأساسية لـ Diagnostic Management غير متاحة مؤقتًا.
حفظ الحالة الخالي من الأخطاء: لم يتم تحديد رموز أخطاء قياسية لـ SetCondition() ([SWS_DM_00715])؛ وتبلغ الدالة عن النجاح مباشرةً عبر ara::core::Result<void> فارغ.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. تستند جميع البيانات الفنية حصريًا إلى مواصفات AUTOSAR R25-11.
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is typed by a pingViolation DiagnosticConditionInterface needs either to be referenced by a DiagnosticEnableConditionPortMapping or a DiagnosticClearConditionPortMapping. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticConditionInterface.
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني