يمكّن هياكل الخدمة من إرسال إشارات المشغّل ومراقبة حالة المشتركين.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 6e97d3082affالمصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يمكّن هياكل الخدمة من إرسال إشارات المشغّل ومراقبة حالة المشتركين.
يتيح الصنف <SI-Namespace>::skeleton::triggers::<Trigger> لتطبيق الخادم إرسال إشارات المشغّل إلى العملاء المشتركين عبر إدارة الاتصالات (Communication Management) ([SWS_CM_00721]). وللتحكم في مسار التنفيذ، يمكن مراقبة حالة المشتركين وتسجيل معالِجات الإشعارات ([SWS_CM_01109]، [SWS_CM_01110]). ويتطلب الإطلاق عبر Send() هيكل خدمة معروضًا للتقديم، كما يؤكد انتهاكات الفواصل الزمنية الدنيا للإرسال أو أخطاء الشبكة باستخدام رموز خطأ مقابلة ([SWS_CM_00721]، [SWS_CM_10517]).
السياق
يمثل الصنف القالبي <SI-Namespace>::skeleton::triggers::<Trigger> الواجهة البينية من جانب الخادم لمشغّل محدد داخل ServiceInterface في الدور trigger. وبصفته جزءًا من هيكل الخدمة (Skeleton)، يعمل هذا الصنف لمثيل الخدمة على إرسال إشعارات غير متزامنة أو إشارات إطلاق إلى تطبيقات العملاء المشتركة في النظام ككل. ويختلف المشغّل عن الأحداث العادية في أنه يعمل في المقام الأول كواقعة إرسال إشارات بحتة دون بيانات حمولة معقدة، كما يوضح التصنيف في EXP_ARAComAPI §3 «Trigger::Send» وSWS_CommunicationManagement §7.2.2.1.4 «Handling Triggers». ويشمل أطراف التفاعل تطبيق الخادم المزوّد، والبرمجية الوسيطة Communication Management (ara::com)، بالإضافة إلى عملاء المشتركين المتصلين عبر الشبكة.
دورة الحياة
يتم إنشاء مثيل كائنات المشغّل عادةً كجزء لا يتجزأ من مثيل هيكل ServiceInterface المعني. وقبل الاستخدام الفعلي، يجب تقديم الهيكل عبر إدارة الاتصالات؛ وإذا جرت محاولة لإطلاق مشغّل قبل ذلك، تفشل عملية الإرسال ([SWS_CM_00721]). ويدير الصنف حالة اشتراك المشتركين عبر ara::com::SubscriptionState، والتي يمكن الاستعلام عنها في أي وقت باستخدام GetSubscriptionState() ([SWS_CM_01109]). ولمراقبة الحالة غير المتزامنة، يمكن تسجيل استدعاء راجع (Callback) بواسطة SetSubscriptionStateChangeHandler() ([SWS_CM_01110]). وبالنسبة للبنى التفرعية المتزامنة، يوجد تحميل زائد يقبل منفّذًا مخصصًا من قِبل المستخدم، بحيث يتم تنفيذ الإشعارات في سياق الخيط أو المهمة المطلوب ([SWS_CM_01111]). ويمكن إلغاء التسجيل عبر UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]). وتوفر جميع دوال الصنف ضمان الاستثناء noexcept (آمنة من الاستثناءات).
مسار الاستخدام
يتضمن المسار النموذجي لاستخدام المشغّل مراقبة حالة الاشتراك بالإضافة إلى الإطلاق الفعلي للإرسال إلى جميع المشتركين النشطين:
تسجيل المعالِج: يسجل تطبيق الخدمة اختياريًا معالِج حالة عبر SetSubscriptionStateChangeHandler() ([SWS_CM_01110]، [SWS_CM_01111]) ليتم إعلامه بالمشتركين الجدد المنضمين.
فحص الحالة: باستخدام GetSubscriptionState()، يتحقق الخادم مما إذا كان هناك مشترك نشط واحد على الأقل ([SWS_CM_01109])، وهو ما يشكل وفقًا لـ [SWS_CM_10518] المتطلب الأساسي لطلب الإرسال.
إلغاء التسجيل: عند إيقاف التشغيل أو عندما لا تعود هناك رغبة في تلقي إشعارات الحالة، يتم استدعاء UnsetSubscriptionStateChangeHandler() ([SWS_CM_01112]).
ترجع الدالة Send() القيمة ara::core::Result<void>، والتي تُنقل من خلالها أخطاء الإرسال والتكوين المحتملة ([SWS_CM_00721]):
ComErrc::kServiceNotOffered: تحدث إذا لم يكن مثيل الخدمة قد تم تقديمه بعد عبر OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: يتم إرجاعها في حال عدم استيفاء الحد الأدنى للفاصل الزمني للإرسال المكوَّن (minimumSendInterval) بين عمليات الإرسال المتتالية ([SWS_CM_00721]).
ComErrc::kCommunicationFailure: يتم الإبلاغ عنها إذا فشل إرسال المشغّل محليًا بسبب خطأ أساسي في الشبكة ([SWS_CM_10517]).
معالِج غير صالح (InvalidHandlerViolation): يمثل تمرير استدعاء دالة غير موجود أو فارغ (Callable) إلى SetSubscriptionStateChangeHandler() انتهاكًا لشروط عقد واجهة برمجة التطبيقات (API) ([SWS_CM_01110]، [SWS_CM_01111]).
يستند هذا الدليل حصرًا إلى مواصفات AUTOSAR Adaptive Platform الإصدار R25-11.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a3259c7728c6المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
ترسل الطريقة Send إطلاقاً بدون بيانات حمولة إلى جميع التطبيقات المشتركة ([SWS_CM_00721]). وهي تنتمي إلى فئة الهيكل <SI-Namespace>::skeleton::triggers::<Trigger> وتتوفر عبر ملف الترويسة #include "<SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h" ([SWS_CM_00721]).
تم تعريف الدالة على أنها noexcept، وتعتبر آمنة من الاستثناءات ولا تتوقع أي معاملات تمرير ([SWS_CM_00721]). يُستخدم ara::core::Result<void> كنوع إرجاع ([SWS_CM_00721]):
حالة النجاح: تحتوي النتيجة على قيمة فارغة (void) وتشير إلى إطلاق النقل بنجاح ([SWS_CM_00721]).
حالة الخطأ: تغلف النتيجة رمز خطأ من المجال ara::com::ComErrc ([SWS_CM_10432]). الأخطاء المحتملة ذات دلالات التراجع هي:
ComErrc::kServiceNotOffered: لم يتم تقديم الخدمة مسبقًا باستخدام OfferService() ([SWS_CM_00721]).
ComErrc::kMinimumSendIntervalViolationError: تم تقديم طلب نقل قبل انتهاء الحد الأدنى لفاصل الإرسال الزمني المكوَّن ServiceInterfaceDeploymentElement.minimumSendInterval ([SWS_CM_00721]).
• If successful: an ara::core::Result containing a ara:: core::Result::value_type containing a void • If unsuccessful: an ara::core::Result containing an ara:: core::Result::error_type i.e. a corresponding ara:: com::ComErrc
Fehler
Fehlercode
Beschreibung
ComErrc::kServiceNotOffered
rollback_semantics Service has not yet been offered via OfferService()
ComErrc::kMinimumSendIntervalViolationError
rollback_semantics Minimum Send Interval violation, because a transmission request for a service instance element (event, field or method call) was issued faster than allowed, i.e., the configured minimum send interval ServiceInterfaceDeploymentElement. minimumSendInterval for the service instance element has not yet expired.
Request a governed re-review of this record. The record is not changed immediately.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d968f8357edfالمصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الدالة SetSubscriptionStateChangeHandler في جانب الهيكل لتسجيل دالة رد نداء لمراقبة تغييرات الاشتراك في مشغل [SWS_CM_01110]. وتنتمي الدالة إلى مساحة الأسماء <SI-Namespace>::skeleton::triggers::<Trigger> وتتوفر عبر ملف الرأس <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h[SWS_CM_01110].
يتم تمرير كائن دالة قابل للاستدعاء من النوع SubscriptionStateChangeHandler كمعلمة [SWS_CM_00311][SWS_CM_01110]. وقد تم التصريح عن الاستدعاء كـ noexcept، ولا يُرجع أي قيمة، ومحدد بأنه آمن من الاستثناءات (exception safe) [SWS_CM_01110]. وإذا كان معالج الـ Callable الممرر غير موجود أو فارغًا (null)، يُبلغ النظام عن InvalidHandlerViolation[SWS_CM_01110].
تستدعي Communication Management دالة رد النداء المسجلة بمجرد أن تتغير حالة الاشتراك للمشغل [SWS_CM_01101]:
مع قيمة الحالة kSubscribed، بمجرد أن يصبح عدد الاشتراكات النشطة لهذا المشغل أكبر من 0 [SWS_CM_01102]،
مع قيمة الحالة kNotSubscribed في جانب الهيكل، عندما لا تعود هناك أي اشتراكات نشطة [SWS_CM_01103].
يُسمح بإعادة كتابة المعالج المسجل أثناء وقت التشغيل [SWS_CM_01101]. وإذا كان ينبغي تنفيذ المعالج في سياق تنفيذ محدد، يتوفر بديلًا عن ذلك متغير القالب المحمل بحمل زائد مع معلمة ExecutorT&&[SWS_CM_01111].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R25-11.
class <SI-Namespace>::skeleton:: triggers::<Trigger>
Exception-Sicherheit
exception safe
Verletzungen (Violations)
InvalidHandlerVio- Provided Callable handler does not exist or is null lation
Parameter (in)
Parameter
Beschreibung
handler
The handler (as per [SWS_CM_00311]) that shall be called by Communication Management as soon as the ara::com:: SubscriptionState of the trigger has changed.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
As per [SWS_CM_12008] but the method shall execute in a provided context
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f69a35ebe8e5المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تسجل دالة القالب SetSubscriptionStateChangeHandler على مستوى الهيكل العظمي للمشغلات ([SWS_CM_01111]) معالج رد نداء لتغيرات حالة الاشتراك (ara::com::SubscriptionState). بالإضافة إلى المعلمة القابلة للاستدعاء handler، تقبل الطريقة سياق تنفيذ executor من النوع ExecutorT ([SWS_CM_01111]). الدالة لا تمتلك قيمة إرجاع وهي معرّفة في النطاق <SI-Namespace>::skeleton::triggers::<Trigger> ([SWS_CM_01111]).
على عكس الدالة الأساسية الخالية من المنفّذ ([SWS_CM_01110])، تضمن بصمة الدالة هذه تنفيذ رد النداء في سياق مخصص للمستخدم ([SWS_CM_01111]). وكما هو الحال في المتغير المعتمد على الأحداث وفقًا لـ [SWS_CM_12008]، يُفترض أن يتم تفويض التنفيذ إلى كائن المنفّذ الممرر للتحكم الموجه في الخيوط داخل تطبيق الهيكل العظمي. سؤال Q-ba14993b00a7d972 (مفتوح)
تم تحديد الواجهة على أنها noexcept وآمنة من الاستثناءات ([SWS_CM_01111]). إذا كان الكائن القابل للاستدعاء الممرر غير صالح أو فارغًا، فإن هناك InvalidHandlerViolation وفقًا للمواصفات ([SWS_CM_01111]).
من الناحية الوظيفية، تطابق الطريقة عمليات التحميل الزائد للمنفّذ المماثلة لأحداث الهيكل العظمي ([SWS_CM_12009]) وكذلك النظائر من جهة العميل لواجهة الوكيل ([SWS_CM_01106]، [SWS_CM_11354]).
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى بيانات المواصفات من AUTOSAR Adaptive R25-11.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d6281d4aa1edالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الدالة UnsetSubscriptionStateChangeHandler على جانب الهيكل الأساسي (Skeleton) لإزالة دالة رد نداء مسجلة مسبقاً لتغييرات حالة الاشتراك (SubscriptionState) في مُطلِق خدمة ([SWS_CM_01112]). وهي معرفة في مساحة الأسماء <SI-Namespace>::skeleton::triggers::<Trigger> عبر الترويسة <SiNamespaceDerivedDirectoryPath>/<SiShortname>_skeleton.h ([SWS_CM_01112]).
الاستخدام والدلالة: تمتلك الواجهة البنية التوقيعية void UnsetSubscriptionStateChangeHandler() noexcept، ولا تتوقع أي معاملات تمرير، وليس لها قيمة إرجاع ([SWS_CM_01112]). وفقاً للمواصفة، تم تصنيفها على أنها آمنة ضد الاستثناءات (exception safe) ([SWS_CM_01112]). لم يتم النص على رموز خطأ أو آليات إبلاغ محددة (DET/DEM) لهذا الاستدعاء.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني