DEENESPTFRRUARHIKOZHNL

Default Error Tracer (DET)

ModulDET (Default Error Tracer)
BSW-Modul-ID15
Standard-Header#include "Det.h"
SWS-SpezifikationAUTOSAR_SWS_DefaultErrorTracer.pdf
ClusterDiagnostic Services

دليل الوحدةمولَّد بالذكاء الاصطناعي

يتلقى رسائل الخطأ من البرمجيات الأساسية وSW-Cs مركزياً ويمررها إلى خطافات المدمج (Integrator Hooks).
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: claude-opus-5-5 · الجهد: high · درجة الحرارة: غير قابل للتحكم · الموجّه: 44a890525e71 المصدر أسئلة مفتوحة (3)
المرساة السببية: R20-11 صالح اعتبارًا من R20-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يتلقى رسائل الخطأ من البرمجيات الأساسية وSW-Cs مركزياً ويمررها إلى خطافات المدمج (Integrator Hooks).

يتلقى Default Error Tracer رسائل الخطأ من وحدات BSW وSW-Cs مركزياً. ولهذا الغرض يتوفر Det_ReportError لأخطاء التطوير، وDet_ReportRuntimeError لأخطاء وقت التشغيل، وDet_ReportTransientFault للأخطاء العابرة، مع تحديد معرف الوحدة والمثيل وواجهة برمجة التطبيقات (API) والخطأ لكل منها. يمرر DET كل رسالة إلى جميع الخطافات أو عمليات الاستدعاء الخارجية (Callouts) المكونة للمدمج [SWS_Det_00501]. ويبدأ التشغيل بواسطة Det_Init وDet_Start من EcuM. القيد الحدي الأكثر أهمية: Det_ReportError لا يعود إلى المتصل في R20-11، بل يوقف تدفق البرنامج مثل توكيد (Assertion) [SWS_Det_00009].

يعد Default Error Tracer نقطة التجميع المركزية لرسائل الخطأ القادمة من البرمجيات الأساسية ومكونات البرمجيات. وهو يوفر ثلاث خدمات إبلاغ متماثلة البنية بالمعاملات ModuleId وInstanceId وApiId وErrorId أو FaultId: Det_ReportError لأخطاء التطوير، وDet_ReportRuntimeError لأخطاء وقت التشغيل، وDet_ReportTransientFault للأخطاء العابرة ([SWS_Det_00009]، [SWS_Det_01001]، [SWS_Det_01003]). ويضع EcuM الـ DET في الخدمة بواسطة Det_Init ثم Det_Start ([SWS_Det_00008]، SWS DET الشكل 1 ص. 34).

det_kontext ecum EcuM det Det ecum->det Det_Init, Det_Start bsw BSW-Module (z. B. CanIf, Dio, Adc) bsw->det Det_ReportError Det_ReportRuntimeError Det_ReportTransientFault swc SW-C rte RTE swc->rte Service-Port DETService rte->det الاستدعاء مع ModuleId/InstanceId (port defined argument values) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks جميع الـ Hooks/Callouts المهيأة dlt Dlt (optional) det->dlt Dlt_DetForwardErrorTrace dem Dem / ذاكرة الأخطاء hooks->dem مثل استدعاء Dem، والتخزين

مخطط سياق: يستقبل DET الرسائل من وحدات BSW وSW-Cs ويوجهها إلى خطافات المدمج واختيارياً إلى Dlt. المصادر: SWS DET الشكل 2 ص. 28، [SWS_Det_00202]

لا يقيّم DET الرسائل بنفسه. تستدعي كل خدمة إبلاغ جميع الخطافات أو عمليات الاستدعاء الخارجية (Callouts) المكونة لها (DetErrorHook، DetReportRuntimeErrorCallout، DetReportTransientFaultCallout)، وذلك بنفس المعاملات الخاصة بالرسالة [SWS_Det_00501]. وعبر كود المدمج هذا، يصل DET أيضاً إلى DEM أو ذاكرة الأعطال. ويجب أن تقتصر عمليات الاستدعاء الخارجية على إجراءات قصيرة ومناسبة ErrorDescription ص. 10.

تبلغ SW-Cs عبر واجهة العميل-الخادم DETService. يكمل RTE كلاً من ModuleId وInstanceId كـ «port defined argument values» من تكوين DET، وتسترجع SW-C دائماً E_OK ([SWS_Det_00203]، [SWS_Det_00204]).

بالنسبة لحالات الخطأ، فإن كيفية عودة الخدمات الثلاث أمر حاسم. Det_ReportError لا يعود في R20-11: بعد الخطافات، يتم إيقاف تدفق التحكم، تماماً كما هو الحال في التوكيد (Assertion) ([SWS_Det_00009]، RS BSWGeneral ص. 33). في المقابل، تعود رسائل وقت التشغيل مع E_OK. وتمرر الرسائل العابرة قيمة الاستدعاء الخارجي (Callout)، وبدون استدعاء خارجي E_OK SWS DET الشكل 6 ص. 36. أُلغيت الأخطاء العابرة مع R24-11، واستدعاءات Dlt مع R25-11 SWS DET ص. 1.

الإبلاغ عن خطأ تطوير عبر Det_ReportErrorالمستدعيBSW-Modul (Det User)DetIntegrator-Codeاستدعاء API بمعلمة غير صالحةEntwicklungsfehler erkanntDet_ReportError(ModuleId,InstanceId, ApiId, ErrorId)altDetErrorHook konfiguriertloopلكل خطاف تتبع (Hook) مهيأ<User_Error_Hooks>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Hook konfiguriertلا توجد استدعاءات لخطافات التتبع (Hooks)HALT: لن يتم الاستمرار فيتدفق التحكملا توجد عودة إلى المُبلِّغ("never returns" in R20-11)

مخطط تسلسلي: عند حدوث خطأ تطوير، يستدعي DET جميع الخطافات المكونة ثم يتوقف بعد ذلك دون العودة إلى جهة الإبلاغ. المصادر: SWS DET الشكل 9.2 ص. 34، [SWS_Det_00009]

دور Default Error Tracer عند حدود النظام

يعد Default Error Tracer (DET) نقطة التجميع المركزية التي تبلغ إليها وحدات البرمجيات الأساسية ومكونات البرمجيات عن الأخطاء المكتشفة. في R20-11، يوفر لهذا الغرض ثلاث خدمات إبلاغ متماثلة البنية: Det_ReportError لأخطاء التطوير [SWS_Det_00009]، وDet_ReportRuntimeError لأخطاء وقت التشغيل [SWS_Det_01001]، وDet_ReportTransientFault للأخطاء العابرة [SWS_Det_01003]. يُضاف إلى ذلك خدمات الإدارة Det_Init وDet_Start وDet_GetVersionInfo ([SWS_Det_00008]، [SWS_Det_00010]، [SWS_Det_00011]). لا يقيّم DET محتوى الرسائل بنفسه. بل يقوم بإشعار خطافات الأخطاء المكونة مع كل رسالة مستلمة SWS DET ص. 16.

يرتبط DET بالخارج بشكل ضيق. وتذكر المواصفات، باعتبارها الواجهة المتوقعة الوحيدة، إعادة التوجيه الاختيارية إلى Dlt عبر Dlt_DetForwardErrorTrace من Dlt_Det.h ([SWS_Det_00211]، SWS DET الشكل 2 ص. 28). ولا يصل DET إلى DEM وRTE إلا من خلال كود مخصص للمدمج في عمليات الاستدعاء الخارجية (Callouts) ErrorDescription ص. 10.

det_kontext ecum EcuM det Det ecum->det Det_Init, Det_Start bsw BSW-Module (z. B. CanIf, Dio, Adc) bsw->det Det_ReportError Det_ReportRuntimeError Det_ReportTransientFault swc SW-C rte RTE swc->rte Service-Port DETService rte->det الاستدعاء مع ModuleId/InstanceId (port defined argument values) hooks Integrator-Code (Error-Hooks / Callouts) det->hooks جميع الـ Hooks/Callouts المهيأة dlt Dlt (optional) det->dlt Dlt_DetForwardErrorTrace dem Dem / ذاكرة الأخطاء hooks->dem مثل استدعاء Dem، والتخزين

مخطط سياق: يستقبل DET الرسائل من وحدات BSW، وعبر RTE، من SW-Cs. ويتم بدء تشغيله بواسطة EcuM ولا يمرر الرسائل إلا إلى كود المدمج المكون واختيارياً إلى Dlt. المصادر: SWS DET الشكل 2 ص. 28، [SWS_Det_00202]، [SWS_Det_00211]، ErrorDescription ص. 10

بدء التشغيل: التهيئة والبدء بواسطة EcuM

يقوم ECU State Manager بتهيئة DET باستخدام Det_Init (Service-ID 0x00). وأثناء ذلك، يمرر مؤشراً إلى مجموعة التكوين المحددة من النوع Det_ConfigType، والتي يكون محتواها خاصاً بالتنفيذ ([SWS_Det_00008]، [SWS_Det_00210]). بعد ذلك يبدأ Det_Start (Service-ID 0x02) برنامج التتبع [SWS_Det_00010]. كلتا الخدمتين متزامنتان وغير قابليْن لإعادة الدخول (non-reentrant). يوضح الرسم التخطيطي لـ R20-11 كلا الاستدعاءين تباعاً من EcuM SWS DET الشكل 1 ص. 34. ويدرج EcuM كلاً من Det_Init وDet_ReportError تبعاً لذلك كواجهات اختيارية SWS EcuM ص. 142.

لا تبرر المواصفات سبب فصل التهيئة عن البدء. تفسير: من المرجح أن هذا التقسيم الثنائي يسمح بتهيئة DET في مرحلة مبكرة جداً من بدء التشغيل وتفعيل التشغيل المنتظم في خطوة لاحقة فقط [SWS_Det_00010]. سؤال Q-fee4462bdf189dcf (مفتوح)

بدء تشغيل Det بواسطة EcuMEcuMDetDet_Init(ConfigPtr)التهيئة باستخدام المحددKonfigurationssatz (Det_ConfigType)العودة (متزامنة)Det_Start()العودة (متزامنة)كلا الخدمتين متزامنتان وغير قابلة للدخول المتكرر (non-reentrant)

مخطط تسلسلي: يستدعي EcuM أولاً Det_Init بشكل متزامن مع مؤشر التكوين، ثم Det_Start بعد ذلك. المصادر: SWS DET الشكل 1 ص. 34، [SWS_Det_00008]، [SWS_Det_00010]

مسارات الإبلاغ الثلاثة ومعرفاتها

تشترك جميع خدمات الإبلاغ الثلاث في بنية المعاملات نفسها:

  • ModuleId (uint16)؛
  • InstanceId (uint8)، وتكون القيمة 0 للوحدات ذات المثيل الواحد؛
  • ApiId (uint8)؛
  • ErrorId أو FaultId (uint8).

تحدد SWS الخاصة بالوحدة المبلغة كلاً من معرفات واجهة برمجة التطبيقات (API) ومعرفات الخطأ ([SWS_Det_00009]، [SWS_Det_01001]، [SWS_Det_01003]). ويأتي معرف الوحدة (Module-ID) من قائمة وحدات البرمجيات الأساسية. وتستخدم البرمجيات الأساسية منه النطاق 0..255 فقط EXP LSA ص. 157.

يتحدد المسار الصحيح بناءً على تصنيف الخطأ. وتُعد الشروط المسبقة الأساسية المنتهكة أخطاء تطوير وتُعامل مثل التوكيد (Assertion)؛ ومن الأمثلة على ذلك أخطاء البرمجيات، أو التكامل الخاطئ، أو التكوين غير الصالح. أما بقية الأخطاء فهي أخطاء وقت التشغيل أو أخطاء إنتاج EXP LSA ص. 154. وإذا تم تكوين اكتشاف أخطاء التطوير، تبلغ وحدات BSW عن أخطاء التطوير بمعرف الوحدة المخصص لها عبر Det_ReportError SWS BSWGeneral ص. 57. ويقوم مفتاح المعالج الأولي مثل SPI_DEV_ERROR_DETECT بإظهار الاستدعاء أو إخفائه EXP LSA ص. 113.

fehlerklassifikation start Fehler erkannt q1 Grundlegende Vorbedingung verletzt? start->q1 q2 هل هو ذو صلة بالتشخيص (الخدمة/EOL)؟ q1->q2 لا dev Entwicklungsfehler: Det_ReportError (Programmfluss endet) q1->dev نعم prod خطأ إنتاج (ليس عبر Det) q2->prod نعم rt Laufzeitfehler: Det_ReportRuntimeError q2->rt لا

مخطط نشاط: إذا تم انتهاك شرط مسبق أساسي، يتم الإبلاغ عن خطأ تطوير عبر Det_ReportError. وإلا فإن الصلة بالتشخيص تحدد الاختيار بين خطأ الإنتاج وخطأ وقت التشغيل (Det_ReportRuntimeError). المصادر: EXP LSA ص. 154، [SWS_Det_00009]، [SWS_Det_01001]

يتم الإبلاغ عن أخطاء وقت التشغيل، على سبيل المثال، بواسطة مشغل ADC باستخدام ADC_E_BUSY أو Dds عند تجاهل الرسائل، في كل حالة عبر Det_ReportRuntimeError (SWS Adc ص. 95، SWS Dds ص. 53). تصف وحدة BSW متطلباتها بنوع ServiceNeeds ErrorTracerNeeds. وهو يعرف الأدوار Det_ReportError وDet_ReportRuntimeError وDet_ReportTransientFault TPS BSWMDT ص. 266.

الخطافات (Hooks) وعمليات الاستدعاء الخارجية (Callouts) كجسر إلى كود المدمج

كل استدعاء لـ Det_ReportError يستدعي جميع الدوال المكونة في DetErrorHook. وبالمثل، يستدعي Det_ReportRuntimeError وDet_ReportTransientFault جميع استدعاءات callouts من DetReportRuntimeErrorCallout أو DetReportTransientFaultCallout على [SWS_Det_00501]. تمتلك الخطافات (hooks) واستدعاءات callouts توقيع الخدمة المشغلة وتتلقى المعلمات نفسها ([SWS_Det_00181]، [SWS_Det_00184]، [SWS_Det_00187]، SWS DET ص. 16). تمتلك واجهة الخطاف <User_Error_Hooks> معرف الخدمة 0x10. وهي متزامنة وقابلة لإعادة الدخول (reentrant) وتُرجع دائمًا E_OK SWS DET ص. 25.

يحدد القائم بالتكامل (integrator) ما تفعله استدعاءات callouts. في حالة أخطاء وقت التشغيل والأخطاء العابرة، ينبغي أن تقتصر على إجراءات قليلة: حفظ الحدث، أو استدعاء DEM، أو تنفيذ إجراء قصير ومناسب آخر ErrorDescription ص. 10. بعد استدعاء Det_ReportRuntimeError، يعود DET دائمًا بـ E_OK، سواء تم تكوين استدعاءات callouts أم لا (SWS DET الشكل 4 ص. 35، SWS DET الشكل 5 ص. 35).

Det_ReportRuntimeError مع Callout وبدونهDet UserDetIntegrator-CodeDet_ReportRuntimeError(ModuleId,InstanceId, ApiId, ErrorId)altDetReportRuntimeErrorCallout konfiguriertloopلكل Callout مهيأ<DetReportRuntimeErrorCallout>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Callout konfiguriertلا توجد إعادة توجيهE_OKيستمر تدفق برنامج المُبلِّغ في العمل

مخطط تسلسلي: يستدعي Det_ReportRuntimeError جميع استدعاءات callouts المكونة ويعود في كل الأحوال بـ E_OK إلى جهة الإبلاغ. المصادر: SWS DET الشكل 4 ص. 35، SWS DET الشكل 5 ص. 35، [SWS_Det_00501]

في حالة Det_ReportTransientFault، يُمرر DET في المقابل القيمة المعادة من الـ callout إلى جهة الإبلاغ. وبدون callout، فإنه يُرجع E_OK (SWS DET الشكل 6 ص. 36، SWS DET الشكل 7 ص. 36). بالنسبة لاستدعاءات callouts المتعددة، يصف إصدار لاحق عملية OR منطقية للقيم المعادة: لا يتم إرجاع E_OK إلا إذا أرجعت جميع استدعاءات callouts القيمة E_OK. يُرجح أن تنطبق هذه القاعدة بالفعل على R20-11 SWS DET ص. 24. سؤال (مفتوح)

Det_ReportTransientFault مع Callout وبدونهDet UserDetIntegrator-CodeDet_ReportTransientFault(ModuleId,InstanceId, ApiId, FaultId)altDetReportTransientFaultCallout konfiguriertloopلكل Callout مهيأ<DetReportTransientFaultCallout>(ModuleId,InstanceId, ApiId, FaultId)قيمة الإرجاع Xتطبيق عملية OR المنطقية على قيم الإرجاع(افتراض لـ R20-11)Callout-Ergebniskein Callout konfiguriertE_OK

مخطط تسلسلي: يُمرر Det_ReportTransientFault القيم المعادة لاستدعاءات callouts إلى جهة الإبلاغ؛ وبدون callout يُرجع E_OK. تم تمييز عملية OR في حالة استدعاءات callouts المتعددة كافتراض. المصادر: SWS DET الشكل 6 ص. 36، SWS DET الشكل 7 ص. 36، SWS DET ص. 24

ربط مكونات البرمجيات عبر منافذ الخدمة

تصل مكونات SW-Cs إلى DET عبر واجهة العميل-الخادم DETService. تستدعي عملياته Det_ReportError أو إشعار وقت التشغيل مع معرف الوحدة النمطية للمنفذ [SWS_Det_00202]. لا يُمرر ModuleId وInstanceId بواسطة SW-C نفسها، بل تكملهما RTE بصفتها «port defined argument values»، والتي تنبع قيمها من DetModuleId وDetInstanceId في تكوين DET ([SWS_Det_00204]، [SWS_Det_00205]، [SWS_Det_00206]). بالنسبة لمكونات SW-Cs، فإن ApiId وErrorId غير قياسيين ويمكن تخصيصهما بحرية في النطاق 0x00..0xFF. القيمة المعادة هي دائمًا E_OK [SWS_Det_00203]. تستخدم واجهة المنفذ أنواع بيانات AUTOSAR من النوعين uint8 وuint16 [SWS_Det_00200].

رسالة خطأ من SW-C عبر منفذ الخدمةSW-CRTEDetReportRuntimeError(ApiId, ErrorId)عبر منفذ R-Port (DETService)الاستدعاء مع استكمال ModuleId و InstanceId(port defined argument values)القيم من DetModuleId / DetInstanceIdالخاصة بتهيئة DetDet_ReportRuntimeError(ModuleId,InstanceId, ApiId, ErrorId)E_OKE_OK

مخطط تسلسلي: تُمرر SW-C المعلمتين ApiId وErrorId فقط. تكمل RTE المعلمتين ModuleId وInstanceId من التكوين، وتكون القيمة المعادة E_OK. المصادر: [SWS_Det_00202]، [SWS_Det_00203]، [SWS_Det_00204]، SWS DET الشكل 3 ص. 33

تكوين الإشعارات

توجد دوال الإشعار في الحاوية الاختيارية DetNotification (التعددية 0..1). وتحتوي على القائمتين DetErrorHook وDetReportRuntimeErrorCallout (0..* لكل منهما). يتم تكوين DetErrorHook في وقت ما قبل التجميع (Pre-compile time) ويتطلب نوع الدالة Std_ReturnType (*f)(uint16, uint8, uint8, uint8) SWS DET ص. 37. في R20-11 يُضاف DetReportTransientFaultCallout [SWS_Det_00501]. يُظهر مخطط المعلمات أيضًا الحاوية الإلزامية DetGeneral مع DetVersionInfoApi وDetForwardToDlt SWS DET (alt) الشكل 6 ص. 43. من DetConfigSet/DetModule وDetModuleInstance، يُشكل التكوين المنافذ Det_{Name} متضمنة معرف الوحدة النمطية ومعرف المثيل [SWS_Det_00205].

التصرف في حالة الخطأ

تُعامل أخطاء التطوير مثل توكيدات (assertions). بعد استدعاء الخطافات المكونة، لا يستمر مسار التحكم الطبيعي، ويوقف DET التنفيذ، على سبيل المثال من خلال حلقة لا نهائية أو تعليمة إيقاف (Halt) RS BSWGeneral ص. 33. ويتوافق مع ذلك الإدخال الخاص بـ Det_ReportError في R20-11 تحت Sync/Async: «Not Applicable: The function never returns» [SWS_Det_00009]. تُظهر المخططات حالة HALT هذه مع وجود خطاف مكون وبدونه (SWS DET الشكل 9.2 ص. 34، SWS DET الشكل 9.3 ص. 35).

الإبلاغ عن خطأ تطوير عبر Det_ReportErrorالمستدعيBSW-Modul (Det User)DetIntegrator-Codeاستدعاء API بمعلمة غير صالحةEntwicklungsfehler erkanntDet_ReportError(ModuleId,InstanceId, ApiId, ErrorId)altDetErrorHook konfiguriertloopلكل خطاف تتبع (Hook) مهيأ<User_Error_Hooks>(ModuleId,InstanceId, ApiId, ErrorId)E_OKkein Hook konfiguriertلا توجد استدعاءات لخطافات التتبع (Hooks)HALT: لن يتم الاستمرار فيتدفق التحكملا توجد عودة إلى المُبلِّغ("never returns" in R20-11)

مخطط تسلسلي: تكتشف وحدة BSW خطأ تطوير وتستدعي Det_ReportError. يستدعي DET جميع الخطافات المكونة ثم يتوقف بعد ذلك دون العودة إلى جهة الإبلاغ. المصادر: SWS DET الشكل 9.2 ص. 34، SWS DET الشكل 9.3 ص. 35، [SWS_Det_00009]، [SWS_Det_00501]

تنحرف بعض المخططات عن ذلك؛ حيث يشير مخطط تسلسلي إلى أن السلوك المتزامن أو غير المتزامن يعتمد على التنفيذ، ويرسم عودة إلى المتصل SWS DET الشكل 5 ص. 36. كما يُظهر مخطط Dio عودة بعد Det_ReportError SWS Dio الشكل 5 ص. 41. المرجع المعياري لـ R20-11 هو [SWS_Det_00009]. وجاء توضيح بيان Sync/Async لاحقًا مع R21-11 SWS DET ص. 1.

لا تقطع أخطاء وقت التشغيل والأخطاء العابرة مسار البرنامج: يعود DET بقيمة معادة إلى جهة الإبلاغ ([SWS_Det_01001]، [SWS_Det_01003]). لا يعرف DET نفسه سوى خطأ تطوير خاص به واحد. ينشأ DET_E_PARAM_POINTER (0x01) عند استدعاء Det_GetVersionInfo بمؤشر فارغ (null pointer) [SWS_Det_00301]. يحدد إصدار لاحق إبلاغ هذا الخطأ إلى جميع استدعاءات callouts المكونة. ويُرجح أن هذا هو المقصود أيضًا بالنسبة لـ R20-11 SWS DET ص. 18. سؤال Q-3a7f5865d61186d4 (مفتوح)

أدلة تفصيلية إضافية

تغير الإصدارات اللاحقة نطاق الوظائف. يميز إصدار من R23-11/R24-11 Det_ReportTransientFault بأنه OBSOLETE SWS DET ص. 24. ووفقًا لسجل التغييرات، يتم حذف الأخطاء العابرة مع R24-11 واستدعاءات Dlt مع R25-11 SWS DET ص. 1. في R20-11، لا تزال كلتا الوظيفتين جزءًا من المواصفة ([SWS_Det_01003]، [SWS_Det_00211]).

دليل وحدة نمطية مُنشأ بالذكاء الاصطناعي بناءً على مقتطفات المواصفة المقدمة في الحمولة (payload). المعياري لـ R20-11 هو حصريًا المتطلبات المرتبطة بروابط؛ والبيانات الواردة من إصدارات أخرى محددة على هذا النحو.

Default Error Tracer (DET)

The DET handles development errors, runtime errors, and transient faults across all BSW modules and SW-Cs.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

دالة Det_Init [SWS_Det_00008] 📄 PDF

void Det_Init (const Det_ConfigType* ConfigPtr);

Service to initialize the Default Error Tracer.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 03eaeb7bec98 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة Det_Init كخدمة مركزية لتهيئة Default Error Tracer ([SWS_Det_00008]). ويتم توفيرها عبر ملف الرأس Det.h ولها التوقيع void Det_Init (const Det_ConfigType* ConfigPtr). وعبر معلمة الإدخال الشكلية ConfigPtr، تستقبل الدالة مؤشرًا إلى سجل التكوين المحدد للوحدة النمطية. ولا تتوفر قيمة إرجاع لهذه الخدمة ([SWS_Det_00008]).

فيما يتعلق بسلوك وقت التشغيل، تم تحديد Det_Init بشكل إلزامي على أنها غير قابلة لإعادة الدخول (Non Reentrant) ([SWS_Det_00008]). ولهذا السبب، لا يجوز بأي حال من الأحوال استدعاء الدالة أثناء التشغيل الجاري بالتوازي أو المقاطعة من سياقات تنفيذ مختلفة. من المحتمل استدعاء الوحدة النمطية مركزيًا أثناء مرحلة تهيئة البرمجيات الأساسية، حتى قبل أن ترسل وحدات BSW النمطية الأخرى أو المكونات أخطاءً إلى DET (تفسير). سؤال Q-143a3c098d03d7f8 (مفتوح)

تم تعريف الدالة بمعرف الخدمة 0x00 ([SWS_Det_00008]). لا توجد أكواد أخطاء خاصة، أو آليات مخصصة لمعالجة الأخطاء، أو رسائل خطأ منفصلة عبر DET أو DEM موضحة لاستدعاء التهيئة هذا في مقتطف المواصفة الحالي.

في إطار تتبع المتطلبات، تفي الواجهة باشتراطات AUTOSAR العامة لاتفاقيات التسمية الموحدة لواجهات برمجة التطبيقات (API) وفقًا لـ [SRS_BSW_00310] (SWS DefaultErrorTracer §6 «Requirements Tracing»).

تم إنشاء هذه الملاحظة بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Det_ReportError [SWS_Det_00009] 📄 PDF

Std_ReturnType Det_ReportError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

Service to report development errors.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 52a5f1bc3a91 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة Det_ReportError في أنماط AUTOSAR Classic BSW للإبلاغ عن أخطاء التطوير عند تنشيط كشف الأخطاء ([SWS_BSW_00045]، [SWS_Det_00009]). تم التصريح عن الواجهة بأنها قابلة لإعادة الدخول ([SWS_Det_00009]). لا يعود سلوك التنفيذ إلى المستدعي («never returns»)؛ ونوع الإرجاع Std_ReturnType موجود فقط للتوافق مع الخدمات وخطافات الاستدعاء (Hooks) ([SWS_Det_00009]).

تحدد معلمات التمرير سياق الخطأ بشكل فريد ([SWS_Det_00009]):

تمثل أخطاء التطوير انتهاكات جوهرية للشروط المسبقة ناتجة عن أخطاء برمجية، أو تهيئات خاطئة، أو مشكلات تكامل (EXP_LayeredSoftwareArchitecture §3 «Error Classification»، [SRS_BSW_00337] لم يُستورد النص بعد)، مثل استدعاء نمط غير مهيأ ([SWS_BSW_00243]) أو معلمات غير صالحة ([SWS_CANIF_00538]). ويتم التعامل معها مثل التأكيدات الجازمة (Assertions): بعد استدعاء جميع عمليات معاودة الاتصال المهيأة في DetErrorHook ([SWS_Det_00501])، لا يجوز استمرار تدفق التحكم الطبيعي؛ حيث يوقف DET التنفيذ، على سبيل المثال، عبر حلقة لا نهائية، أو أمر إيقاف (Halt)، أو إعادة تشغيل (Reset) ([SRS_BSW_00337] لم يُستورد النص بعد، EXP_LayeredSoftwareArchitecture §3 «Error Classification»).

تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR-R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة Det_Start [SWS_Det_00010] 📄 PDF

void Det_Start (void);

Service to start the Default Error Tracer.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c7a7762c6c8d المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم دالة API المتزامنة Det_Start لبدء تشغيل Default Error Tracer (DET) ([SWS_Det_00010]). تم التصريح عن هذه الخدمة في ملف الترويسة Det.h تحت معرف الخدمة 0x02 (SWS_DefaultErrorTracer §8.1.3.3 «Det_Start»). وفقًا للصيغة void Det_Start(void)، لا تقبل الدالة معلمات إدخال أو إخراج ولا تُرجع أي قيمة إلى المستدعي ([SWS_Det_00010]).

تسري شروط محددة على التكامل والتنفيذ:

  • إمكانية إعادة الدخول والتزامن: تم تعريف الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) ([SWS_Det_00010]). الاستدعاءات المتوازية من مهام متعددة أو سياقات مقاطعة غير مسموح بها.
  • سياق الاستدعاء: تفسير: يُرجح أن يتم الاستدعاء مركزيًا أثناء إقلاع النظام بعد التهيئة الأساسية لتفعيل تتبع الأخطاء في وحدة التحكم الإلكترونية. سؤال Q-b28f205b1cc7acfa (مفتوح)
  • معالجة الأخطاء: لا تُرجع الواجهة أي حالات خطأ؛ ولم يتم تحديد رموز أخطاء أو أحداث DET أو DEM لهذا الاستدعاء في مقتطف المواصفة ([SWS_Det_00010]).

في النظام ككل، تحقق Det_Start اصطلاح التسمية القياسي لبرمجيات AUTOSAR الأساسية وفقًا لـ [SRS_BSW_00310] لم يُستورد النص بعد (SWS_DefaultErrorTracer §6 «Requirements Tracing»).

تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة Det_ReportRuntimeError [SWS_Det_01001] 📄 PDF

Std_ReturnType Det_ReportRuntimeError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, faultErrorTracer uint8 ErrorId);

Service to report runtime errors. If a callout has been configured then this callout shall be called.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a935ac5290c8 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة [SWS_Det_01001] كخدمة BSW مركزية في Det.h لاستقبال أخطاء وقت التشغيل (Runtime Errors). وهي تعمل بشكل متزامن ومصممة لتكون قابلة لإعادة الدخول [SWS_Det_01001].

الاستخدام والمعلمات

تقوم وحدات BSW النمطية المستدعية بتمرير أربع معلمات إلزامية إلى [SWS_Det_01001] عند الإبلاغ عن الخطأ:

  • ModuleId: معرف الوحدة النمطية لوحدة BSW المبلغة.
  • InstanceId: رقم النسخة المستند إلى الفهرس (القيمة 0 للوحدات النمطية ذات النسخة الواحدة فقط).
  • ApiId: معرف دالة API التي حدث فيها الخطأ.
  • ErrorId: المعرف الخاص بالوحدة النمطية لخطأ وقت التشغيل المكتشف.

توفر الخدمة دائمًا قيمة الإرجاع E_OK للوحدة النمطية المستدعية [SWS_Det_01001].

التفاعل ومعالجة الأخطاء

وفقًا لبنية AUTOSAR، تختلف أخطاء وقت التشغيل عن أخطاء التطوير (التي تنتهك شروطًا مسبقة أساسية) وأخطاء الإنتاج (المهمة لتشخيص ورش الصيانة) EXP_LayeredSoftwareArchitecture §Integration and Runtime Aspects. ويتم دمج الخدمة، على سبيل المثال، كواجهة إلزامية بواسطة مشغل ADC [SWS_Adc_00530] أو DDS [CP_SWS_Dds_00832] لم يُستورد النص بعد.

في CanIf، تؤدي محاولة الإرسال عبر قناة غير متصلة (Offline) إلى الإبلاغ عن CANIF_E_STOPPED [SWS_CANIF_00382]، بينما يتم الإبلاغ عن تجاوزات الطول بدون اقتطاع كـ CANIF_E_TXPDU_LENGTH_EXCEEDED [SWS_CANIF_00900].

عند استدعاء [SWS_Det_01001]، يتم تنفيذ جميع دوال Callout المخزنة في معلمة التكوين DetReportRuntimeErrorCallout [SWS_Det_00503]. وإذا لم يتم تكوين خطافات للأخطاء، فلن يتم إجراء استدعاءات دوال إضافية، مع بقاء إعادة التوجيه إلى DLT نشطة إذا كان قد تم تكوينه [SWS_Det_00503].

تم إنشاء ملاحظة الاستخدام هذه تلقائياً استناداً إلى حالة مواصفات AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة Det_ReportTransientFault [SWS_Det_01003] 📄 PDF

Std_ReturnType Det_ReportTransientFault (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);

Service to report transient faults. If a callout has been configured than this callout shall be called and the returned value of the callout shall be returned. Otherwise it returns immediately with E_ OK.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a646ffef7d6e المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول Det_ReportTransientFault (معرف الخدمة 0x05) لمساعدة أنماط BSW في الإبلاغ القياسي عن الأخطاء العابرة المكتشفة إلى Default Error Tracer ([SWS_BSW_00225]، [SWS_Det_01003]). تم التصريح عن الخدمة عبر الترويسة Det.h، لكن تم تصنيفها في الإصدار R20-11 على أنها مهجورة (OBSOLETE) (SWS_DefaultErrorTracer §8.1.3.5 «Det_ReportTransientFault»).

عند الاستدعاء، يتم تمرير معلمات إدخال فقط: معرف النمط المستدعي (ModuleId)، وفهرس النسخة (InstanceId، حيث تمرر الأنماط ذات النسخة الفردية 0)، ومعرف الخدمة لواجهة API الكاشفة للخطأ (ApiId)، بالإضافة إلى رقم الخطأ (FaultId)، والذي يجب أن يكون من النوع uint8 وفقًا لـ SWS_BSWGeneral §7.2.4.4 «Reporting» ([SWS_Det_01003]).

يقوم الاستدعاء بتمرير الخطأ إلى دوال النداء الخارجي المهيأة ويقيم استجاباتها:

  • يؤدي الاستدعاء إلى تنفيذ جميع عمليات معاودة الاتصال المهيأة تحت DetReportTransientFaultCallout ([SWS_Det_00502]).
  • إذا لم يكن هناك نداء خارجي مهيأ، تنتهي الدالة على الفور وتُرجع القيمة E_OK ([SWS_Det_01003]).
  • إذا تم إعداد نداء خارجي واحد فقط، تُرجع Det_ReportTransientFault قيمته المُرجعة من النوع Std_ReturnType ([SWS_Det_01003]).
  • إذا توفرت عدة نداءات خارجية، يتم تكوين عملية OR المنطقية (المجموع) لجميع القيم المُرجعة من النداءات الخارجية. وبما أن E_OK = 0 محددة، فإن الدالة لا تُرجع E_OK إلا إذا استجابت كافة النداءات الخارجية دون أخطاء بـ E_OK ([SWS_Det_01003]).

فيما يتعلق بالتزامن وبيئة التنفيذ، صُممت الدالة لتكون قابلة لإعادة الدخول، ولهذا يمكن استدعاؤها بالتزامن من سياقات أنماط مختلفة ([SWS_Det_01003]).

تم إنشاء هذا النص بواسطة ذكاء اصطناعي استناداً إلى مواصفات AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة <User_Error_Hooks> [SWS_Det_00181] 📄 PDF

Std_ReturnType <User_Error_Hooks> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

-

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: ff89a131530f المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تحدد الواجهة القابلة للتهيئة <User_Error_Hooks> استدعاء دوال النداء الخارجي المخصصة للمستخدم عند اكتشاف أخطاء التطوير [SWS_Det_00181]. وبمجرد استدعاء الدالة Det_ReportError، يجب تنفيذ جميع النداءات الخارجية المهيأة لذلك في النظام بشكل متزامن [SWS_Det_00180]. يتم توفير التصريح عن هذه الواجهة عبر الترويسة Det_Externals.h SWS DefaultErrorTracer §8.1.5 «Callout Functions / Configurable Interfaces».

تمتلك الدالة معرف الخدمة 0x10 وتمرر أربع معلمات تشخيصية لتحليل الخطأ [SWS_Det_00181]:

  • ModuleId: معرف النمط الفريد لنمط BSW المستدعي.
  • InstanceId: معرف نسخة النمط، بدءًا من 0 (في الأنماط ذات النسخة الواحدة فقط يتم تمرير 0).
  • ApiId: معرف دالة API المعنية وفقًا لمواصفة النمط المعني.
  • ErrorId: معرف خطأ التطوير المحدد.

وفقًا للمواصفة، تُرجع الواجهة دائمًا القيمة المُرجعة E_OK، كما هو مطلوب لمثل هذه الخدمات [SWS_Det_00181]. ولا يمكن إرجاع رموز أخطاء خاصة أو قيم حالة بديلة إلى المستدعي عبر الواجهة.

فيما يتعلق بالتنفيذ، صُممت <User_Error_Hooks> لتكون متزامنة وقابلة لإعادة الدخول [SWS_Det_00181]. وإذا تم تحديد عدة نداءات خارجية لنفس الخدمة، فيجب أن تشترك في نفس التوقيع ومعرف الخدمة [SWS_Det_00180]. تفسير: نظرًا لأن المعالجة تتم مباشرة في سياق استدعاء Det_ReportError، فيُرجح ألا تستخدم خطافات المستخدم آليات حاجزة (blocking) لكي لا تؤخر تنفيذ النظام. سؤال Q-acd1afcd9336992f (مفتوح)

تم إنشاء ملاحظة الاستخدام هذه آليًا بالاستناد إلى مواصفة AUTOSAR-R20-11.

دالة <DetReportRuntimeErrorCallout> [SWS_Det_00184] 📄 PDF

Std_ReturnType <DetReportRuntimeErrorCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

-

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 19a5d54e4d0b المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم واجهة Callout القابلة للتكوين <DetReportRuntimeErrorCallout> لالتقاط أخطاء وقت التشغيل ومعالجتها بشكل مخصص للمستخدم في Default Error Tracer (SWS_DefaultErrorTracer §8.1.5 «Callout Functions / Configurable Interfaces»). بمجرد استدعاء الدالة Det_ReportRuntimeError، يقوم DET بتنفيذ جميع دوال Callout المكونة لذلك بشكل متزامن ([SWS_Det_00180]، [SWS_Det_00503]). ويتم توفير دوال Callout المكونة عبر ملف الرأس Det_Externals.h ولها معرف الخدمة 0x11 ([SWS_Det_00184]).

المعلَمات وقيمة الإرجاع

  • ModuleId (uint16): المعرف الرقمي لوحدة BSW النمطية التي تبلغ عن خطأ وقت التشغيل ([SWS_Det_00184]).
  • InstanceId (uint8): فهرس نسخة الوحدة النمطية، بدءًا من 0؛ وفي حالة النسخ الفردية يتم دائمًا تمرير 0 ([SWS_Det_00184]).
  • ApiId (uint8): معرف خدمة API التي حدث فيها خطأ وقت التشغيل ([SWS_Det_00184]).
  • ErrorId (uint8): المعرف الخاص بالوحدة النمطية لخطأ وقت التشغيل المكتشف ([SWS_Det_00184]).
  • قيمة الإرجاع: يرجع النوع Std_ReturnType دائمًا E_OK وفقًا لمواصفة الخدمة ([SWS_Det_00184]).

التزامن والسلوك

تم تحديد دالة Callout على أنها قابلة لإعادة الدخول، وتتم معالجتها بشكل متزامن في سياق التنفيذ الخاص بالجهة المبلغة ([SWS_Det_00184]). ويجب أن تمتلك جميع دوال Callout المكونة لنفس الخدمة التوقيع ومعرف الخدمة نفسهما ([SWS_Det_00180]). نظرًا لأن قيمة الإرجاع محددة بشكل ثابت على E_OK، فلا يتم إرسال أي إشعار بحالات الخطأ إلى DET عبر Callout.

ملاحظة: تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفة AUTOSAR Classic R20-11.

دالة <DetReportTransientFaultCallout> [SWS_Det_00187] 📄 PDF

Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);

-

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: aceceb0a4117 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يُستخدم خطاف Callout [SWS_Det_00187] للمعالجة المخصصة للتطبيق للأخطاء العابرة في Default Error Tracer (DET). يتم تنفيذ الدالة بشكل متزامن وهي معرفة بمعرف الخدمة 0x12 [SWS_Det_00187]. وتأخذ أربع معلمات إدخال:

  • ModuleId: معرف الوحدة النمطية للبرمجية المستدعية [SWS_Det_00187].
  • InstanceId: معرف النسخة المستند إلى الفهرس للوحدة النمطية بدءًا من 0، حيث يتعين على الوحدات النمطية أحادية النسخة تمرير القيمة 0 [SWS_Det_00187].
  • ApiId: معرف خدمة API التي حدث فيها الخطأ العابر [SWS_Det_00187].
  • FaultId: معرف الخطأ العابر المكتشف وفقًا لمواصفة SWS للوحدة النمطية المستدعية [SWS_Det_00187].

كقيمة إرجاع، تقدم الواجهة قيمة من النوع Std_ReturnType، والتي يتم تمريرها مباشرة إلى مستدعي Det_ReportTransientFault [SWS_Det_00187]. ويتم توفير التصريح عبر ملف الرأس Det_Externals.h [SWS_Det_00187].

فيما يتعلق بالتزامن، تم تحديد الدالة على أنها قابلة لإعادة الدخول [SWS_Det_00187]. ونظرًا لأنه يتم تمرير قيمة الإرجاع بشكل متزامن، فمن المفترض ألا يحتوي تنفيذ Callout على عمليات حجب، وذلك حتى لا يتم تأخير تنفيذ الوحدة النمطية المبلغة بشكل غير مسموح به. سؤال Q-23eaffed8be030bb (مفتوح)

تم إنشاء هذا النص بواسطة ذكاء اصطناعي استنادًا إلى بيانات المواصفات.

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_Det
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Det@rel:R20-11#469d4ef9
Content hash
469d4ef9
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DefaultErrorTracer.pdf#nameddest=SWS_Det_00008

خريطة المواضيع

عرض التفاصيل

اختر عنصرًا من المخطط.

التهيئة والحالة

Returns the version information of this module.

void Det_GetVersionInfo (Std_VersionInfoType* versioninfo);
Det_Init دالة

Service to initialize the Default Error Tracer.

void Det_Init (const Det_ConfigType* ConfigPtr);

الخدمات

Service to report development errors.

Std_ReturnType Det_ReportError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

Service to report runtime errors. If a callout has been configured then this callout shall be called.

Std_ReturnType Det_ReportRuntimeError (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, faultErrorTracer uint8 ErrorId);

Service to report transient faults. If a callout has been configured than this callout shall be called and the returned value of the callout shall be returned. Otherwise it returns immediately with E_ OK.

Std_ReturnType Det_ReportTransientFault (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);
Det_Start دالة

Service to start the Default Error Tracer.

void Det_Start (void);

دوال Callout والواجهات المتوقعة

-

Std_ReturnType <DetReportRuntimeErrorCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

-

Std_ReturnType <DetReportTransientFaultCallout> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 FaultId);

-

Std_ReturnType <User_Error_Hooks> (uint16 ModuleId, uint8 InstanceId, uint8 ApiId, uint8 ErrorId);

الأنواع

Configuration data structure of the Det module.