يمكّن التطبيقات التكيفية من بناء قوائم وصول ديناميكية وأنماط خدمات لخدمات التشخيص.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d14f1d69eb64المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يمكّن التطبيقات التكيفية من بناء قوائم وصول ديناميكية وأنماط خدمات لخدمات التشخيص.
يُستخدم الصنف من قِبل التطبيقات التكيفية لإنشاء وتكوين قوائم وصول ديناميكية لخدمات التشخيص [SWS_DM_01156]. وبعد تخصيص مسبق اختياري للذاكرة، فإنه ينشئ عبر دوال مثل MakeServiceBuilder مثيلات لتعريف أنماط معرّفات الخدمات الفردية أو تسلسلات البايتات [SWS_DM_01164]. تم التصريح عن جميع دوال الأعضاء بأنها آمنة من الاستثناءات كـ noexcept، في حين يجب تأمين العمليات المعدِّلة من جانب التطبيق ضد عمليات الوصول المتزامنة [SWS_DM_01163].
السياق
يخدم الصنف ara::diag::DiagnosticServiceDynamicAccessList التطبيق التكيفي (AA) لبناء قائمة وصول ديناميكية (DynamicAccessList) لخدمات التشخيص [SWS_DM_01156]. ويعمل كمصنع ووحدة إدارة لأنماط الخدمات عبر إنشاء مثيلات من DynamicAccessListDiagServiceBuilder[SWS_DM_01164]، [SWS_DM_01165]. في البنية المعمارية، يتفاعل التطبيق مباشرة مع القائمة لتحديد قواعد الوصول استنادًا إلى معرّفات الخدمات (SID) أو تسلسلات البايتات، والتي تشكل الأساس للتحكم الديناميكي في الوصول ضمن النظام الفرعي للتشخيص SWS Diagnostics §8.13.1 «Class: DiagnosticServiceDynamicAccessList».
يتضمن المسار النموذجي عند بناء قائمة وصول ديناميكية للخدمات المراحل التالية:
التخصيص المسبق للذاكرة: قبل إضافة أنماط الخدمات، يمكن للتطبيق استخدام Reserve لحجز الذاكرة مسبقًا لجميع أنماط الخدمات المتوقعة [SWS_DM_01163]. تتيح المعاملات المُمررة numberOfServiceHeads وmaxServiceHeadSize تقدير أسوأ الحالات للذاكرة المطلوبة، وذلك لتقليل عمليات إعادة التخصيص الديناميكية اللاحقة.
إنشاء الأنماط: يستدعي التطبيق MakeServiceBuilder لبدء نمط خدمة تشخيص. ويتم ذلك إما استنادًا إلى بايت SID فردي [SWS_DM_01164] أو تسلسل بايتات serviceHead لإجراء عمليات فحص أعمق للأنماط [SWS_DM_01165].
تكوين النمط: تُرجع الدالة كائنًا من النوع DynamicAccessListDiagServiceBuilder[SWS_DM_01164]، والذي يقوم التطبيق بتكوينه لاحقًا.
تم التصريح عن جميع دوال الأعضاء والمنشئات العامة للصنف بأنها noexcept وتضمن أمانًا صارمًا من الاستثناءات (exception safe) [SWS_DM_01157]، [SWS_DM_01163]، [SWS_DM_01164]. ولا تحدث حالات خطأ في شكل استثناءات C++ أو إرجاع ara::core::Result برموز أخطاء في هذه الواجهة. عند حجز الذاكرة عبر Reserve، يجوز أن تكون القيمة المحددة تقديرية؛ ولا يؤدي التقدير الأقل من الفعلي إلى إيقاف عمل الدالة، إلا أنه قد يستلزم عمليات إعادة تخصيص لاحقة [SWS_DM_01163]. سؤال Q-8d33a0315da27aed (مفتوح) ويجب على مطوري التطبيقات التأكد من عدم تنفيذ الدوال غير الآمنة مؤشريًا Reserve، MakeServiceBuilder ومعاملات الإسناد في نفس الوقت على نفس الكائن مطلقًا دون قفل خارجي.
يستند هذا الدليل إلى معيار AUTOSAR الإصدار R25-11 ويلخص مواصفة الصنف ara::diag::DiagnosticServiceDynamicAccessList.
Preallocates memory for all service heads to fit into the DynamicAccessList. The preallocation can be just estimated and may calculate just the worst case of memory needed, not exact memory size needed for data numberOfServiceHeads.
This function is used by the AA to construct a pattern for the DynamicAccessList, using only the SID.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: cfdb5e234f29المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تُستخدم الدالة المتزامنة MakeServiceBuilder للفئة ara::diag::DiagnosticServiceDynamicAccessList بواسطة تطبيق تكيفي لبدء نمط لقائمة الوصول الديناميكية (DynamicAccessList) عبر مُعرّف خدمة فردي (sid) ([SWS_DM_01164]). وهي تأخذ المعلمة sid من النوع DynamicAccessListDiagServiceBuilder::Byte وتُرجع مثيلًا جديدًا من DynamicAccessListDiagServiceBuilder ([SWS_DM_01164]). ومن خلال هذا الاستدعاء، يحث التطبيق مثيل خادم التشخيص على بناء DynamicAccessList جديدة تبدأ بنمط البايت الفردي المُمرر ([SWS_DM_01218]؛ AUTOSAR_AP_SWS_Diagnostics §7.3.2.3.4 «DynamicAccessList Creation and Update»).
التفاعل والبدائل
بعد البدء، تكون قائمة الوصول الديناميكية لجميع العملاء فارغة بشكل افتراضي ([SWS_DM_01214]). بالإضافة إلى هذه الدالة، يتوفر للتطبيق تحميل زائد باستخدام سلسلة بايتات (serviceHead) ([SWS_DM_01165]). ويمثل كلا التحميلين الزائدين نقطة الدخول التي يتم من خلالها بدء إنشاء قائمة وصول جديدة في الخادم ([SWS_DM_01218]).
معالجة الأخطاء والتزامن
الواجهة مصرح بها كـ noexcept ومحددة على أنها آمنة من الاستثناءات (exception safe) ([SWS_DM_01164]). وهي لا تطلق استثناءات ولا تُرجع رموز أخطاء؛ وبالتالي يُرجح ألا تُلاحظ مُعرّفات الخدمة غير الصحيحة إلا عند التقييم اللاحق للنمط بواسطة خادم التشخيص. سؤال Q-eacef79ec6be9fcd (مفتوح) وفيما يتعلق بالتزامن، تم تصنيف الدالة صراحة على أنها غير آمنة لخيوط المعالجة (not thread-safe) ([SWS_DM_01164]). وفي حالة الوصول المتوازي من عدة سياقات تنفيذ، يجب على التطبيق المستدعي توفير مزامنة خارجية.
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R25-11.
This function is used by the AA to construct a pattern for the DynamicAccessList, using a string of bytes.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 7426838ef9dfالمصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الطريقة MakeServiceBuilder للفئة ara::diag::DiagnosticServiceDynamicAccessList بواسطة Adaptive Application لإنشاء نمط تشخيصي لـ DynamicAccessList استنادًا إلى تسلسل بايتات ([SWS_DM_01165]).
الدالة مُعلنة كـ noexcept وآمنة من الاستثناءات (exception safe)، وبالتالي لا تولّد استثناءات C++ ([SWS_DM_01165]). رموز الخطأ أو رسائل DET/DEM غير محددة لهذا الاستدعاء. نظرًا لتصنيف العملية على أنها غير آمنة مؤشريًا (not thread-safe)، يجب مزامنة الاستدعاءات المتوازية على نفس المثيل من جانب التطبيق ([SWS_DM_01165]).
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R25-11.
Preallocates memory for all service heads to fit into the DynamicAccessList. The preallocation can be just estimated and may calculate just the worst case of memory needed, not exact memory size needed for data numberOfServiceHeads.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 77bde14da8eeالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تخصص الطريقة ara::diag::DiagnosticServiceDynamicAccessList::Reserve مسبقًا ذاكرة لرؤوس الخدمات (Service-Heads) داخل مثيل من DiagnosticServiceDynamicAccessList ([SWS_DM_01163]، SWS Diagnostics §8.13.1.1.3.3 «Reserve»). ولا يلزم أن يصيب هذا التخصيص المسبق حجم الذاكرة الدقيق، بل يجوز حسابه كتقدير لأسوأ الحالات لأقصى قدر مطلوب من الذاكرة ([SWS_DM_01163]).
الاستخدام والمعلمات
يتم الاستدعاء بشكل متزامن ويعالج معلمتي إدخال ([SWS_DM_01163]):
numberOfServiceHeads (std::size_t): عدد أنماط خدمات التشخيص (Patterns).
maxServiceHeadSize (std::size_t): الحد الأقصى المتوقع لعدد بايتات التشخيص داخل نمط فردي.
لا تُرجع الدالة أي قيمة (void) وهي محددة بـ noexcept بالإضافة إلى الخاصية exception safe ([SWS_DM_01163]). ولا توجد معالجة للأخطاء عبر رموز الإرجاع أو الاستثناءات.
التزامن والقيود
تم تصنيف الدالة على أنها not thread-safe ([SWS_DM_01163]). وبالتالي فإن عمليات الوصول المتزامنة من عدة خيوط معالجة إلى نفس المثيل تتطلب إلزاميًا مزامنة خارجية. ويُرجح أن يتم استدعاء الطريقة قبل تسجيل أنماط الخدمات (Service-Patterns)، وذلك لتقليل عمليات إعادة تخصيص الذاكرة لاحقًا في وقت التشغيل. سؤال Q-e58b6f12a3a0adac (مفتوح)
ترسيم الحدود
يجب تمييز هذه الطريقة عن دوال SOVD التي تحمل الاسم نفسه كما في DiagnosticSovdArrayContentElementDataView ([SWS_DM_02240])، أو DiagnosticSovdRecordContentElementDataView ([SWS_DM_02283])، أو DiagnosticSovdContentElementData ([SWS_DM_02345])، والتي تأخذ كل منها سعة ومحددة على أنها thread-safe.
تستند ملاحظة الاستخدام هذه إلى مواصفة AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني