DEENESPTFRRUARHIKOZHNL

Standard Types (Std_Types)

ModulStd (Standard Types)
BSW-Modul-ID197
Standard-Header#include "Std_Types.h"
SWS-SpezifikationAUTOSAR_SWS_StandardTypes.pdf
ClusterGeneral & Standard Types

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

يوفر أنواعاً موحدة للقيمة المرجعة والإصدار والمحوّل والثوابت لجميع وحدات Classic.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: claude-opus-5-5 · الجهد: high · درجة الحرارة: غير قابل للتحكم · الموجّه: 4fcc802ced39 المصدر أسئلة مفتوحة (4)
المرساة السببية: R20-11 صالح اعتبارًا من R20-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يوفر أنواعاً موحدة للقيمة المرجعة والإصدار والمحوّل والثوابت لجميع وحدات Classic.

توفر الوحدة std عبر Std_Types.h أنواعاً وثوابت موحدة على مستوى المنصة ككل، ولكنها لا تحتوي على كود برمجى أو تكوين. ويعد Std_ReturnType (uint8) مع E_OK وE_NOT_OK أمراً مركزياً. ولا يُسمح للوحدات بتعريف قيم خاصة بها إلا في النطاق 0x02–0x3F مع بادئة الوحدة، لأن البت 7 والبت 8 محجوزان لـ RTE [SWS_Std_00011]. وإلى جانب ذلك، تقدم الوحدة الثوابت STD_HIGH/STD_LOW وSTD_ON/STD_OFF وSTD_ACTIVE/STD_IDLE، والنوع Std_VersionInfoType للاستعلام عن الإصدار، بالإضافة إلى أنواع المحولات والرسائل للاتصال بين العميل والخادم. وفي R20-11، يتضمن رأس الملف أيضاً Compiler.h SRS BSWGeneral ص. 62.

الوحدة std هي ملف رأس مخصص للأنواع فقط. وهي توفر عبر Std_Types.h أنواعاً ورموزاً، ولكن دون دوال [SWS_Std_00005]. وفي R20-11، يضمّن ملف الرأس Platform_Types.h وCompiler.h ويعرّف Std_ReturnType بالإضافة إلى القيم E_OK/E_NOT_OK وثوابت STD_*. وتضمّنه كل وحدة تستخدم هذه الأنواع SRS BSWGeneral ص. 62. ولا يوجد تكوين أو معالجة خاصة للأخطاء وفقاً لنسخة لاحقة من المواصفات؛ ويُرجح أن ينطبق ذلك أيضاً على R20-11 (تفسير) SWS StandardTypes ص. 27. سؤال (مفتوح)

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte واجهات برمجة تطبيقات RTE مع Std_ReturnType / transformerError

مخطط السياق: Std_Types.h كأساس مشترك للأنواع لوحدات BSW وCDDs وRTE والمحولات. المصادر: SRS BSWGeneral ص. 62، CDD Guideline ص. 14

جوهر الوحدة هو Std_ReturnType (uint8) بالقيمتين E_OK (0) وE_NOT_OK (1). وقد خُصص النطاق 0x02–0x3F للأخطاء الخاصة بالوحدات مع بادئة الوحدة؛ بينما تحدد مواصفات RTE البت 7 والبت 8 [SWS_Std_00011]. ومن الأمثلة على هذه التوسيعات CAN_BUSY وCsm_ReturnType BSWUML Guide ص. 29. ويتم تأمين E_OK عبر STATUSTYPEDEFINED بسبب OSEK [SWS_Std_00006].

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F قيم خاصة بالوحدة النمطية (6 بتات منخفضة الرتبة، بادئة الوحدة النمطية) rt->user erweiterbar rtebits البت 7 والبت 8 محجوزان، ومحددان بموجب مواصفات RTE rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

مخطط السياق (بنية الأنواع): القيم القياسية، والنطاق الخاص بالوحدات، والبتات المحجوزة لـ RTE في Std_ReturnType. المصادر: [SWS_Std_00005]، [SWS_Std_00011]، SWS StandardTypes ص. 15

يُضاف إلى ذلك ثلاثة أزواج من الثوابت بقيمة 0x01u/0x00u لكل منها: STD_HIGH/STD_LOW للمستويات الفيزيائية، وSTD_ON/STD_OFF كمفاتيح، وSTD_ACTIVE/STD_IDLE للحالات المنطقية ([SWS_Std_00007]، [SWS_Std_00010]، [SWS_Std_00013]). وينقل Std_VersionInfoType معرف الشركة المصنعة ومعرف الوحدة وإصدار البرنامج للدالة المتزامنة القابلة لإعادة الدخول (reentrant) <Ma>_GetVersionInfo [SWS_Std_00015].

لتحويل البيانات، يعرّف std نوعين لأخطاء المحول: Std_TransformerError، وهي بنية تتكون من رمز الخطأ وفئة المحول، وStd_TransformerClass [SWS_Std_00021]. وتمرر RTE هذا الخطأ عبر المعامل الاختياري transformerError SWS RTE ص. 731. وبالنسبة للاتصال بين العميل والخادم، يرمّز Std_MessageTypeType وStd_MessageResultType الطلب/الاستجابة وOK/ERROR. ويقرأ مؤشر دالة من النوع Std_ExtractProtocolHeaderFieldsType كلتا القيمتين من رأس المحول [SWS_Std_91003]. وما زالت أنواع Forward في طور المسودة في R20-11 [SWS_Std_00029].

الدور وحدود النظام: ملف رأس مخصص للأنواع فقط بدون سلوك وقت التشغيل

لا تحتوي الوحدة std (Standard Types) على أي دوال. وهي توفر حصريًا أنواعًا ورموزًا متاحة عبر Std_Types.h. ويذكر كل متطلب من متطلبات الوحدة ملف الترويسة هذا كمصدر مرجعي، مثل [SWS_Std_00005] و[SWS_Std_00015]. وتنص المواصفة صراحةً على ما يلي: لا يقدم ملف الترويسة أي كود ولا يتطلب وحدات BSW أخرى، وليس له أي تهيئة ولا معالجة أخطاء خاصة به SWS StandardTypes ص. 27. تأتي هذه الصياغات من الإصدار بدءًا من R23-11. ويُرجح أن ينطبق الأمر نفسه على R20-11، لأن متطلبات R20-11 لا تتضمن سوى تعريفات الأنواع والرموز (تفسير). سؤال Q-8e4c66ae80752d38 (مفتوح)

الغرض هو توفير وصول موحد وشامل على مستوى المنصة إلى الأنواع القياسية. ولذلك يفرض متطلب BSW الخاص بترويسة الأنواع القياسية: أن تقوم كل وحدة تستخدم أنواع الأعداد الصحيحة لـ AUTOSAR أو نوع الإرجاع القياسي بتضمين Std_Types.h SRS BSWGeneral ص. 62. وتتم مشاركة نوع الإرجاع Std_ReturnType صراحةً بين RTE ووحدات BSW [SWS_Std_00005]. في المنهجية، تم توصيف الأنواع القياسية أيضًا باعتبارها أثر ARXML باسم «AUTOSAR Standard Types» Methodology ص. 400.

kontext std Std_Types.h (Modul std) plat Platform_Types.h std->plat #include comp Compiler.h (in R20-11 gefordert) std->comp #include bsw BSW-Module (z. B. Can, CanIf, Adc, NvM) bsw->std #include cdd Complex Device Driver cdd->std #include rte RTE (Rte_Call, Rte_Read, Rte_Send, …) rte->std nutzt Std_ReturnType, Std_TransformerError xf Transformer (SomeIpXf, E2EXf) xf->std nutzt Std_MessageTypeType, Std_MessageResultType swc SW-C swc->rte واجهات برمجة تطبيقات RTE مع Std_ReturnType / transformerError

مخطط السياق: يضمّن Std_Types.h ترويسات المنصة والمترجم، وتستخدمه وحدات BSW وCDDs وRTE والمحولات كأساس مشترك للأنواع. المصادر: SRS BSWGeneral ص. 62، CDD Guideline ص. 14، [SWS_Std_00005]، [SWS_Std_00021]

بنية Std_Types.h وتضمينها في شجرة الترويسات

بالنسبة للإصدار R20-11، يحدد متطلب BSW ما يجب أن يقدمه Std_Types.h SRS BSWGeneral ص. 62:

  • تضمين ترويسة الأنواع الخاصة بالمنصة Platform_Types.h،
  • تضمين الترويسة الخاصة بالمترجم Compiler.h،
  • تعريف Std_ReturnType،
  • تحديد قيم لكل من E_OK، وE_NOT_OK، وSTD_ON، وSTD_OFF، وSTD_HIGH، وSTD_LOW، وSTD_ACTIVE، وSTD_IDLE.

في النسخة اللاحقة من المتطلب نفسه، يغيب تضمين Compiler.h RS BSWGeneral ص. 60. ويتوافق ذلك مع سجل التغييرات: في R22-11، تمت إزالة تجريد المترجم المتقادم من أحد متطلبات Std، ولم يُضف NULL_PTR إلا مع R21-11 SWS StandardTypes ص. 1. بالنسبة إلى R20-11، ينتمي Compiler.h بالتالي إلى سلسلة التضمين، بينما لا ينتمي NULL_PTR من Std_Types.h إليها بعد.

هناك خصوصية تتعلق بـ E_OK. الرمز معرّف بالفعل في OSEK ويجب بالتالي استخدامه بشكل مشترك. يفرض [SWS_Std_00006] حماية عبر STATUSTYPEDEFINED: داخل نطاق الحماية يتم تعريف E_OK (0x00u) وStatusType، بينما يقع E_NOT_OK (0x01u) بالخارج. يحتوي متطلب BSW على ملاحظة التنفيذ نفسها مع إحالة إلى ISO 17356-3 SRS BSWGeneral ص. 62. يوضح الرسم التخطيطي لبنية ترويسة CDD كيفية إدراج Complex Device Driver لملف الترويسة ضمن بنية التضمين الخاصة به CDD Guideline ص. 14.

Std_ReturnType: نطاق القيم، وتخطيط البتات، والتوسيعات الخاصة بالوحدات

Std_ReturnType مشتق من uint8. والقيم القياسية هي E_OK (0) وE_NOT_OK (1)؛ النطاق 0x02–0x3F متاح للأخطاء الخاصة بالمستخدم [SWS_Std_00005]. يوضح [SWS_Std_00011] هذه القاعدة بدقة أكبر:

  • عادةً ما يُستخدم النوع مع E_OK أو E_NOT_OK.
  • إذا لم تكن هذه القيم كافية، يجوز تعريف قيم مخصصة في البتات الستة الأقل أهمية، وتتم تسميتها ببادئة الوحدة.
  • البت 7 والبت 8 محجوزان. ويتم تحديدهما، مثل التخطيط الإجمالي، بواسطة مواصفة RTE.

يوضح الرسم التخطيطي للتخطيط هذا التقسيم تحديدًا SWS StandardTypes ص. 15.

تصف مواصفة RTE النوع Std_ReturnType بأنه نوع لقيم الحالة والخطأ لدوال API؛ وتُحجز القيمة 0 لـ «لم يحدث خطأ» SWS RTE ص. 675. ووفقًا لدليل نمذجة BSW، فهو نوع الإرجاع الوحيد المسموح به في عمليات العميل-الخادم الخاصة بواجهات الخدمة BSWUML Guide ص. 28. أحد الأمثلة على التوسيع الخاص بالوحدة هو CAN_BUSY (0x02) لمشغل CAN. يوفر Can_Write() هذه القيمة عندما لا يكون أي كائن إرسال متاحًا SWS CANDriver ص. 54.

returntype rt Std_ReturnType (abgeleitet von uint8) ok E_OK = 0x00 (kein Fehler) rt->ok Standardwert nok E_NOT_OK = 0x01 (generischer Fehler) rt->nok Standardwert user 0x02–0x3F قيم خاصة بالوحدة النمطية (6 بتات منخفضة الرتبة، بادئة الوحدة النمطية) rt->user erweiterbar rtebits البت 7 والبت 8 محجوزان، ومحددان بموجب مواصفات RTE rt->rtebits reserviert csm Csm_ReturnType «extra_literals» CSM_E_BUSY = 2 CSM_E_SMALL_BUFFER = 3 CSM_E_ENTROPY_EXHAUSTION = 4 csm->rt erbt von csm->user belegt can CAN_BUSY = 0x02 (Can_Write: kein Sendeobjekt frei) can->user belegt

مخطط السياق (بنية النوع): ينقسم Std_ReturnType إلى قيم قياسية، ونطاق خاص بالوحدة 0x02–0x3F، وبتين محجوزين بواسطة RTE؛ تشغل توسيعات الوحدة مثل Csm_ReturnType أو CAN_BUSY النطاق المتاح فقط. المصادر: [SWS_Std_00005]، [SWS_Std_00011]، SWS StandardTypes ص. 15، BSWUML Guide ص. 29، SWS CANDriver ص. 54

في نموذج UML الخاص بـ BSW، تتم نمذجة مثل هذا التوسيع كفئة <Ma>_ReturnType مع النمط النمطي «extra_literals». تحمل قيمها بادئة الوحدة وتقع في النطاق 0x02–0x3f BSWUML Guide ص. 28. يوضح المثال Csm_ReturnType مع CSM_E_BUSY وCSM_E_SMALL_BUFFER وCSM_E_ENTROPY_EXHAUSTION هذا النمط BSWUML Guide ص. 29. إذا احتاجت عدة وحدات في مكدس ما إلى التوسيع نفسه، فلا يلزم تعريفه لكل وحدة على حدة BSWUML Guide ص. 33. وتوفر نسخة R23-11 فئة عامة مع «generic_type» لهذا الغرض، تُشتق منها التوسيعات الخاصة بالوحدة TR BSWUML Guide ص. 37.

erweiterung start البدء: الوحدة النمطية تحدد قيم الإرجاع q1 هل E_OK / E_NOT_OK كافيان؟ start->q1 std استخدام Std_ReturnType مع E_OK / E_NOT_OK q1->std نعم q2 هل تتطلب عدة وحدات نمطية ضمن حزمة مكدس واحدة نفس التوسعة؟ q1->q2 لا ende النهاية: تبقى البتات 7/8 محجوزة لـ RTE std->ende gen generische Erweiterung «extra_literals» «generic_type» (Fassung R23-11) q2->gen نعم own <Ma>_ReturnType als Klasse «extra_literals» modellieren q2->own لا derive اشتقاق <Ma>_ReturnType منه، وإضافة القيم الحرفية الخاصة عند الحاجة gen->derive lit تحديد قيم حرفية ببادئة الوحدة النمطية في النطاق 0x02–0x3F derive->lit own->lit lit->ende

مخطط النشاط: قرار ما إذا كانت الوحدة ستوسع Std_ReturnType بقيم مخصصة وكيفية ذلك. المصادر: [SWS_Std_00011]، BSWUML Guide ص. 28، BSWUML Guide ص. 33، TR BSWUML Guide ص. 37

ثوابت رمزية للمستويات والمفاتيح والحالات

إلى جانب قيم الإرجاع، يحدد Std_Types.h ثلاثة أزواج من الثوابت. تستخدم الأزواج الثلاثة جميعها القيم الرقمية 0x01u و0x00u، ولكن تم التعليق عليها بشكل مختلف ([SWS_Std_00007]، [SWS_Std_00010]، [SWS_Std_00013]):

الزوجالقيمالمعنى وفقًا للتعريف
STD_HIGH / STD_LOW0x01u / 0x00uالحالة الفيزيائية 5 V أو 3,3 V / 0 V
STD_ON / STD_OFF0x01u / 0x00uتشغيل/إيقاف، دون تعليق إضافي
STD_ACTIVE / STD_IDLE0x01u / 0x00uالحالة المنطقية نشط / خامل

أحد المستخدمين النموذجيين لـ STD_HIGH/STD_LOW هو مشغل DIO: تُرجع خدمة القراءة الخاصة به أحد هذين المستويين تحديدًا SWS DIO ص. 37. ويعمل STD_ON/STD_OFF كمفاتيح قبل الترجمة (Pre-compile). وأحد الأمثلة هو EEP_21_LDEXT_VERSION_INFO_API STD_ON في مواصفة BSW العامة SWS BSWGeneral ص. 76، ومثال آخر هو مفاتيح API الاختيارية لمشغل GPT SWS GPT ص. 48.

الاستعلام عن الإصدار عبر Std_VersionInfoType

Std_VersionInfoType عبارة عن بنية تحتوي على العناصر التالية: vendorID وmoduleID (كل منهما uint16) بالإضافة إلى sw_major_version وsw_minor_version وsw_patch_version (كل منها uint8). ويُستعلام عبر <Module name>_GetVersionInfo() عن إصدار وحدة BSW [SWS_Std_00015]. تحدد مواصفة BSW العامة لهذه الدالة ما يلي SWS BSWGeneral ص. 76:

  • تعمل بشكل متزامن وقابلة لإعادة الدخول (reentrant).
  • تحتوي على معامل واحد بالضبط من هذا النوع.
  • تتم تهيئة توفرها لكل وحدة في وقت ما قبل الترجمة (Pre-compile) عبر <Ma>VersionInfoApi.

يذكر متطلب BSW قاعدة التسمية GetVersionInfo مع المثال Eep_21_LDExt_GetVersionInfo SRS BSWGeneral ص. 60.

توجد تطبيقات ملموسة في العديد من الوحدات. ترفض Can_GetVersionInfo مؤشرًا فارغًا باستخدام CAN_E_PARAM_POINTER عند تفعيل اكتشاف أخطاء التطوير SWS CANDriver ص. 57. وتتحقق Adc_GetVersionInfo بالمثل من ADC_E_PARAM_POINTER SWS ADCDriver ص. 80. يوضح مدير NVRAM الاستدعاء كتابادل متزامن بسيط بين المستخدم والوحدة SWS NvM ص. 158.

الاستعلام عن الإصدار باستخدام Std_VersionInfoTypeNutzerBSW-Modul <Ma>Detواجهة برمجة التطبيقات API متوفرة فقط إذا كان<Ma>VersionInfoApi = STD_ON (Pre-compile)<Ma>_GetVersionInfo(&versioninfo)altversioninfo == NULL واكتشاف أخطاء التطوير نشطًاEntwicklungsfehler melden(z. B. CAN_E_PARAM_POINTER)مؤشر صالحvendorID, moduleID,sw_major/minor/patch_version eintragenعودة (void؛ متزامن، قابل لإعادة الدخول reentrant)

مخطط التسلسل: يستعلم مستخدم عن إصدار وحدة بشكل متزامن؛ في حالة المؤشر الفارغ واكتشاف أخطاء التطوير النشط، تُبلغ الوحدة عن خطأ، وإلا فإنها تملأ Std_VersionInfoType. المصادر: [SWS_Std_00015]، SWS BSWGeneral ص. 76، SWS CANDriver ص. 57، SWS NvM ص. 158

أنواع المحولات والرسائل لتحويل البيانات

لسلاسل المحولات، يوفر std عدة أنواع. Std_TransformerError في R20-11 عبارة عن بنية تتكون من errorCode (uint8) وtransformerClass من النوع Std_TransformerClass [SWS_Std_00021]. Std_TransformerClass مشتق من uint8 ويعرف خمس قيم [SWS_Std_00024]: STD_TRANSFORMER_UNSPECIFIED (0x00)، وSTD_TRANSFORMER_SERIALIZER (0x01)، وSTD_TRANSFORMER_SAFETY (0x02)، وSTD_TRANSFORMER_SECURITY (0x03)، وSTD_TRANSFORMER_CUSTOM (0xFF).

يُدرج التوقيع المختصر في دليل API النوع Std_TransformerError كـ typedef uint8. ومع ذلك، فإن المعيار الحاسم هو تعريف بنية المتطلب. تصنف الإصدارات اللاحقة errorCode كنوع مستقل Std_TransformerErrorCode، ويتم تحديد معناه لكل سلسلة محولات SWS StandardTypes ص. 17.

تمرر RTE هذا النوع كمعامل OUT اختياري transformerError إلى دوال API الخاصة بها، على سبيل المثال عند Rte_Call SWS RTE ص. 731، وRte_Read SWS RTE ص. 720، وRte_Result SWS RTE ص. 750. وتصفه واجهات المكونات الإضافية بأنه الخطأ الذي حدث أثناء تنفيذ سلسلة المحولات SWS RTE ص. 969.

تم تمييز Std_TransformerForward وStd_TransformerForwardCode في R20-11 كمسودة (draft). يعرف كود التوجيه (Forward-Code) E_OK، وE_SAFETY_INVALID_REP، وE_SAFETY_INVALID_SEQ، وE_SAFETY_INVALID_CRC ([SWS_Std_00027]، [SWS_Std_00029]). في الإصدارات اللاحقة، يستقبل Rte_Send معامل forwardedCode اختياريًا من هذا النوع SWS RTE ص. 704. ويُفترض أنه يعمل على إعادة تمثيل أخطاء السلامة المستلمة عند إعادة التوجيه، كما تصف ذلك دوال E2E-Forward SWS E2ELibrary ص. 107 (تفسير). سؤال Q-f0d374b3b793c868 (مفتوح) وفقًا لسجل التغييرات، تمت إزالة البنية Std_TransformerForward في R22-11 SWS StandardTypes ص. 1.

الإبلاغ عن خطأ المحول عبر Std_TransformerErrorSW-CRTETransformer-Ketteلا يوجد transformerError إلا عندerrorHandling = transformerErrorHandlingRte_Call_<p>_<o>(…, OUT transformerError)تنفيذ سلسلة المحولاتaltTransformer meldet FehlerFehlercode (Interpretation)تعبئة Std_TransformerError:errorCode, transformerClass (z. B. STD_TRANSFORMER_SAFETY)Std_ReturnType + transformerErrorkein Transformer-Fehlerالنتيجة دون أخطاءStd_ReturnType (z. B. E_OK)

مخطط التسلسل: يصل خطأ المحول إلى SW-C إلى جانب Std_ReturnType كـ Std_TransformerError مع رمز الخطأ وفئة المحول. المصادر: [SWS_Std_00021]، [SWS_Std_00024]، SWS RTE ص. 731، SwCluster Guideline ص. 245، SWS RTE ص. 774

لاتصال العميل-الخادم، يوجد نوعان للترميز، حيث يُحجز 0x02–0x3F في كل منهما للقيم المستقبلية:

  • يميز Std_MessageTypeType بين الطلب (STD_MESSAGETYPE_REQUEST، 0x00) والاستجابة (STD_MESSAGETYPE_RESPONSE، 0x01) ([SWS_Std_91001]، [SWS_Std_00017]).
  • يرمز Std_MessageResultType نتيجة الاستجابة: STD_MESSAGERESULT_OK (0x00) أو STD_MESSAGERESULT_ERROR (0x01) ([SWS_Std_91002]، [SWS_Std_00019]).

يصف نوع مؤشر الدالة Std_ExtractProtocolHeaderFieldsType دالة متزامنة وقابلة لإعادة الدخول. وهي تستخرج كلتا القيمتين من ترويسة بروتوكول المحول في ذاكرة تخزين مؤقت وتقدم Std_ReturnType [SWS_Std_91003]. تتلقى المحولات اختياريًا مثل هذا المؤشر كوسيط لدالتها العكسية ASWS TransformerGeneral ص. 40. يوفر محول SOME/IP تطبيقًا مناسبًا باستخدام SomeIpXf_ExtractProtocolHeaderFields SWS SOMEIPTransformer ص. 61. وتقوم ملفات تعريف E2E وهي 4m و7m و8m و44m بتقييم القيمتين في دوال التحقق الخاصة بها SWS E2ELibrary ص. 108.

Protokoll-Header-Felder extrahieren (E2E, Profil PXXm)RTEE2EXf (inverse Funktion)SomeIpXfE2E-BibliothekE2EXf_Inv_<transformerId>(extractProtocolHeaderFields,buffer, bufferLength, …)optProfile == PXXmextractProtocolHeaderFields(buffer, bufferLength,&messageType, &messageResult)= SomeIpXf_ExtractProtocolHeaderFields (Beispiel)Std_ReturnType ok,Std_MessageTypeType, Std_MessageResultTypealtok == E_OKsourceID = config->sourceIDE2E_P04mSourceCheck(…, SourceID,MessageType, MessageResult, …) (Beispiel)Std_ReturnTypeok == E_NOT_OK (z. B. falsche Protokollversion, Puffer zu kurz)إلغاء المعالجة مع إنهاء بالخطأuint8 (نتيجة التحويل العكسي)

مخطط التسلسل: يستخرج محول E2E لملفات تعريف PXXm نوع الرسالة ونتيجتها عبر مؤشر الدالة الممرر ولا يواصل التحقق إلا عند E_OK. المصادر: [SWS_Std_91003]، ASWS TransformerGeneral ص. 40، SWS E2ETransformer ص. 45، SWS SOMEIPTransformer ص. 61، SWS E2ELibrary ص. 108

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

لا تكتشف الوحدة نفسها أي أخطاء ولا تبلغ عنها. تنص النسخة بدءًا من R23-11 على أن الأنواع القياسية لا تنص على معالجة الأخطاء ولا تدعم أحداث الأمان SWS StandardTypes ص. 27؛ ويُرجح أن ينطبق الأمر نفسه على R20-11 (تفسير). سؤال (مفتوح) ولذلك، فإن سلوك الأخطاء ينشأ فقط في الوحدات التي تستخدم هذه الأنواع. الإشارة الأساسية هي E_NOT_OK [SWS_Std_00006]؛ وتحدد واجهة API المعنية معناها المحدد. بالنسبة إلى Adc_ReadGroup تعني «لا توجد نتائج متاحة أو خطأ في التطوير» SWS ADCDriver ص. 61، وبالنسبة إلى CanIf_Transmit تعني «لم يتم قبول طلب الإرسال» SWS CANInterface ص. 87.

يتم الإبلاغ عن أنماط الأخطاء الأكثر دقة عبر قيم خاصة بالوحدة في النطاق 0x02–0x3F [SWS_Std_00011]، على سبيل المثال CAN_BUSY SWS CANDriver ص. 54. لذلك يجب أن يتوقع المتصلون أن يأخذ Std_ReturnType أكثر من قيمتين. وتعتبر عمليات الاستدعاء الراجعة (Callbacks) التي يتم توجيهها كخدمات AUTOSAR عبر RTE حالة خاصة: على الرغم من أنه يجوز للمستدعي افتراض E_OK، إلا أن مثل هذه الاستدعاءات الراجعة قد تفشل، على سبيل المثال في الأنظمة المقسمة SWS BSWGeneral ص. 69.

في سلاسل المحولات، يُبلغ عن الخطأ بالإضافة إلى قيمة الإرجاع عبر Std_TransformerError مع رمز الخطأ وفئة المحول [SWS_Std_00021]. لا تنشئ RTE المعامل الاختياري transformerError إلا إذا تمت تهيئة معالجة الأخطاء transformerErrorHandling للمنفذ SWS RTE ص. 774. وإذا فشل استخراج حقول الترويسة، يُرجع SomeIpXf_ExtractProtocolHeaderFields E_NOT_OK، على سبيل المثال في حالة إصدار بروتوكول خاطئ أو ذاكرة تخزين مؤقت قصيرة جدًا SWS SOMEIPTransformer ص. 61. ويواصل منطق محول E2E التحقق فقط عند E_OK SWS E2ETransformer ص. 45.

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

دليل وحدة تم إنشاؤه بواسطة الذكاء الاصطناعي لـ std (classic، R20-11)، أُعد حصريًا استنادًا إلى حمولة autodocs. العديد من مواضع المستند مأخوذة من إصدارات أخرى؛ وتعتبر متطلبات R20-11 هي المعيارية. تجب المطابقة مع المواصفة قبل الاستخدام الملزم.

Standard Types (Std_Types)

Standard types, return codes (Std_ReturnType, E_OK, E_NOT_OK), version info structures, and error codes shared across the entire AUTOSAR architecture.

Typen — Übersicht

Typen — Detailansicht

نوع Std_ReturnType [SWS_Std_00005] 📄 PDF

typedef uint8 Std_ReturnType;

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

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

يُستخدم النوع Std_ReturnType كنوع إرجاع موحد لدوال API ويتم استخدامه بشكل مشترك بواسطة RTE ووحدات BSW ([SWS_Std_00005]). وهو متاح عبر ملف الترويسة Std_Types.h ومحدد كـ uint8 ([SWS_Std_00005]).

افتراضياً، يتم تخصيص القيم E_OK (القيمة 0) أو E_NOT_OK (القيمة 1) لـ Std_ReturnType ([SWS_Std_00005]، [SWS_Std_00011]). وإذا لم تكن هاتان القيمتان الافتراضيتان للإرجاع كافيتين، يسمح المعيار بتحديد قيم أخطاء خاصة بالوحدة:

  • نطاق قيم أخطاء المستخدم: يتوفر النطاق من 0x02 إلى 0x3F لرموز الأخطاء المحددة من قبل المستخدم ([SWS_Std_00005]). ويتم هنا استخدام البتات الستة الأقل أهمية ([SWS_Std_00011]).
  • اصطلاح التسمية: عند تسمية قيم الأخطاء الخاصة بالمستخدم، يجب إلزامياً وضع بادئة الوحدة المعنية وفقاً لمتطلبات BSW ([SWS_Std_00011]).
  • حجز RTE: البت 7 والبت 8 محجوزان ويتم تحديدهما بواسطة مواصفة RTE، والتي يتبعها أيضاً التخطيط العام لنوع الإرجاع ([SWS_Std_00011]). تفسير: من المرجح أن يكون هذان هما البتان الأكثر أهمية في تمثيل 8 بت، واللذان يكملان البتات الستة الأقل أهمية لتكوين بايت واحد. سؤال Q-d97256956c510f58 (مفتوح)

آليات معالجة الأخطاء المحددة مثل DET أو DEM وكذلك متطلبات إمكانية إعادة الدخول لم يتم تحديدها في المصادر للنوع الأساسي نفسه، بل تقع على عاتق واجهات برمجة التطبيقات (APIs) المعنية التي تستخدم هذا النوع كقيمة إرجاع.

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

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

نوع Std_TransformerError [SWS_Std_00021] 📄 PDF

typedef uint8 Std_TransformerError;

-

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

يتم توفير نوع البيانات Std_TransformerError وفقاً للمتطلب [SWS_Std_00021] كنوع قياسي عبر ملف الترويسة Std_Types.h لمنصة AUTOSAR Classic. ومن الناحية الهيكلية، يتم تعريف العنصر في المواصفة كبنية (Structure) ويتكون من مكونين: العنصر errorCode بالنوع الأساسي uint8 والعنصر transformerClass بالنوع Std_TransformerClass [SWS_Std_00021].

فيما يتعلق بالاستخدام العملي، لا تحتوي المواصفة على تواقيع دوال محددة أو أوصاف للمعاملات أو قيم إرجاع. ويُستخدم نوع البنية على الأرجح كحاوية بيانات موحدة للنقل المنظم للأخطاء التي تحدث أثناء تحويل البيانات (تفسير). سؤال Q-6e0938f276d60fd3 (مفتوح) ومن المحتمل أن يحمل الحقل errorCode مفتاح الخطأ الرقمي الفعلي، بينما يحدد transformerClass فئة المحول المسببة أو المخصصة (تفسير). سؤال Q-d8806698683ec00e (مفتوح)

لم يتم تحديد آليات معالجة أخطاء معينة مثل رسائل DET أو DEM في [SWS_Std_00021]. كما تغيب عن المادة المصدرية متطلبات التزامن أو إمكانية إعادة الدخول أو الدلالات المتزامنة أو غير المتزامنة. ونظراً لأنه تعريف نوع خالص في Std_Types.h، فإن النوع نفسه لا يخضع لقيود وقت التشغيل؛ وتنشأ هذه القيود حصرياً من السياق الخاص للوحدات المطبقة.

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

نوع Std_MessageType [SWS_Std_91001] 📄 PDF

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

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

يُستخدم النوع القياسي Std_MessageType وفقاً لـ [SWS_Std_91001] لترميز أنواع مختلفة من الرسائل. وفي هذه المواصفة الحالية، يقتصر هذا الترميز على التمييز بين الطلبات (Requests) والاستجابات (Responses) في إطار اتصال العميل/الخادم ([SWS_Std_91001]).

يُشتق نوع البيانات من النوع الأساسي uint8 ويتم توفيره لمكونات البرمجيات ووحدات برمجيات الأساس (BSW) عبر ملف الترويسة Std_Types.h ([SWS_Std_91001]). وقد تم تحديد القيم والثوابت التالية للتعيين والتقييم:

  • STD_MESSAGETYPE_REQUEST (القيمة 0x00): يشير إلى رسالة طلب ([SWS_Std_91001]).
  • STD_MESSAGETYPE_RESPONSE (القيمة 0x01): يشير إلى رسالة استجابة ([SWS_Std_91001]).
  • نطاق القيم من 0x02 إلى 0x3F: هذا النطاق محجوز لأنواع الرسائل المستقبلية ([SWS_Std_91001]).

فيما يتعلق بالتطبيق والشروط العامة، ينبغي للوحدات المنفذة استخدام المعرّفات المحددة فقط. ونظراً لأن القيم من 0x02 إلى 0x3F محجوزة لتوسيعات AUTOSAR المستقبلية، فلا يجوز تخصيصها لأغراض أخرى بشكل عشوائي ([SWS_Std_91001]). ولم يتم تحديد رموز أخطاء معينة، أو قيم إرجاع، أو عمليات غير متزامنة، أو رسائل إلى DET أو DEM لنوع البيانات هذا في المواصفة ([SWS_Std_91001]).

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

نوع Std_MessageResultType [SWS_Std_91002] 📄 PDF

typedef uint8 Std_MessageResultType;

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

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

يُستخدم نوع البيانات الأساسي Std_MessageResultType في منصة AUTOSAR Classic لتشفير أنواع النتائج المختلفة لرسائل الاستجابة (Response Messages) [SWS_Std_00019]. يتم توفير النوع عبر ملف الرأس القياسي Std_Types.h ويتم تعريفه كنوع قياسي (Scalar) استنادًا إلى uint8 [SWS_Std_91002].

الاستخدام ومجال القيم

تتطلب المواصفات استخدام Std_MessageResultType للتعريف الموحد لرسائل الاستجابة [SWS_Std_00019]. حاليًا، يقتصر النطاق الوظيفي المقصود لهذا التشفير على التمييز الأساسي بين الاستجابات الناجحة والخاطئة [SWS_Std_91002]. وقد تم تحديد قيم النتائج الثابتة التالية لهذا الغرض:

  • STD_MESSAGERESULT_OK (القيمة 0x00): يحدد النتيجة المنتظمة والخالية من الأخطاء لرسالة الاستجابة [SWS_Std_91002].
  • STD_MESSAGERESULT_ERROR (القيمة 0x01): يشير إلى نتيجة رسالة استجابة خاطئة (Error Response) [SWS_Std_91002].

القيود والتحسينات المستقبلية

نطاق القيم من 0x02 إلى 0x3F محجوز صراحة لنتائج الرسائل المستقبلية [SWS_Std_91002]. Interpretation: نظرًا لأن المواصفات لا تنص حاليًا على قيم إرجاع صالحة أخرى، فمن المرجح أن يلزم برمجة الوحدات المقيّمة بشكل دفاعي لاعتراض القيم غير المتوقعة أو غير المخصصة بعد في هذا النطاق بأمان [SWS_Std_00019]. سؤال Q-5f652f73800b7d94 (مفتوح)

تم إعداد هذا النص بواسطة ذكاء اصطناعي ويلخص متطلبات مواصفات AUTOSAR للمطورين.

نوع Std_ExtractProtocolHeaderFieldsType [SWS_Std_91003] 📄 PDF

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

نوع E_OK / E_NOT_OK [SWS_Std_00006] 📄 PDF

#define E_OK 0x00u #define E_NOT_OK 0x01u

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

نوع STD_HIGH / STD_LOW [SWS_Std_00007] 📄 PDF

#define STD_HIGH 0x01u #define STD_LOW 0x00u

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

نوع STD_ACTIVE / STD_IDLE [SWS_Std_00013] 📄 PDF

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

نوع STD_ON / STD_OFF [SWS_Std_00010] 📄 PDF

#define STD_ON 0x01u #define STD_OFF 0x00u

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

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

Record
AUTOSAR/AP/record/CP_MOD_Std
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Std@rel:R20-11#be31e09c
Content hash
be31e09c
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_StandardTypes.pdf#nameddest=SWS_Std_00005

الأنواع

Because E_ OK is already defined within OSEK, the symbol E_ OK has to be shared. To avoid name clashes and redefinition problems, the symbols have to be defined in the following way (approved within implementation): #ifndef STATUSTYPEDEFINED #define STATUSTYPEDEFINED #define E_ OK 0x00u typedef unsigned char Status Type; /* OSEK compliance */ #endif #define E_ NOT_ OK 0x01u

#define E_OK 0x00u #define E_NOT_OK 0x01u

The symbols STD_ ACTIVE and STD_ IDLE shall be defined as follows: #define STD_ ACTIVE 0x01u /* Logical state active */ #define STD_ IDLE 0x00u /* Logical state idle */

#define STD_ACTIVE 0x01u #define STD_IDLE 0x00u

Type for the function pointer to extract the relevant protocol header fields of the message and the type of the message result of a transformer. - At the time being, this is limited to the types used for C/ S communication (i.e., REQUE ST and RESPONSE and OK and ERROR).

typedef Std_ReturnType (* Std_ExtractProtocolHeaderFieldsType)(const uint8* buffer, uint32 bufferLength, Std_MessageTypeType* messageType, Std_MessageResultType* messageResult);

The symbols STD_ HIGH and STD_ LOW shall be defined as follows: #define STD_ HIGH 0x01u /* Physical state 5V or 3.3V */ #define STD_ LOW 0x00u /* Physical state 0V */

#define STD_HIGH 0x01u #define STD_LOW 0x00u

This type is used to encode different types of results for response messages. - Currently this encoding is limited to the distinction between OK and ERROR responses.

This type is used to encode the different type of messages. - Currently this encoding is limited to the distinction between requests and responses in C/ S c ommunication.

The symbols STD_ ON and STD_ OFF shall be defined as follows: #define STD_ ON 0x01u #define STD_ OFF 0x00u

#define STD_ON 0x01u #define STD_OFF 0x00u

This type can be used as standard API return type which is shared between the RTE and the BSW modules. It shall be defined as follows: typedef uint8 Std_ Return Type;

- Tags: atp.Status=draft

- Tags: atp.Status=draft

This type shall be used to request the version of a BSW module using the _ Get Version Info() function.

typedef struct { uint16 vendorID; uint16 moduleID; uint8 sw_major_version; uint8 sw_minor_version; uint8 sw_patch_version; } Std_VersionInfoType;