يخدم تنفيذ عمليات مراقبة التشخيص والإبلاغ عن الحالة إلى Diagnostic Management.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 49f63d89472dالمصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يخدم تنفيذ عمليات مراقبة التشخيص والإبلاغ عن الحالة إلى Diagnostic Management.
يوفر الصنف ara::diag::Monitor الواجهة الوظيفية لتنفيذ وظائف مراقبة التشخيص وربطها بـ Diagnostic Management [SWS_DM_00548]. بعد الربط بنموذج أولي للمنفذ، يشير التطبيق عبر Offer() إلى استعداده للاستقبال وينقل نتائج الاختبار باستمرار عبر ReportMonitorAction()[SWS_DM_01088]، [SWS_DM_00543]. نسخ Monitor ليست قابلة للنسخ ولا للنقل وجميع العمليات محددة في المواصفة على أنها غير آمنة خيطيًا [SWS_DM_01685].
السياق
يمثل الصنف ara::diag::Monitor واجهة C++ القياسية لتحقيق وظائف مراقبة التشخيص (Monitors) ضمن Adaptive Platform [SWS_DM_00548]. يكون Monitor مسؤولاً عن اكتشاف أعراض الأخطاء والإبلاغ عنها في مكونات البرمجيات الوظيفية، وينقل حالاتها إلى وحدة Diagnostic Management (DM).
يتم الربط بنموذج نظام AUTOSAR عبر ara::core::InstanceSpecifier، والذي يجب إلزاميًا أن يشير إلى PortPrototype ذي نوع محدد بواسطة DiagnosticMonitorInterface[SWS_DM_00548]. وتشارك في المعالجة الإجمالية بشكل أساسي ثلاثة مكونات: مراقبة الوظائف الخاصة بالتطبيق (Application)، ونسخة الواجهة المحلية لـ ara::diag::Monitor، بالإضافة إلى وحدة المنصة Diagnostic Management (DM)، التي تستقبل الأحداث وتطلب عمليات إعادة التهيئة.
تعتمد عملية إنشاء نسخة (instantiation) من المراقب على آلية إزالة الارتداد (debouncing) المحددة في النموذج. وتوفر Adaptive Platform أربعة متغيرات لمنشئ الفئات (constructor) لهذا الغرض:
إزالة ارتداد داخلية في المراقب مع تسجيل رد نداء InitMonitorNotifier ومؤشر دالة للاستعلام عن عداد اكتشاف الأعطال (std::function<std::int8_t()> getFaultDetectionCounter) [SWS_DM_00548].
إزالة ارتداد قائمة على العداد مع تمرير معلمات من النوع CounterBased[SWS_DM_00549].
إزالة ارتداد قائمة على الوقت مع تمرير معلمات من النوع TimeBased[SWS_DM_00550].
مراقبة مباشرة بدون خوارزمية إزالة الارتداد [SWS_DM_01972].
ترتبط نسخ ara::diag::Monitor بموقع تخزينها الأصلي ارتباطًا وثيقًا: إذ تم حذف منشئ النسخ [SWS_DM_01685] وعامل إسناد النسخ [SWS_DM_01683] (delete). وبالمثل، تم حذف منشئ النقل [SWS_DM_01686] وإسناد النقل [SWS_DM_01684] بشكل صريح.
بعد الإنشاء، تكون النسخة في الحالة غير معروض (Unoffered). وفقط من خلال الاستدعاء الصريح لـ Offer()، تعلن التطبيقات عن جاهزيتها لاستقبال ومعالجة نداءات التشخيص الخارجية (callouts) مثل initMonitor[SWS_DM_01088]. وباستخدام StopOffer()، يتم إلغاء تنشيط إعادة توجيه طلبات التشخيص من DM مرة أخرى [SWS_DM_01089]. بعد استدعاء StopOffer()، يُفترض أن يكون من الممكن استئناف التشغيل لاحقًا عبر استدعاء جديد لـ Offer(). سؤال Q-136565db34b28ae6 (مفتوح) وقبل الإتلاف النهائي لكائن المراقب، يُفترض أن التطبيق قد يتعين عليه تنفيذ StopOffer() لمنع الإشعارات المعلقة بشكل موثوق.
إنشاء النسخة: ينشئ التطبيق نسخة Monitor مع تحديد InstanceSpecifier، ورد النداء initMonitor بالإضافة إلى معلمات إزالة الارتداد المطلوبة أو رد نداء FDC [SWS_DM_00548]، [SWS_DM_00549].
عرض الخدمة: عبر Offer()، يقوم المراقب بتسجيل نفسه لدى DM كجاهز للاستقبال [SWS_DM_01088].
التهيئة: تقوم Diagnostic Management بإبلاغ التطبيق بأحداث التهيئة القادمة عبر رد النداء المسجل InitMonitorNotifier[SWS_DM_01088].
الإبلاغ الدوري/القائم على الأحداث: أثناء التشغيل الفعلي، يبلغ التطبيق باستمرار عن حالة مسار المراقبة عبر ReportMonitorAction(action)[SWS_DM_00543]. يحتوي الإجراء الممرر إما على نتائج الاختبار (مؤهل/غير مؤهل) أو أوامر للتحكم في إزالة الارتداد أو التخزين المسبق (prestorage). وإذا تم تكوين إزالة ارتداد داخلية في المراقب، يستعلم DM عند الحاجة عن قيمة حصر الخطأ عبر رد النداء المسجل [SWS_DM_00548].
إنهاء الخدمة: قبل إيقاف التشغيل أو عند إلغاء تنشيط وظيفة التشخيص، يستدعي التطبيق StopOffer() لمنع رسائل DM الواردة [SWS_DM_01089].
تتجلى حالات الخطأ في ara::diag::Monitor على مستويين مختلفين: كرمز خطأ عبر ara::core::Result أو كانتهاكات وقت التشغيل (Violations) لإطار العمل.
ترجع الطريقة Offer() قيمة ara::core::Result<void>. وإذا كان المراقب بالفعل في حالة المعروض، يفشل الاستدعاء ويعيد رمز الخطأ DiagOfferErrc::kAlreadyOffered[SWS_DM_01088].
تؤدي أخطاء التكوين أو الاستدعاء الجسيمة إلى إطلاق رسائل انتهاك محددة:
InstanceSpecifierMappingIntegrityViolation: يتعذر حل InstanceSpecifier في سياق نموذج العملية أو أنه لا يشير إلى PortPrototype[SWS_DM_00548].
PortInterfaceMappingViolation: المنفذ المشار إليه ليس من النوع DiagnosticMonitorInterface[SWS_DM_00548].
ProcessMappingViolation: لا توجد عملية منمذجة مطابقة لنسخة وقت التشغيل [SWS_DM_00548].
InstanceSpecifierAlreadyInUseViolation: يتم استخدام InstanceSpecifier بالفعل من قِبل مراقب آخر داخل العملية الحالية [SWS_DM_00548].
InvalidDebouncingAlgorithmViolation: تختلف آلية إزالة الارتداد المحددة في منشئ الفئات عن طريقة إزالة الارتداد المنمذجة في توصيفات تشخيص DEXT [SWS_DM_00548]، [SWS_DM_00549]، [SWS_DM_00550].
UnexpectedMonitorActionHandlingViolation: يتم تمرير قيمة إجراء إلى الطريقة ReportMonitorAction() غير مدعومة لخوارزمية إزالة الارتداد المكونة [SWS_DM_00543].
يستند هذا الدليل إلى مواصفة AUTOSAR Adaptive Platform الإصدار 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 referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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.
InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
getFaultDetectionCounter
Possibility to register a function to get the current FDC for this event.
Request a governed re-review of this record. The record is not changed immediately.
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 referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceCounterBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for CounterBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
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 referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceTimeBased.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
defaultValues
Default values for TimeBased debouncing
Request a governed re-review of this record. The record is not changed immediately.
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 referenced by a pingViolation DiagnosticMonitorPortMapping needs to be typed by a DiagnosticMonitorInterface. 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. InvalidDebouncin- Mismatching Debounce Algorithm in DEXT i.e gAlgorithmViola- DiagnosticEventToDebounceAlgorithmMapping shall be tion mapped to DiagnosticEventToDebounceAlgorithmMapping. DiagnosticDebounceAlgorithmProps which aggregates DiagEventDebounceMonitorInternal or DiagnosticEventToDebounceAlgorithmMapping shall not exist.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMonitorInterface.
initMonitor
Possibility to register an InitMonitor callback
Request a governed re-review of this record. The record is not changed immediately.
With the Offer the application states that it is ready to receive and process initMonitor callouts.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 2e8d03769af8المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
باستدعاء الطريقة Offer، يُشير تطبيق Adaptive Application إلى Diagnostic Management (DM) بأنه جاهز لتلقي استدعاءات initMonitor ومعالجتها [SWS_DM_01088]. ولا تحتوي طريقة الفئة ara::diag::Monitor على أية معلمات وتُرجع ara::core::Result<void>[SWS_DM_01088]. ورغم أن الاسم اختير استنادًا إلى ara::com، إلا أنه يتعلق بتنفيذ محدد لمكون التشخيص ويجب عدم الخلط بينه وبين خدمات الاتصال AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
في حالة حدوث خطأ، تُرجع الطريقة رمز الخطأ DiagOfferErrc::kAlreadyOffered، إذا كانت الخدمة قد عُرضت بالفعل مسبقًا [SWS_DM_01088]. ويتوافق هذا مع العداد (Enumerator) للإبلاغ عن العروض النشطة بالفعل ضمن نطاقات أخطاء التشخيص [SWS_DM_00514]. وفي حال نجاح الاستدعاء، لا يحتوي كائن الإرجاع على أي خطأ.
فيما يتعلق بالتزامن، تم تحديد الطريقة على أنها not thread-safe، مما يوجب مزامنة الاستدعاءات المتوازية على نفس المثيل من جهة التطبيق [SWS_DM_01088]. بالإضافة إلى ذلك، تم الإعلان عن الدالة على أنها آمنة من الاستثناءات (exception safe) ومع noexcept[SWS_DM_01088].
Function to report the status information being relevant for error monitoring paths.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 8334da733b55المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تبلغ الدالة التزامنية ReportMonitorAction من الفئة ara::diag::Monitor عن معلومات الحالة والمراقبة الخاصة باختبار تشخيصي إلى مراقبة الأخطاء في Diagnostic Management Daemon [SWS_DM_00543]. وعبر المعامل action من النوع MonitorAction، يمرر التطبيق إما نتيجة اختبار مؤهلة أو غير مؤهلة أو أوامر تحكم لتوجيه إلغاء الارتداد وكذلك لبدء التخزين المسبق (Prestorage) [SWS_DM_00543]. لا ترجع الدالة أي قيمة (void) وهي معلنة كـ noexcept وآمنة من حيث الاستثناءات [SWS_DM_00543].
إذا تم استدعاء ReportMonitorAction بقيمة لـ action لا تدعمها آلية إلغاء الارتداد المكونة لحدث التشخيص، فإن Diagnostic Manager يثير خرقاً في العملية (Process Violation) [SWS_DM_01988]. علاوة على ذلك، يحدد النظام رموز خطأ داخلية في النوع DiagErrc، على سبيل المثال kReportIgnored للحالات التي لا تكون فيها شروط التمكين مستوفاة [SWS_DM_00514].
تنطبق الشروط الحدية التالية على التكامل والتزامن:
أمان الخيوط: الدالة ليست آمنة من حيث الخيوط (not thread-safe) [SWS_DM_00543]. ويجب مزامنة الاستدعاءات المتوازية على نفس نسخة المرقاب من جانب المستدعي (على النقيض من MultipleMonitor، حيث يكون أمان الخيوط قابلاً للتهيئة عبر دالة البناء [SWS_DM_01698]).
إلغاء الارتداد: تغير الإجراءات المبلغ عنها مثل kPrefailed عداد إلغاء الارتداد الداخلي وفقاً لحجم الخطوة المكون [SWS_DM_00875]، حتى يصنف الخطأ عند الوصول إلى قيمة العتبة على أنه kFinallyDefective[SWS_DM_00024].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استناداً إلى مواصفة AUTOSAR AP R25-11.
UnexpectedMoni- ara::diag::Monitor::ReportMonitorAction is called with torActionHan- a parameter action value that is not supported by the used dlingViolation debouncing method.
Parameter (in)
Parameter
Beschreibung
action
Contains either the last (un-)qualified test result of the diagnostic monitor or commands to control the debouncing or to force a prestorage.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
This StopOffer will disable the forwarding of request messages from DM.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: e17ef3becf1dالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تعمل الدالة ara::diag::Monitor::StopOffer على تعطيل إعادة توجيه الطلبات والرسائل من Diagnostic Management (DM) إلى مثيل المراقب المعني ([SWS_DM_01089]). ويتم تنفيذ الاستدعاء بشكل متزامن، ولا يتطلب أي معاملات تمرير، وليس له قيمة معادة ([SWS_DM_01089]). تعمل العملية كنظير لـ Offer وتسمح لتطبيق Adaptive Application بتعليق المراقبة النشطة إذا كان جزء النظام المقترن لا يحتاج إلى مراقبة مؤقتًا (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»). ورغم أن المعرّف مستوحى من الواجهات في ara::com، إلا أن المواصفة تؤكد صراحة أنه تنفيذ مستقل لـ ara::diag::Monitor (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors»).
فيما يتعلق بمعالجة الأخطاء، تم التصريح عن الدالة بأنها noexcept وتُعد آمنة من الاستثناءات (exception safe)؛ ولا توجد رموز أخطاء أو رسائل أخطاء محددة ([SWS_DM_01089]). وكقيد جوهري، تم تصنيف StopOffer على أنها غير آمنة لخيوط المعالجة (not thread-safe) ([SWS_DM_01089]). تفسير: في حالة عمليات الوصول المتزامنة إلى نفس كائن المراقب، يُرجّح أن يكون المتصل نفسه مسؤولاً عن المزامنة المناسبة. سؤال Q-3ead3049b4378083 (مفتوح)
ضمن النظام ككل، تندمج StopOffer في نمط موحد لوحدة التشخيص: توجد واجهات مماثلة لتعطيل إعادة توجيه رسائل DM في GenericRoutine ([SWS_DM_00558])، وCommunicationControl ([SWS_DM_00810])، وEcuResetRequest ([SWS_DM_01017])، بالإضافة إلى Authentication ([SWS_DM_01131]) وغيرها.
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية وتستند إلى مواصفات AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني