تُستخدم لتوفير حالة تحديد مجموعة DoIP لـ Diagnostic Manager.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: dea27beb11bbالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم لتوفير حالة تحديد مجموعة DoIP لـ Diagnostic Manager.
تُستخدم الفئة ara::diag::DoIPGroupIdentification كواجهة مجردة لتطبيقات Adaptive، وذلك لتوفير الحالة الحالية لتحديد مجموعة DoIP لـ Diagnostic Management [SWS_DM_00724]. بعد إنشاء المثيل الخاص بالمنفذ، يُفعّل التطبيق إعادة توجيه الطلبات عبر Offer() وينهيها قبل تدمير الكائن بواسطة StopOffer()[SWS_DM_00725]. يُعد مثيل المعالج فريداً، ولا يمكن نسخه أو نقله، ويجيب على الاستعلامات بشكل غير متزامن عبر ara::core::Future.
السياق
توفّر الفئة ara::diag::DoIPGroupIdentification الواجهة الوظيفية لـ Diagnostic Management (AUTOSAR AP SWS Diagnostics ص. 73)، والتي يوفّر من خلالها تطبيق متكيف حالة تحديد المجموعة (حالة GID) الحالية لبروتوكول DoIP [SWS_DM_00724]. وضمن معمارية المنصة، تعمل الفئة كوسيط بين طرفي تفاعل أساسيين: ديمون Diagnostic Management الداخلي (DM)، الذي يتعامل مع رسائل تحديد المركبة ورسائل DoIP القياسية عبر الشبكة، والتنفيذ الخاص بالتطبيق، الذي يجسّد الدالة الافتراضية الصرفة GetGidStatus(). ويتم التحكم في توفير الطلبات واستقبالها عبر عروض خدمة صريحة [SWS_DM_00725].
دورة الحياة
يمثّل مثيل من DoIPGroupIdentification منفذ تشخيص فريدًا. ولهذا السبب، صُممت الفئة ككائن مُدار بشكل فريد: حيث تم حذف كل من منشئ النسخ [SWS_DM_01641] ومنشئ النقل [SWS_DM_01642] بالإضافة إلى معاملي الإسناد المقابلين [SWS_DM_01639]، [SWS_DM_01640] بشكل صريح (=delete).
يتم الإنشاء إلزاميًا عبر المنشئ ذي المعلمات مع تحديد ara::core::InstanceSpecifier بالإضافة إلى نمط التزامن ConcurrencyType[SWS_DM_00722]. وتنقسم دورة الحياة إلى المراحل التالية:
غير معروض (Not Offered): بعد الإنشاء، يوجد الكائن في مساحة عناوين العملية، ولكنه لا يستقبل بعد أي طلبات من DM.
معروض (Offered): من خلال الاستدعاء المتزامن لـ Offer()[SWS_DM_00725]، يتم تنشيط المعالج لدى DM، بحيث يتم توجيه طلبات حالة DoIP الواردة.
متوقف (Stopped): يسحب استدعاء StopOffer()[SWS_DM_00726] إذن التوجيه من DM ويعيد الكائن إلى الحالة غير النشطة.
يتم الهدم عبر الهادم الافتراضي ~DoIPGroupIdentification()[SWS_DM_00723]. وفيما يتعلق بأمان الخيوط، فإن المنشئ آمن من حيث الخيوط، بينما Offer()، StopOffer() وكذلك الهادم ليست آمنة من حيث الخيوط [SWS_DM_00722]، [SWS_DM_00723]، [SWS_DM_00725]، [SWS_DM_00726]. ويتم تحديد أمان الخيوط لدالة الاستعلام GetGidStatus() بشكل مشروط وفقًا لـ ConcurrencyType المختار في المنشئ [SWS_DM_00724]. تفسير: يُرجّح أن يُنهي الهادم عمليات التوجيه الجارية ضمنيًا، في حال لم يتم استدعاء StopOffer() مسبقًا. سؤال Q-50d70fb679462321 (مفتوح)
مسار الاستخدام
يشمل الاستخدام النموذجي كلاً من التهيئة، والتنشيط، والمعالجة غير المتزامنة، وإلغاء التنشيط:
ترث فئة تشخيص ملموسة من ara::diag::DoIPGroupIdentification وتنفّذ الدالة GetGidStatus()[SWS_DM_00724].
ينشئ التطبيق الكائن باستخدام InstanceSpecifier الخاص بـ PortPrototype المُهيأ ويحدد ما إذا كان يجوز استدعاء GetGidStatus() بشكل متزامن (kConcurrent) أم لا (kNotConcurrent) [SWS_DM_00722].
يقوم التطبيق بتفعيل المعالج لـ Diagnostic Management بواسطة Offer()[SWS_DM_00725].
بمجرد وصول طلبات DoIP، يستدعي DM GetGidStatus()؛ ويعيد التطبيق حالة GID بشكل غير متزامن عبر ara::core::Future<GidStatus>[SWS_DM_00724].
قبل إنهاء الخدمة أو إيقاف تشغيل المكون، يستدعي التطبيق StopOffer()[SWS_DM_00726]، متبوعًا بهدم الكائن [SWS_DM_00723].
عند استخدام DoIPGroupIdentification، يتم تحديد شروط الخطأ في مرحلتي الإنشاء والتوفير:
أخطاء النموذج والتعيين (المنشئ): إذا فشل إنشاء المثيل، يتم الإبلاغ عن انتهاكات قياسية [SWS_DM_00722]:
InstanceSpecifierMappingIntegrityViolation: يتعذر حل المعرّف أو أنه لا يشير إلى نموذج منفذ أولي.
PortInterfaceMappingViolation: المنفذ المشار إليه ليس من النوع DiagnosticDoIPGroupIdentificationInterface.
ProcessMappingViolation: لا توجد عملية مطابقة معينة لسياق التنفيذ في النموذج.
InstanceSpecifierAlreadyInUseViolation: معرّف المنفذ المحدد مستخدم بالفعل من قِبل مثيل آخر في العملية الجارية.
خطأ في توفير الخدمة (Offer()): تعيد الدالة ara::core::Result<void>. وإذا كانت الخدمة قد عُرضت بالفعل بنجاح لهذا المعالج، فإن إعادة الاستدعاء تفشل برمز الخطأ DiagOfferErrc::kAlreadyOffered[SWS_DM_00725].
خطأ أثناء استعلام الحالة: لا تحدد الواجهة GetGidStatus() أي رموز خطأ قياسية [SWS_DM_00724]؛ ويجب تمثيل الأخطاء الداخلية في التطبيق عبر كائن النتيجة الخاص بـ future المُعاد.
يستند هذا الدليل حصريًا إلى مواصفة AUTOSAR Adaptive 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 DiagnosticDoIpGroupIdentificationPortMapping needs to be typed by a DiagnosticDoIPGroupIdentificationInterface. 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 DiagnosticDoIPGroupIdentificationInterface.
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.
This Offer will enable the DM to forward request messages to this handler.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c580e08dd024المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تشير دالة العضو المتزامنة Offer للفئة ara::diag::DoIPGroupIdentification إلى Diagnostic Management (DM) بأن Adaptive Application الموفرة جاهزة وأنه يمكن معالجة طلبات تحديد مجموعة DoIP [SWS_DM_00725]. ولا يمكن للـ DM استرداد معرف المجموعة (GID) عند الحاجة عبر الطريقة GetGidStatus إلا بعد هذا الاستدعاء، ما لم يكن هناك تكوين ثابت [SWS_DM_00813].
فيما يتعلق بسياق الاستدعاء والتزامن، تنطبق الشروط التالية:
التوقيع والدلالات: يتم الاستدعاء بدون معلمات ويُرجع بشكل متزامن ara::core::Result<void>[SWS_DM_00725]. تم التصريح عن الطريقة كـ noexcept وهي آمنة من حيث الاستثناءات (exception safe) [SWS_DM_00725].
أمان الخيوط: تم تحديد العملية على أنها غير آمنة خيطيًا (not thread-safe) [SWS_DM_00725]. ولا يجوز إجراء استدعاءات على نفس المثيل من خيوط متنافسة دون حماية.
في حالة حدوث خطأ، يقدم الكائن الناتج رمز الخطأ DiagOfferErrc::kAlreadyOffered مع دلالات التراجع (Rollback)، إذا كانت الخدمة قد تم تقديمها بالفعل لهذه الواجهة [SWS_DM_00725].
طالما أن التطبيق لم يقم بتنفيذ Offer بعد ويجب على DM إرسال تحديد مجموعة DoIP، يتم تطبيق السلوك الاحتياطي: ينقل DM كقيمة GID إما 0x00 0x00 0x00 0x00 0x00 0x00 أو 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF وفقًا لـ ISO 13400-2 كعلامة على أن «القيمة غير محددة» (value not set) [SWS_DM_01527].
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR.
This StopOffer will disable the forwarding of request messages from DM to this handler.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: da4bfe9455e6المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تنهي الدالة StopOffer للفئة ara::diag::DoIPGroupIdentification توفير المعالج وتعطل إعادة توجيه رسائل الطلب الواردة (request messages) من Diagnostic Management (DM) إلى هذه النسخة [SWS_DM_00726].
الاستخدام ومعالجة الأخطاء
تمتلك العملية المصرّح عنها في الترويسة ara/diag/doip_group_identification.h التوقيع void StopOffer () noexcept;[SWS_DM_00726]. وهي لا تقبل أي معلمات، ولا تُرجع أي قيمة، وتُنفّذ بشكل متزامن [SWS_DM_00726]. وقد حُددت الدالة بأنها آمنة من الاستثناءات (exception safe) ولا تطلق أي استثناءات C++؛ كما لا توجد رموز أخطاء أو رسائل خطأ مخصصة لهذه العملية [SWS_DM_00726].
التزامن والقيود
فيما يتعلق بالتزامن، تم تحديد StopOffer صراحة بأنه غير آمن للخيوط (not thread-safe) [SWS_DM_00726]. ولذلك، من المحتمل أن يتعين على التطبيقات المستدعية التأكد ذاتيًا من عدم حدوث استدعاءات متنافسة على النسخة نفسها. سؤال Q-3ac810ffb08cb197 (مفتوح)
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني