يعمل كواجهة UDS عامة للمعالجة غير المتزامنة لطلبات التشخيص الواردة في مدير التشخيص.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d0d38c589b70المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يعمل كواجهة UDS عامة للمعالجة غير المتزامنة لطلبات التشخيص الواردة في مدير التشخيص.
تتيح الفئة ara::diag::GenericUDSService، بصفتها معالج خدمة UDS عام، استقبال ومعالجة طلبات تشخيص UDS التعسفية عبر مدير تشخيص AUTOSAR [SWS_DM_00616]. بعد الربط بنموذج منفذ أولي، يتم تنشيط الخدمة عبر Offer()، وتعالج الطلبات بشكل غير متزامن في الدالة HandleMessage()، ويتم إلغاء تسجيلها مرة أخرى باستخدام StopOffer()[SWS_DM_00618]، [SWS_DM_00619]، [SWS_DM_00620]. والمثيل غير قابل للنسخ أو النقل ويشير إلى الأخطاء عبر رموز NRC من DiagUdsNrcErrc[SWS_DM_01657]، [SWS_DM_00618].
السياق
توفّر الفئة ara::diag::GenericUDSService واجهة خدمة عامة لاتصالات التشخيص وفقًا لـ UDS (Unified Diagnostic Services). وتعمل كفئة أساسية للتطبيقات التي ترغب في تنفيذ ومعالجة خدمات UDS مخصصة أو غير مغطاة بواسطة واجهات مخصصة. ويتم التفاعل أساسًا بين مكون التطبيق القائم بالتشخيص ومدير تشخيص AUTOSAR (DM) بالإضافة إلى سياق النمذجة الأساسي. ويتم الربط بمدير التشخيص ونموذج المنصة عند إنشاء المثيل عبر ara::core::InstanceSpecifier يشير إلى نموذج منفذ أولي مطابق لـ DiagnosticGenericUdsInterface[SWS_DM_00616]. وبمجرد تنشيط التسجيل عبر الواجهة، يوجّه مدير التشخيص طلبات UDS الواردة إلى المثيل المُنفَّذ [SWS_DM_00619].
يكون مثيل ara::diag::GenericUDSService مرتبطًا بنموذج منفذ أولي ثابت ومصممًا كنموذج فردي: تم حذف منشئ النسخ [SWS_DM_01657]، ومنشئ النقل [SWS_DM_01658] بالإضافة إلى معاملي الإسناد [SWS_DM_01655]، [SWS_DM_01656] (delete). ويتم الإنشاء صراحة عبر المنشئ مع تحديد InstanceSpecifier وتهيئة التزامن ConcurrencyType (kConcurrent أو kNotConcurrent) [SWS_DM_00616]. وتنقسم دورة حياة جاهزية الخدمة إلى مرحلتين أساسيتين:
غير معروض (Stopped / Initial): بعد الإنشاء أو بعد استدعاء StopOffer()، لا يوجّه DM أي طلبات إلى المثيل [SWS_DM_00620].
معروض (Offered): بعد نجاح استدعاء Offer()، يكون المعالج نشطًا ويعالج رسائل التشخيص الواردة [SWS_DM_00619].
يتم الهدم عبر الهادم الافتراضي ~GenericUDSService()[SWS_DM_00584]. وفيما يتعلق بأمان الخيوط، تم تحديد المنشئ على أنه آمن من حيث الخيوط، في حين أن Offer() وStopOffer() والهادم ليست آمنة من حيث الخيوط وتتطلب مزامنة خارجية [SWS_DM_00616]، [SWS_DM_00619]، [SWS_DM_00620]، [SWS_DM_00584].
يشمل المسار المعتاد إنشاء مثيل من فئة الخدمة المشتقة، وتفعيل المعالج، والمعالجة غير المتزامنة للمهام، وإلغاء التنشيط لاحقًا:
إنشاء المثيل: ينشئ التطبيق مثيلاً من فئة الخدمة المخصصة باستخدام ara::core::InstanceSpecifier المناسب وكذلك ConcurrencyType المطلوب [SWS_DM_00616].
عرض الخدمة: يشير استدعاء Offer() لمدير التشخيص إلى الجاهزية لاستقبال الرسائل [SWS_DM_00619].
معالجة الرسائل: تؤدي طلبات UDS الواردة إلى استدعاء الدالة الافتراضية الصرفة HandleMessage() بواسطة DM. ويتم تمرير معرّف الخدمة (sid)، وبيانات الحمولة (requestData)، والبيانات الوصفية (metaInfo)، بالإضافة إلى cancellationHandler[SWS_DM_00618]. وتُعيد الدالة ara::core::Future<OperationOutput>، والذي يتم من خلاله توفير النتيجة أو الخطأ بشكل غير متزامن [SWS_DM_00618]. ويمكن للمعالج التحقق عبر cancellationHandler.IsCanceled() مما إذا كانت العملية قد أُلغيت، أو تسجيل إشعار عبر cancellationHandler.SetNotifier()[SWS_DM_00618].
يمكن أن تحدث حالات الخطأ في مراحل مختلفة وتتطلب معالجة متمايزة:
انتهاكات إنشاء المثيل: إذا فشل تعيين InstanceSpecifier في النموذج، يبلّغ إطار العمل عن انتهاكات محددة: InstanceSpecifierMappingIntegrityViolation (يتعذر حل المحدّد في النموذج أو أنه لا يشير إلى PortPrototype)، PortInterfaceMappingViolation (المنفذ غير مشار إليه عبر DiagnosticServiceGenericMapping)، ProcessMappingViolation (لا توجد عملية مطابقة منمذجة)، أو InstanceSpecifierAlreadyInUseViolation (المحدّد مستخدم بالفعل في العملية) [SWS_DM_00616].
استدعاء عرض مكرر: إذا تم استدعاء Offer() على الرغم من أن الخدمة معروضة بنشاط بالفعل، يفشل الاستدعاء ويُرجع رمز الخطأ DiagOfferErrc::kAlreadyOffered (دلالات التراجع) [SWS_DM_00619].
أخطاء تنفيذ متعلقة بالتشخيص: إذا تعذر الرد تقنيًا بشكل إيجابي على رسالة UDS في HandleMessage()، يجب تزويد النتيجة في Future برمز استجابة سلبية (NRC) مناسب وفقًا للمعيار ISO 14229-1 عبر DiagUdsNrcErrc[SWS_DM_00618]. بالإضافة إلى ذلك، يجب أن يستجيب التنفيذ لإشارات الإلغاء الخاصة بـ cancellationHandler، في حال تم إنهاء محادثة التشخيص الأساسية قبل الأوان [SWS_DM_00618].
تم إنشاء دليل الفئات هذا آليًا استنادًا إلى معيار AUTOSAR.
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 DiagnosticGenericUdsInterface needs to be referenced by a DiagnosticServiceGenericMapping. 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 DiagnosticGenericUdsInterface.
concurrencyType
Specifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).
Request a governed re-review of this record. The record is not changed immediately.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 38c6453769b1المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الطريقة HandleMessage من ara::diag::GenericUDSService للمعالجة الخاصة بالتطبيق لطلبات تشخيص UDS الواردة [SWS_DM_00618].
الاستخدام
يستدعي Diagnostic Management (DM) الطريقة لكل رسالة طلب تشخيص مستلمة [SWS_DM_00618]. وبناءً على المعلمات، يتم تمرير معرف الخدمة (sid)، وحمولة البيانات (requestData كـ ara::core::Span<const std::uint8_t>)، ومعلومات الاتصال (metaInfo)، بالإضافة إلى cancellationHandler. وتتم المعالجة بشكل غير متزامن عبر إرجاع ara::core::Future<OperationOutput>[SWS_DM_00618]. تظل حمولة البيانات في requestData صالحة حتى يتم استيفاء الوعد (Promise) المقترن بها أو إلغاء العملية. وعبر cancellationHandler.IsCanceled()، يمكن للتطبيق التحقق من حالة الإلغاء أو تسجيل إشعار لإلغاء الجلسات باستخدام cancellationHandler.SetNotifier()[SWS_DM_00618].
معالجة الأخطاء
إذا تعذرت معالجة طلب بنجاح، يشير التطبيق إلى الخطأ عبر Future المرتجع باستخدام رمز استجابة سلبية مناسب (NRC وفقًا لـ ISO 14229-1) عبر DiagUdsNrcErrc[SWS_DM_00618].
التزامن والشروط الحدية
عمر metaInfo: تقتصر صلاحية كائن metaInfo بشكل صارم على مدة التنفيذ النشطة لاستدعاء الطريقة [SWS_DM_01345]. ويؤدي الحفظ أو الاستخدام بعد العودة من HandleMessage إلى سلوك غير محدد.
قابلية إعادة الدخول والتزامن: يحدد ara::diag::ConcurrencyType المحدد في المنشئ ما إذا كان يجب إجراء الاستدعاءات بطريقة آمنة خيطيًا SWS Diagnostics §7.3.1.2 «Concurrency of ara::diag interfaces». في حالة kConcurrent، يُسمح لـ DM باستدعاء الطلبات اللاحقة بشكل متوازٍ؛ وفي حالة kNotConcurrent، ينتظر DM حتى تصبح نتيجة الطلب الجاري متاحة.
تم توليد إشعار الاستخدام هذا آليًا استنادًا إلى مواصفة AUTOSAR Adaptive R25-11.
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
sid
Diagnostic Request Service Identifier.
requestData
Diagnostic request data (starting after SID). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
This Offer will enable the DM to forward request messages to this handler.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 19027d24302fالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تفعّل الطريقة Offer من الفئة ara::diag::GenericUDSService إعادة توجيه طلبات التشخيص: فهي تمكّن Diagnostic Manager (DM) من إعادة توجيه رسائل طلب UDS الواردة إلى هذا المعالج [SWS_DM_00619]. الاستدعاء المتزامن لا يحتوي على معاملات، ولا يحظر، ويعيد كقيمة إرجاع ara::core::Result<void>[SWS_DM_00619]. يُرجح عادةً أن يتم التنفيذ (تفسير:) أثناء مرحلة التهيئة والبدء لتطبيق Adaptive Application، وذلك قبل الحاجة إلى معالجة رسائل التشخيص عبر الشبكة. سؤال Q-c1e385a434fe1e4e (مفتوح)
معالجة الأخطاء والتزامن
تم التصريح عن الدالة بـ noexcept وتضمن أمان الاستثناءات [SWS_DM_00619]. إذا كانت الخدمة قد عُرضت بالفعل مسبقًا، فسيفشل التسجيل ويعيد رمز الخطأ DiagOfferErrc::kAlreadyOffered مع دلالات التراجع [SWS_DM_00619]. فيما يتعلق بأمان الخيوط، تم تحديد الواجهة على أنها not thread-safe[SWS_DM_00619]؛ ويجب مزامنة الاستدعاءات المتزامنة على نفس النسخة بواسطة التطبيق المستدعي.
تفاعل
يتوافق العرض عبر Offer مع نمط التسجيل القياسي في نظام التشخيص الفرعي لـ AUTOSAR Adaptive، كما هو محدد بشكل مماثل للروتينات ([SWS_DM_00557]) أو معرّفات البيانات ([SWS_DM_00638]). على الرغم من أن التسمية مقتبسة من ara::com، إلا أنها طريقة خاصة بالتشخيص تابعة لـ Diagnostic Manager AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R25-11.
This StopOffer will disable the forwarding of request messages from DM.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 5dba8a8b4077المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تلغي الطريقة StopOffer للفئة ara::diag::GenericUDSService تفعيل إعادة توجيه طلبات التشخيص الواردة من Diagnostic Management (DM) إلى نسخة الخدمة [SWS_DM_00620]. ويتم توفير الدالة عبر الترويسة ara/diag/generic_uds_service.h، ولا تتوقع أي معلمات، ولها نوع الإرجاع void[SWS_DM_00620].
معالجة الأخطاء
تم تحديد الطريقة بـ noexcept وعلى أنها آمنة من الاستثناءات (exception safe) [SWS_DM_00620]. وهي لا ترمي أي استثناءات ولا ترجع أي رموز أخطاء؛ ويتم إيقاف إعادة التوجيه بشكل حتمي.
التزامن والقيود
وفقاً للمواصفة، تم تصنيف StopOffer على أنها غير آمنة خيطياً (not thread-safe) [SWS_DM_00620]. ويجب تأمين الاستدعاءات المتوازية لنفس النسخة من جانب التطبيق. تفسير: يُرجح أن استدعاء StopOffer يتم عادةً قبل تدمير كائن النسخة أو في حالة عدم التوفر المؤقت لمنع عمليات إعادة التوجيه المعلقة. سؤال Q-408323dd00c313c0 (مفتوح)
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني