يتيح الاستعلام عن ومراقبة أحداث تشخيصية متعددة عبر مقابض الأحداث وإشعارات رد النداء.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4cd8b0cbe34dالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يتيح الاستعلام عن ومراقبة أحداث تشخيصية متعددة عبر مقابض الأحداث وإشعارات رد النداء.
تتيح الفئة للتطبيقات الاستعلام المعتمد على الحالة عن أحداث تشخيصية متعددة ومراقبتها عبر واجهة مشتركة استنادًا إلى مقابض الأحداث [SWS_DM_01705]. وبالإضافة إلى تسجيل ردود نداء الإشعارات، تتوفر طرق غير متزامنة لتحديد حالة الحدث، وإزالة الارتداد، وعداد الأخطاء، ورقم DTC [SWS_DM_01707]، [SWS_DM_01709]. النسخ غير قابلة للنسخ أو النقل وتتطلب إنهاءً منظمًا للعمليات النشطة قبل التحرير بسبب المدمر (destructor) غير الآمن مع الخيوط [SWS_DM_01706]، [SWS_DM_02067].
السياق
توفر الفئة ara::diag::MultipleEvent واجهات للتطبيق للاستعلام عن أحداث التشخيص ومراقبتها عبر واجهات للأحداث المتعددة [SWS_DM_01705]. وعلى عكس فئات الأحداث الفردية، تخاطب العمليات على نسخ MultipleEvent أحداثًا محددة عبر معرف من النوع EventHandleType[SWS_DM_01707]، [SWS_DM_01708]. تعمل الفئة كواجهة بين مكون البرمجيات التطبيقي وإدارة التشخيص (DM) الخاصة بـ Adaptive AUTOSAR AUTOSAR AP SWS Diagnostics, ص. 69. وعبر النموذج الأولي للمنفذ الخاص بـ DiagnosticMultipleEventInterface، يتم ربط الكائن بالبنية التحتية للتشخيص المكونة [SWS_DM_01705].
دورة الحياة
يتم إنشاء نسخة من MultipleEvent عبر منشئ فئات صريح مع تحديد ara::core::InstanceSpecifier[SWS_DM_01705]. منشئ الفئات آمن مع الخيوط ويتحقق من الارتباط المنمذج بنموذج أولي لمنفذ من نوع الواجهة DiagnosticMultipleEventInterface[SWS_DM_01705]. وإذا فشل التعيين (mapping) أو أعيد استخدام نفس معرف النسخة داخل العملية، تبلغ المنصة عن انتهاكات مطابقة مثل InstanceSpecifierAlreadyInUseViolation أو PortInterfaceMappingViolation[SWS_DM_01705].
تم حظر عمليات النسخ والنقل بالكامل لـ MultipleEvent: تم الإعلان عن حذف كل من منشئ النسخ والنقل بالإضافة إلى عوامل الإسناد المقابلة [SWS_DM_02067]، [SWS_DM_02068]، [SWS_DM_02069]، [SWS_DM_02070]. وبذلك يمتلك الكائن هوية صارمة ويظل في موقع إنشائه. تم تحديد المدمر ~MultipleEvent() بأنه غير آمن مع الخيوط [SWS_DM_01706]. لذلك، يجب على المكونات المستدعية التأكد قبل الإتلاف من عدم وجود أي استعلامات أو إشعارات غير متزامنة قيد التشغيل عبر النسخة AUTOSAR AP SWS Diagnostics, ص. 78.
مسار الاستخدام
بعد إنشاء النسخة، يسجل التطبيق عادةً دالة رد نداء باستخدام SetEventStatusChangedNotifier ليتم إخطاره بتغييرات حالة حدث معين (يتم تحديده عبر EventHandleType) [SWS_DM_01708]. يؤدي الاستدعاء المتكرر لهذه الطريقة لنفس الحدث إلى الكتابة فوق المخطر المعين مسبقًا [SWS_DM_01708]. دالة التسجيل هذه غير آمنة مع الخيوط [SWS_DM_01708].
أثناء التشغيل، يمكن الاستعلام عن معلومات التشخيص الحالية بشكل مستهدف لكل مقبض حدث. تعيد جميع عمليات القراءة المعتمدة على الحالة بياناتها بشكل غير متزامن في ara::core::Future:
يعيد GetEventStatus بايت الحالة الحالي للحدث كـ EventStatusByte[SWS_DM_01707].
يعيد GetDebouncingStatus حالة إزالة الارتداد (DebouncingState) الخاصة بالحدث [SWS_DM_01710].
يعيد GetFaultDetectionCounter عداد اكتشاف الأعطال الحالي (FaultDetectionCounter) كقيمة عدد صحيح بعلامة ذي 8 بت [SWS_DM_01711].
يستعلم GetDTCNumber عن رقم DTC المخصص في DTCFormatType المطلوب [SWS_DM_01709].
مخطط التتابع: مسار الاستخدام النموذجي لمراقبة أحداث التشخيص والاستعلام عنها عبر MultipleEvent. المصادر: [SWS_DM_01705]، [SWS_DM_01707]، [SWS_DM_01708]، [SWS_DM_01709]، [SWS_DM_01710]، [SWS_DM_01711]
سيناريوهات الأخطاء
تشير طرق MultipleEvent إلى حالات الخطأ عبر النوع DiagErrc، والذي يتم نقله مغلفًا إما في ara::core::Result أو في ara::core::Future المعاد [SWS_DM_01707]، [SWS_DM_01708]، [SWS_DM_01709]. الحالات التالية محددة كأخطاء:
Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
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 DiagnosticMultipleEventPortMapping needs to be typed by a DiagnosticMultipleEventInterface. 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 DiagnosticMultipleEventInterface.
Request a governed re-review of this record. The record is not changed immediately.
Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: bd91ad4f4cb5المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تسجل الطريقة ara::diag::MultipleEvent::SetEventStatusChangedNotifier[SWS_DM_01708] دالة رد نداء من النوع EventStatusByteNotifier، والتي يتم استدعاؤها عندما تتغير حالة حدث تشخيص. وتحدد المعلمة eventHandle الحدث المطلوب داخل الحالة. حُددت الطريقة بأنها noexcept وتُرجع ara::core::Result<void>. ويؤدي الاستدعاء المتكرر إلى استبدال المٌخطر (Notifier) المسجل سابقاً [SWS_DM_01708].
معالجة الأخطاء
إذا حدث خطأ أثناء التسجيل، يُرجع ara::core::Result رمز الخطأ المقابل. والخطأ المحدد هو DiagErrc::kInvalidArgument، على سبيل المثال في سياق إزالة الارتداد الداخلية مثل kPreFailed[SWS_DM_01708].
التزامن والقيود
أُعلن عن العملية بأنها exception safe (آمنة من الاستثناءات)، ولكن صُنفت صراحةً بأنها not thread-safe (غير آمنة بالنسبة للخيوط) [SWS_DM_01708]. ولذلك يجب مزامنة الاستدعاءات المتزامنة على نفس الحالة خارجياً.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني