يحدد نطاق الخطأ لتقارير التشخيص ويترجم رموز الأخطاء إلى رسائل نصية أو استثناءات.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 7251ed55c8deالمصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يحدد نطاق الخطأ لتقارير التشخيص ويترجم رموز الأخطاء إلى رسائل نصية أو استثناءات.
تشكل الفئة ara::diag::DiagReportingErrorDomain نطاق الخطأ القياسي لتقارير الأخطاء في مجال التشخيص لـ AUTOSAR Adaptive Platform ([SWS_DM_00996]). وهي تتولى ترجمة رموز الأخطاء العددية إلى رسائل نصية حتمية، وتدعم عند الحاجة إطلاق كائنات الاستثناء المقترنة ([SWS_DM_01001]). ونظراً لأن جميع دوال الاستعلام مصممة لتكون عديمة الحالة وآمنة لخيوط المعالجة، فإن النطاق مناسب للاستخدام المتزامن. وكتحديد حدي هام، لا تشارك معالجة الاستثناءات في حل التحميل الزائد عند إلغاء تفعيل استثناءات C++.
تُنشأ مثيلات ara::diag::DiagReportingErrorDomain عبر المنشئ الافتراضي الخالي من المعلمات ([SWS_DM_00999]، AUTOSAR_AP_SWS_Diagnostics §8.11.7.2.1.1 «Default Constructor»). تم التصريح عنه كـ constexpr وnoexcept، مما يضمن إنشاءً آمناً في وقت الترجمة أو أثناء بدء تشغيل البرنامج دون تخصيصات ديناميكية أو مخاطر استثناءات. ونظراً لأن الفئة لا تغلف أي بيانات حالة متغيرة، فلا توجد انتقالات ديناميكية في دورة الحياة أو عمليات نقل صريحة للملكية. تفسير: يُرجح أن تكون المثيلات عادةً كائنات أحادية (Singleton) معمرة ومتاحة عالمياً في العملية طوال فترة التشغيل. سؤال Q-4aa1b2858839e55d (مفتوح) وفيما يتعلق بالتزامن، تم تحديد كل من الإنشاء وجميع الدوال الاستعلامية صراحةً على أنها آمنة لخيوط المعالجة وآمنة من الاستثناءات ([SWS_DM_00999]، [SWS_DM_01000]، [SWS_DM_01001])، مما يسمح بالوصول المتوازي لخيوط معالجة متعددة دون مزامنة خارجية.
مسار الاستخدام
يكمن مسار الاستخدام المعتاد في تقييم أخطاء التشخيص وحلها، والتي يتم تضمينها عبر ملف الرأس #include "ara/diag/diag_error_domain.h" ([SWS_DM_00997]، [SWS_DM_00999]). إذا حدث خطأ عند الإبلاغ عن معلومات التشخيص، يتم عادةً تغليفه في ara::core::ErrorCode يشير إلى النطاق. للتسجيل أو العرض، يستعلم النظام الدالة Message(errorCode) ([SWS_DM_01001]، AUTOSAR_AP_SWS_Diagnostics §8.11.7.2.2.1 «Message»). تستقبل هذه الدالة قيمة الخطأ العددية وتُرجع الرسالة النصية المقترنة كمؤشر إلى سلسلة نصية ثابتة. وتضمن المواصفة بشكل ملزم عدم إرجاع مؤشر فارغ (never nullptr) أبداً ([SWS_DM_01001])، مما يتيح متابعة المعالجة القوية في خدمات التسجيل دون فحوصات المؤشر الفارغ. وعبر Name()، يمكن بالإضافة إلى ذلك استرداد المعرف النصي للنطاق ([SWS_DM_01000]).
سيناريوهات الأخطاء
للتصعيد المستهدف للأخطاء، يوفر النطاق الدالة ThrowAsException(errorCode) ([SWS_DM_01002]). تم التصريح عنها بـ noexcept(false) وتصنيفها رسمياً على أنها غير آمنة من الاستثناءات ([SWS_DM_01002])، نظراً لأن الغرض منها يكمن في الخروج المتعمد من مسار التحكم عبر استثناء. تفسير: يُرجح أن تقوم الدالة داخلياً بإنشاء مثيل استثناء من النوع DiagReportingException باستخدام errorCode الممرر ورميه. سؤال Q-747db3b9fec32fcd (مفتوح) يرتبط شرط مسبق أساسي بتهيئة المترجم: إذا تم إلغاء تفعيل استثناءات C++ في سلسلة الأدوات، فإن ThrowAsException لا تشارك في حل التحميل الزائد وفقاً لـ [SWS_CORE_10304] ([SWS_DM_01002]). في مثل هذه البيئات، يفشل الاستدعاء بالفعل أثناء الترجمة البرمجية، بحيث يجب أن تتم عمليات فحص الأخطاء حتماً على أساس القيمة عبر رموز الأخطاء. تتفادى Message() حالات الخطأ المحتملة الناتجة عن رموز الأخطاء غير الصالحة من خلال توفير مؤشر نصي محدد دائماً ([SWS_DM_01001]).
يستند هذا الدليل حصريًا إلى مواصفات AUTOSAR Adaptive Platform الإصدار R25-11.
Throw the exception type corresponding to the given ErrorCode. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d3d475dea270المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يقوم المنشئ القياسي الخالي من المعاملات [SWS_DM_00999] بتهيئة مثيل لنطاق الأخطاء ara::diag::DiagReportingErrorDomain ([SWS_DM_00996]، AUTOSAR_AP_SWS_Diagnostics §8.11.7.2.1.1 «Default Constructor»). تم التصريح عنه كـ constexpr بالإضافة إلى noexcept، ويقوم بإنشاء النطاق بشكل متزامن دون قيمة إرجاع. ويجب تضمين الفئة عبر ملف الرأس #include "ara/diag/diag_error_domain.h".
تم تحديد العملية بأنها آمنة لخيوط المعالجة وآمنة من حيث الاستثناءات ([SWS_DM_00999]). ونظرًا لأن المنشئ معرف كـ noexcept، فلا تحدث أي استثناءات وقت التشغيل أثناء إنشاء المثيل. يُستخدم نطاق الأخطاء المُنشأ لتصنيف الأخطاء وتعيينها من التعداد DiagReportingErrc ([SWS_DM_00560]، الاسم المستعار للنوع Errc في [SWS_DM_00997])، والذي يعكس أسباب أخطاء معينة في إعداد تقارير التشخيص مثل kAlreadyOffered أو kConfigurationMismatch أو kDebouncingConfigurationInconsistent أو kReportIgnored.
بالتكامل مع نطاق الأخطاء، توفر دوال الأعضاء Name ([SWS_DM_01000]) وMessage ([SWS_DM_01001]) اسم النطاق ونصوص الأخطاء لرموز الأخطاء الممررة. وباستخدام ThrowAsException ([SWS_DM_01002])، يمكن تحويل رموز الأخطاء إلى كائنات استثناء من النوع الأساسي DiagReportingException ([SWS_DM_00998])، بينما يُستخدم MakeErrorCode ([SWS_DM_01006]) لإنشاء مثيلات ara::core::ErrorCode جديدة. تفسير: يُرجح أن إنشاء المثيل يدويًا عبر هذا المنشئ نادرًا ما يكون مطلوبًا في برامج التطبيقات، نظرًا لأن الوصول يتم عادةً عبر دالة Singleton العامة GetDiagReportingDomain ([SWS_DM_01004]). سؤال Q-772337db203849c6 (مفتوح)
تم إنشاء إشعار الاستخدام هذا آليًا بناءً على مواصفة AUTOSAR Adaptive Platform R25-11.
Translate an error code value into a text message.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: ea11a4d30fb6المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تُستخدم الطريقة Message للفئة ara::diag::DiagReportingErrorDomain ([SWS_DM_01001]) للترجمة المتزامنة لرمز خطأ رقمي (ara::core::ErrorDomain::CodeType errorCode) إلى رسالة نصية وصفية. كقيمة إرجاع، تُعيد الدالة مؤشرًا من النوع const char *، والذي وفقًا للمواصفة لا يكون أبدًا nullptr ([SWS_DM_01001]). نظرًا لنوع الإرجاع بدون آلية تحرير، يُرجّح أن يشير المؤشر إلى ذاكرة ثابتة (تفسير). سؤال Q-6c1dffd8e5f8f2c2 (مفتوح) يتم توفير الواجهة عبر ملف الترويسة #include "ara/diag/diag_error_domain.h" ([SWS_DM_01001]).
معالجة الأخطاء والتزامن
تم تعريف الدالة كـ noexcept وكذلك exception safe ([SWS_DM_01001]). نظرًا لأنه مضمون تعاقديًا عدم إرجاع مؤشر فارغ مطلقًا، تُنشئ الدالة دائمًا سلسلة نصية صالحة حتى لرموز الأخطاء غير المعروفة ([SWS_DM_01001]). فيما يتعلق بالتزامن، تم تحديد Message كـ thread-safe ([SWS_DM_01001]). بالتالي، يمكن إجراء الاستدعاءات بالتوازي من عدة سلاسل عمليات (threads) دون مزامنة إضافية.
تفاعل
تتجاوز الطريقة كـ override الطريقة الأساسية التي تحمل الاسم نفسه لترجمة رموز الأخطاء في سياق Adaptive AUTOSAR ([SWS_DM_01001]). ويشترك هذا النمط السلوكي الموحد أيضًا مع نطاقات أخطاء أخرى لوحدة التشخيص، مثل ara::diag::DiagErrorDomain ([SWS_DM_00522])، وara::diag::DiagUdsNrcErrorDomain ([SWS_DM_00534])، وara::diag::DiagOfferErrorDomain ([SWS_DM_00994])، وara::diag::DiagSovdErrorDomain ([SWS_DM_01814]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR.
Return the "shortname" ApApplicationErrorDomain.SN of this error domain.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 1fc59e005dfeالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُرجع دالة العضو Name() للفئة ara::diag::DiagReportingErrorDomain من ملف الترويسة #include "ara/diag/diag_error_domain.h" الاسم المختصر المكوّن (shortname) لنطاق الخطأ ApApplicationErrorDomain.SN كسلسلة C منتهية بصفر [SWS_DM_01000]. ويتم الاستدعاء بشكل متزامن وبدون معاملات ممررة لتوفير المعرّف لأغراض التشخيص وتسجيل الأحداث في النظام AUTOSAR_AP_SWS_Diagnostics ص. 68.
بالنسبة لمعالجة الأخطاء، لم يتم تعريف رموز أخطاء محددة ولا رسائل DET أو DEM. ومن خلال التحديد كـ noexcept وآمنة من حيث الاستثناءات (exception safe)، يُضمن أن يكون استدعاء الدالة ناجحًا دائمًا ولا يطلق استثناءات [SWS_DM_01000].
فيما يتعلق بالتزامن والقيود، تم تحديد الطريقة على أنها آمنة خيطيًا (thread-safe) وتسمح بالوصول المتوازي والقابل لإعادة الدخول من خيوط مختلفة [SWS_DM_01000]. تفسير: من المرجح أن يشير المؤشر المرتجع إلى سلسلة نصية غير قابلة للتغيير طوال فترة بقاء مثيل نطاق الخطأ. سؤال Q-d67122aa15cc13f8 (مفتوح)
في النظام ككل، تتبع الواجهة المعيار الموحد لنطاقات أخطاء Adaptive. وهي تطابق وظيفيًا طرق Name() المكافئة للنطاقات ذات الصلة مثل DiagErrorDomain[SWS_DM_00521]، وDiagUdsNrcErrorDomain[SWS_DM_00533]، وDiagOfferErrorDomain[SWS_DM_00993]، بالإضافة إلى DiagSovdErrorDomain[SWS_DM_01813].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى حالة المواصفات R25-11.
Throw the exception type corresponding to the given ErrorCode. As per [SWS_CORE_10304], this function does not participate in overload resolution when C++ exceptions are disabled in the compiler toolchain.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c2a7e07b131fالمصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
كمعلمة إدخال، تستقبل الطريقة مثيلًا من النوع const ara::core::ErrorCode& (errorCode) ([SWS_DM_01002]). ليس لها قيمة إرجاع (void) وهي محددة بـ noexcept(false) ([SWS_DM_01002]). إذا تم تعطيل استثناءات C++ في سلسلة أدوات المترجم، فلن تشارك هذه الدالة في حل التحميل الزائد ([SWS_DM_01002]).
التزامن وأمان الاستثناءات
تم تعريف الدالة على أنها آمنة للسلاسل (thread-safe) ([SWS_DM_01002]). فيما يتعلق بأمان الاستثناءات، فقد تم تصنيفها على أنها غير آمنة للاستثناءات (not exception safe)، لأن إطلاق الاستثناء يمثل الدلالة الأساسية للعملية ([SWS_DM_01002]).
التفاعل داخل وحدة التشخيص
تُعد الطريقة جزءًا من نهج معالجة الأخطاء الموحد في AUTOSAR Adaptive Diagnostics. تم تحديد واجهات مماثلة ذات توقيع ودلالات متطابقة لنطاقات أخطاء تشخيصية أخرى:
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني