تُستخدم لتوفير بيانات التشخيص الموسعة من جانب التطبيق لصالح Diagnostic Management التكيفي.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 0446a63ad449المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم لتوفير بيانات التشخيص الموسعة من جانب التطبيق لصالح Diagnostic Management التكيفي.
تُستخدم الفئة <ExtendedDataRecordElementInterface> للتطبيقات التكيفية كواجهة لتوفير بيانات التشخيص الموسعة إلى Diagnostic Management ([SWS_DM_02152]). بعد إنشاء المثيل والتفعيل عبر Offer()، ينفذ المعالج التوفير غير المتزامن للبيانات عبر الطريقة الافتراضية الصرفة Read() ([SWS_DM_02156]). ونظرًا لأن Diagnostic Manager يحفظ مجموعات البيانات بشكل دائم في الذاكرة غير المتطايرة، يجب حتمًا ملء القيم غير المتاحة بنمط تعبئة. الواجهة غير قابلة للنسخ أو النقل، والمدمر الخاص بها غير آمن خيطيًا.
السياق
تُستخدم الواجهة <ExtendedDataRecordElementInterface> في النظام الفرعي للتشخيص في AUTOSAR Adaptive Platform لتوفير بيانات التشخيص الموسعة الخاصة بالتطبيق (Extended Data Records) لصالح Diagnostic Management (DM) (AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»). يحتوي Extended Data Record على بيانات إضافية متعلقة بالتشخيص مثل قراءات العدادات أو معلومات البيئة المرتبطة بحدث خطأ. تعمل الفئة كواجهة أساسية مجردة لمكونات المعالج من جانب التطبيق. وتشمل أطراف التفاعل Diagnostic Manager (DM) الذي يطلب عمليات القراءة وينسقها، والتنفيذ الفعلي للمعالج داخل التطبيق، بالإضافة إلى الذاكرة غير المتطايرة (Non-Volatile Memory, NVM) التي يخزن فيها DM البيانات المسترجعة بشكل دائم ([SWS_DM_02156]). تفسير: يُرجح أن استدعاء Read() يحدث نتيجة معالجة تشخيصية داخلية في DM، على سبيل المثال عند وقوع حدث خطأ أو عند تغييرات حالة كود عطل التشخيص. سؤال Q-f80be8c2bd5697fc (مفتوح)
يتم الإنشاء عبر المنشئ ذي المعاملات مع تحديد ara::core::InstanceSpecifier بالإضافة إلى وضع التزامن ara::diag::ConcurrencyType ([SWS_DM_02158]، AUTOSAR AP SWS Diagnostics §7.2 «DiagnosticExtendedDataRecordInterface»). عملية البناء آمنة خيطيًا وآمنة من حيث الاستثناءات (exception safe). يُحدد المعامل concurrencyType ما إذا كان يُسمح بمعالجة استدعاءات الواجهة بشكل متزامن (kConcurrent) أو تسلسلي (kNotConcurrent) ([SWS_DM_02158]). تم منع عمليات النسخ والنقل بالكامل: تم حذف منشئ النسخ ([SWS_DM_02147])، وتعيين النسخ ([SWS_DM_02148])، ومنشئ النقل ([SWS_DM_02149])، وتعيين النقل ([SWS_DM_02150]) (=delete). وبذلك يمتلك المثيل هوية ثابتة ولا يمكن تكراره أو نقله.
بعد إنشاء المثيل، يكون الكائن في البداية في حالة غير نشطة. وفقط من خلال استدعاء Offer() ([SWS_DM_02152])، يتم تفعيل الخدمة ويقوم DM بإعادة توجيه الطلبات إلى المعالج. وبواسطة StopOffer() ([SWS_DM_02153])، يمكن إيقاف إعادة التوجيه هذه في أي وقت. يتم التدمير عبر المدمر الافتراضي ~<ExtendedDataRecordElementInterface>() ([SWS_DM_02151]). ورغم أنه آمن من حيث الاستثناءات، إلا أنه غير آمن خيطيًا بشكل صريح (not thread-safe) ([SWS_DM_02151]). تفسير: يُفترض وجوب استدعاء StopOffer() قبل تدمير كائن المعالج، لضمان عدم ورود المزيد من الطلبات أثناء تحرير الكائن. سؤال Q-c77dda63f0e8798a (مفتوح)
مسار الاستخدام
يشمل التسلسل العادي التوفير، والاستجابة غير المتزامنة لطلبات القراءة، وإلغاء تنشيط الخدمة:
التهيئة: يُنشئ التطبيق مثيلًا من الفئة المشتقة باستخدام معرف المنفذ المناسب وتكوين التزامن ([SWS_DM_02158]).
عرض الخدمة: من خلال استدعاء Offer()، يتم تمكين إعادة توجيه الطلبات في DM ([SWS_DM_02152]). تُرجع الطريقة ara::core::Result<void>.
استرجاع البيانات: عند وصول طلب قراءة، يستدعي DM الطريقة الافتراضية الصرفة Read() ([SWS_DM_02156]). يتم عندئذٍ تمرير بيانات التعريف الخاصة بالطلب (metaInfo) وcancellationHandler.
معالجة الإلغاء والإرجاع: يمكن للمعالج التحقق عبر cancellationHandler.IsCanceled() مما إذا كانت المحادثة قد أُلغيت، أو تسجيل إشعار عبر cancellationHandler.SetNotifier() ([SWS_DM_02156]). تُسلَّم النتيجة بشكل غير متزامن عبر ara::core::Future مع كائن ReadOutput ([SWS_DM_02156]، [SWS_DM_02154]).
الحفظ الدائم: يتسلم DM البيانات المسترجعة ويخزنها بشكل دائم في الذاكرة غير المتطايرة ([SWS_DM_02156]).
إلغاء تسجيل الخدمة: قبل إيقاف التشغيل، يستدعي التطبيق StopOffer() ([SWS_DM_02153]) لإنهاء إعادة التوجيه بواسطة DM قبل تدمير المثيل ([SWS_DM_02151]).
عند استخدام الواجهة، يجب مراعاة عدة شروط خطأ وشروط مسبقة:
أخطاء البناء وانتهاكات النموذج: عند استدعاء المنشئ، قد تحدث أخطاء في النمذجة ([SWS_DM_02158]). يشمل ذلك InstanceSpecifierMappingIntegrityViolation (لا يمكن حل المعرف أو أنه لا يشير إلى PortPrototype)، وPortInterfaceMappingViolation (عدم وجود إسناد بواسطة DiagnosticDataPortMapping)، وProcessMappingViolation (لم يتم العثور على عملية مطابقة في النموذج)، وكذلك InstanceSpecifierAlreadyInUseViolation (المعرف مستخدم بالفعل في العملية) ([SWS_DM_02158]).
العرض المتعدد: إذا تم استدعاء Offer() عندما تكون الخدمة معروضة بنشاط بالفعل، يفشل الاستدعاء ويُرجع رمز الخطأ DiagOfferErrc::kAlreadyOffered ([SWS_DM_02152]).
البيانات غير المتاحة عند طلبات القراءة: نظرًا لأن DM يودع البيانات في الذاكرة غير المتطايرة، فيجب حتمًا إرجاع قيمة عند استدعاء Read() ([SWS_DM_02156]). إذا كانت البيانات غير متاحة في وقت الاستعلام، يجب على تنفيذ المعالج ملؤها بنمط تعبئة محدد مثل 0xFF ([SWS_DM_02156]).
أخطاء التطبيق والتشخيص: إذا فشل توفير البيانات بالكامل، يمكن أن يحتوي ara::core::Future المُرجع على رمز خطأ NRC تشخيصي مطابق (DiagUdsNrcErrc) أو خطأ خاص بالتطبيق (ApApplicationError) ([SWS_DM_02156]).
مخاطر عند التدمير: نظرًا لأن المدمر غير آمن خيطيًا ([SWS_DM_02151])، فإن تدمير الكائن أثناء تنفيذ استدعاءات متوازية أو دون استدعاء StopOffer() مسبقًا ([SWS_DM_02153]) يؤدي إلى سلوك غير محدد.
تم إنشاء هذا الدليل بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R25-11.
Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 5f6f8ec51798المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام وسياق الاستدعاء
تُستخدم الدالة <ExtendedDataRecordElementInterface> كمنشئ لإنشاء DataElement لواجهة سجل بيانات موسع استناداً إلى ara::core::InstanceSpecifier[SWS_DM_02158]. يقع التصريح ضمن النطاق <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface> ويتطلب تضمين ملف الترويسة #include "<ExtendedDataRecordElementShortname>.h"AUTOSAR_AP_SWS_Diagnostics §8.49.2.2.1.6.
instanceSpec (ara::core::InstanceSpecifier): معرّف مثيل الخدمة الفعلي في نموذج AUTOSAR.
concurrencyType (ara::diag::ConcurrencyType): يحدد ما إذا كان إنشاء مثيل الواجهة يتم بأسلوب آمن لخيوط المعالجة (kConcurrent) أو غير آمن لخيوط المعالجة (kNotConcurrent).
التزامن وأمان الاستثناءات
دالة المنشئ نفسها مصرّح عنها كـ noexcept ومحددة بأنها thread-safe وكذلك exception safe[SWS_DM_02158]. تفسير: نظراً لأن الدالة معرّفة كـ noexcept، يُرجَّح ألا يتم الإشعار بأخطاء النمذجة والتهيئة عبر استثناءات C++، بل عبر الانتهاكات المحددة في إطار عمل Adaptive [SWS_DM_02158]. سؤال Q-9ce91764c3e8364e (مفتوح)
معالجة الأخطاء وانتهاكات النموذج
في حالة وجود تكوين خاطئ للنموذج أو معرّفات غير صالحة، تحدث انتهاكات محددة [SWS_DM_02158]:
InstanceSpecifierMappingIntegrityViolation: لا يمكن حل المعرّف في سياق العملية أو أنه لا يشير إلى PortPrototype.
PortInterfaceMappingViolation: لا تتم الإشارة إلى PortPrototype، المحدد نوعه عبر DiagnosticExtendedDataRecordInterface، بواسطة DiagnosticDataPortMapping.
ProcessMappingViolation: توجد InstanceRef مطابقة، ولكن لم يتم العثور على عملية منمذجة مطابقة لعملية وقت التشغيل.
InstanceSpecifierAlreadyInUseViolation: تم استدعاء منشئ الفئة باستخدام InstanceSpecifier قيد الاستخدام بالفعل في العملية.
تم توليد إشعار الاستخدام هذا آليًا استنادًا إلى مواصفة AUTOSAR Adaptive R25-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheit
exception safe
Thread-Sicherheit
thread-safe
Verletzungen (Violations)
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 DiagnosticExtendedDataRecordInterface needs to be referenced by a DiagnosticDataPortMapping.
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
instanceSpec
The specifier of a specific instance of a service.
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 · درجة الحرارة: غير قابل للتحكم · الموجّه: e44e4ef775f3المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُفعل الدالة Offer إعادة توجيه متطلبات التشخيص بواسطة خادم Diagnostic Management الخفي (DM) إلى مثيل المعالج المقابل [SWS_DM_02152]. يتم استدعاؤها بدون معلمات وتُرجع بشكل متزامن ara::core::Result<void>، وهي مصرّح عنها كـ noexcept ومحددة كآمنة من الاستثناءات (exception-safe) [SWS_DM_02152].
القيمة المرجعة والأخطاء: في حالة النجاح، تحتوي النتيجة على قيمة فارغة. وإذا كانت الخدمة قد سُجلت بالفعل مسبقاً لمثيل المعالج هذا، يفشل الاستدعاء ويُرجع رمز الخطأ DiagOfferErrc::kAlreadyOffered مع دلالات التراجع (Rollback) [SWS_DM_02152]. وتحدد نطاقات الأخطاء ذات الصلة لهذه الحالة أيضاً رمز الخطأ kAlreadyOffered[SWS_DM_00514][SWS_DM_00560].
التزامن: على عكس معالجات التشخيص الأخرى، التي غالباً ما يتم تصنيفها على أنها غير آمنة لخيوط المعالجة (كما هو الحال في [SWS_DM_00557] مثلاً)، فإن هذه الطريقة معرّفة صراحةً على أنها آمنة لخيوط المعالجة (thread-safe) [SWS_DM_02152].
التفاعل في النظام: طالما لم يتم توفير واجهة بعد من التطبيق باستخدام Offer، يتفاعل DM بحسب السياق بقيم افتراضية أو بديلة محددة، مثل الحالة «Not ready» عند استعلامات DoIP-PowerMode [SWS_DM_01525] أو قيم بديلة لمعرّفات المجموعات [SWS_DM_01527]. علاوة على ذلك، تؤكد المواصفة أن دوال تقديم التشخيص خاصة بـ ara::diag ولا يجوز الخلط بينها وبين ara::com::OfferAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 «Monitors».
تفسير: يُرجَّح أن يضمن سلوك الإشعار المتزامن لـ Offer اكتمال تسجيل المعالج تماماً قبل استلام متطلبات UDS اللاحقة. سؤال Q-e6b2916cf4887164 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R25-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
• If successful: an ara::core::Result containing a ara:: core::Result::value_type • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: diag::DiagOfferErrc
Fehler
Fehlercode
Beschreibung
DiagOfferErrc::kAlreadyOffered
rollback_semantics The service is already offered.
Request a governed re-review of this record. The record is not changed immediately.
Provision of a Read ExtendedDataRecordElement. The data fetched by this method is stored in non-volatile memory by the DM and therefore always a value needs to be returned. Not available data at the time of the method call shall be filled with a filling pattern, e.g 0xFF by the implementation of this method (DiagnosticExtendedDataRecordInterface in the role provide).
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: fe834745387eالمصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام والدلالات
يتم استدعاء الدالة الافتراضية الصرفة Read بواسطة Diagnostic Management (DM) لاسترجاع بيانات ExtendedDataRecordElement من التطبيق ([SWS_DM_02156]). ونظرًا لأن الـ DM يحفظ البيانات المسترجعة بشكل دائم في الذاكرة غير المتطايرة، يجب على الدالة دائمًا تقديم قيمة. وإذا لم تكن البيانات متوفرة في وقت الاستدعاء، فيجب ملؤها من خلال التنفيذ بنمط تعبئة مثل 0xFF ([SWS_DM_02156]).
يتم التنفيذ بشكل غير متزامن ويعيد ara::core::Future، والذي يغلف البنية ReadOutput في حالة النجاح ([SWS_DM_02154]). يمرر الاستدعاء المعلمات التالية ([SWS_DM_02156]):
metaInfo: ينقل معلومات وصفية لطلب التشخيص الأساسي.
cancellationHandler: يتيح الاستعلام عن الإلغاء عبر cancellationHandler.IsCanceled() وتسجيل دالة إشعار عبر cancellationHandler.SetNotifier().
معالجة الأخطاء
في حالة الخطأ، يوفر Future رمز استجابة UDS سلبيًا (DiagUdsNrcErrc) أو خطأ مخصصًا للتطبيق (ApApplicationError) ([SWS_DM_02156]، AUTOSAR_AP_SWS_Diagnostics §7.3.2.6.1 «NRCs created by application»). وإذا كانت واجهة الخدمة المطلوبة لم تعد مقدمة عبر offer() أو لم تُقدم بعد، يستجيب الـ DM بـ NRC 0x94 (ResourceTemporarilyNotAvailable) ([SWS_DM_01257]). بالإضافة إلى ذلك، يبلغ DiagOfferErrc::kAlreadyOffered إذا كانت الخدمة معروضة بالفعل ([SWS_DM_02156]).
التزامن والتفاعل
الدالة محددة بأنها آمنة من حيث الاستثناءات (exception safe) ([SWS_DM_02156]). الأمان التفرعي مشروط ومحدد بواسطة التنفيذ (implementation defined) ([SWS_DM_02156]). وهذا يميز Read لسجلات البيانات الموسعة (Extended-Data-Records) عن عمليات القراءة على عناصر البيانات العادية ([SWS_DM_00596]) أو معرفات البيانات ([SWS_DM_00640])، والتي هي صراحة غير آمنة تفرعيًا.
تم إنشاء هذا النص بواسطة نظام ذكاء اصطناعي استنادًا إلى مواصفات الإصدار R25-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
Header-Datei
#include "<ExtendedDataRecordElementShortname>.h"
Scope
class <ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>
Exception-Sicherheit
exception safe
Thread-Sicherheit
conditional Thread safety is implementation defined
Parameter (in)
Parameter
Beschreibung
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.
• If successful: an ara::core::Future containing an ReadOutput object as per [SWS_DM_02154] • If unsuccessful: an ara::core::Future containing a corresponding DiagUdsNrcErrc or ApApplicationError.
Fehler
Fehlercode
Beschreibung
DiagOfferErrc::kAlreadyOffered
rollback_semantics The service is already offered.
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 · درجة الحرارة: غير قابل للتحكم · الموجّه: 7a0fc3b7b561المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام وسياق الاستدعاء
يتم استدعاء الدالة StopOffer على مثيل لواجهة Extended Data Record (<ExtendedDataRecord-Namespace>::<ExtendedDataRecordElementInterface>)، والتي يتم تضمينها عبر الترويسة #include "<ExtendedDataRecordElementShortname>.h"[SWS_DM_02153]. يتم الاستدعاء بشكل متزامن، ولا يقبل أي معلمات، وليس له قيمة مرجعة (void).
الغرض من الطريقة هو تعطيل إعادة توجيه رسائل الطلب الواردة من Diagnostic Management (DM) إلى عنصر Extended Data Record المعني [SWS_DM_02153]. وبعد التنفيذ، لا يعيد DM توجيه أي طلبات تشخيص جديدة إلى المعالج المرتبط به.
معالجة الأخطاء والتزامن
تم التصريح عن الدالة بالمعرّف noexcept وتحديدها على أنها آمنة من الاستثناءات (exception safe) [SWS_DM_02153]. لم يتم تعريف رموز أخطاء محددة أو قيم مرجعة أو إشعارات لآليات مراقبة الأخطاء في الحمولة (Payload)؛ وفي حالة الخطأ لا يتم إطلاق أي استثناءات.
فيما يتعلق بالتزامن، تم تصنيف الطريقة صراحةً على أنها آمنة لخيوط المعالجة (thread-safe) [SWS_DM_02153]. ويشكل هذا خصوصية مميزة، نظراً لأن واجهات StopOffer ذات الصلة في ara::diag – مثل تلك الخاصة بالإجراءات الروتينية [SWS_DM_00558] أو عناصر البيانات [SWS_DM_00617] أو الشاشات الرقابية (Monitors) [SWS_DM_01089] – محددة على أنها غير آمنة لخيوط المعالجة. ويُرجَّح أن الطلبات التي تكون قيد المعالجة بالفعل إما أن تكتمل أو يتم تجاهلها قبل التوقف النهائي. سؤال Q-82e9d44f8ac1969d (مفتوح)
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني