ينسق إشعارات Suspend-to-RAM للتطبيقات التابعة (Satellites) ويبدأ حالة السكون لنظام التشغيل.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: c63fb68c31f7المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
ينسق إشعارات Suspend-to-RAM للتطبيقات التابعة (Satellites) ويبدأ حالة السكون لنظام التشغيل.
يتم إنشاء كائن من ara::sm::s2r::S2RHub بشكل صريح عبر ara::core::InstanceSpecifier ([SWS_SM_81103]). وأثناء الإنشاء، يتم إجراء فحص إلزامي لأذونات IAM، حيث يتم التحقق من صحة سياق العملية المستدعية مقابل تخطيط النموذج (SuspendToRamHubMapping.process) ([SWS_SM_00706]، [SWS_SM_00714]). عمليات النسخ محظورة تمامًا لهذه الفئة ([SWS_SM_81107]، [SWS_SM_81109]). ومع ذلك، تدعم الفئة دلالات النقل عبر منشئ النقل وعامل تعيين النقل ([SWS_SM_81106]، [SWS_SM_81108]).
فيما يتعلق بالتزامن، تم تحديد المنشئ ذي المعاملات وعمليات النقل على أنها آمنة لخيارات المعالجة المتعددة (Thread-safe) ([SWS_SM_81103]، [SWS_SM_81106]، [SWS_SM_81108]). في المقابل، فإن المدمر الافتراضي ~S2RHub() وكذلك الدوال التشغيلية لتنسيق التعليق ليست آمنة لخيارات المعالجة المتعددة ([SWS_SM_81105]، [SWS_SM_81110]، [SWS_SM_81111]، [SWS_SM_81112]). لذلك، يجب على المستدعين التأكد من أن التدمير وتنفيذ الانتقالات يتمان بالتتابع ودون استدعاءات متزامنة متنافسة.
مسار الاستخدام
ينقسم المسار المنتظم لبدء وإنهاء Suspend-to-RAM إلى ثلاث مراحل متتالية:
إعداد حالة التعليق: قبل تعليق نظام التشغيل، يجب إيقاف تشغيل مجموعات الوظائف التي تحتوي على عمليات غير داعمة (AUTOSAR_AP_SWS_StateManagement §7.5). بعد ذلك، يستدعي تطبيق التحكم RequestToEnterSuspendMode() في المركز ([SWS_SM_81110]). يُخطر المركز جميع Satellites المسجلة عبر Offer عن طريق EnterSuspendMode ([SWS_SM_00701]، [SWS_SM_00710]، [SWS_SM_00711]). تُرجع الدالة ara::core::Future<void>، الذي لا يكتمل إلا بعد استجابة جميع Satellites المخاطبة، أو إلغاء تسجيلها، أو بلوغها مهلة الانتظار ([SWS_SM_00702]، [SWS_SM_81110]).
إطلاق تعليق النظام: بعد تلقي رد إيجابي من جميع Satellites، يُحفز المستدعي نظام التشغيل عبر الدالة المتزامنة EnterSuspendToRamOs() لوضع الآلة في وضع Suspend-to-RAM ([SWS_SM_81112]).
الاستئناف بعد الاستيقاظ: بمجرد استيقاظ نظام التشغيل مجددًا، يبدأ تطبيق التحكم استئناف التشغيل المنتظم عبر RequestToLeaveSuspendMode() ([SWS_SM_81111]). يطلب المركز من جميع Satellites النشطة عبر دالة رد النداء الخاصة بها مغادرة وضع التعليق ([SWS_SM_00703]، [SWS_SM_00711]). يتم حل الـ Future المُرجع بنجاح عندما تؤكد جميع Satellites إيجابيًا أو تلغي تسجيلها عبر StopOffer ([SWS_SM_00707]، [SWS_SM_81111]).
يتم الإشارة إلى شروط الخطأ في S2RHub، اعتمادًا على المرحلة، عبر انتهاكات البنية المعمارية (Violations) أو عبر رموز الخطأ في ara::core::Future:
أخطاء البناء والانتهاكات: إذا فشل فحص الأذونات للعملية المستدعية، يتم إطلاق الانتهاك InsufficientPermissionsViolation بالإضافة إلى الحدث الأمني SEV_ACCESS_CONTROL_SM_IAM_ACCESS_DENIED ([SWS_SM_00706]، [SWS_SM_81103]). تشمل الانتهاكات المحددة الأخرى InstanceSpecifierMappingIntegrityViolation (عدم صلاحية معرف النموذج)، وPortInterfaceMappingViolation (نوع واجهة غير متوافق)، وProcessMappingViolation (غياب تخصيص العملية)، وInstanceSpecifierAlreadyInUseViolation (الاستخدام المتعدد في نفس العملية)، وAraNotInitializedViolation (عدم تهيئة Adaptive Platform) ([SWS_SM_81103]).
أخطاء عند الدخول في حالة التعليق: إذا فشل الاتصال في الطبقات السفلية، يفشل الـ Future لـ RequestToEnterSuspendMode() بـ SmErrc::kCommunicationFailed ([SWS_SM_81110]). وإذا لم يستجب تطبيق Satellite واحد على الأقل خلال النافذة الزمنية القابلة للتهيئة (افتراضيًا: 1000 مللي ثانية)، ينتج عن ذلك SmErrc::kCommunicationTimeout ([SWS_SM_81110]). يمتلك كلا الخطأين دلالات التراجع (Rollback). وإذا أبلغ تطبيق Satellite واحد على الأقل عن رفض الانتقال، يُرجع الـ Future الخطأ SmErrc::kAtLeastOneRejected بدون دلالات التراجع ([SWS_SM_81110]).
أخطاء عند مغادرة حالة التعليق: على نحو مماثل، تؤدي مشاكل الاتصال أو مهلات الانتظار عند RequestToLeaveSuspendMode() إلى SmErrc::kCommunicationFailed أو SmErrc::kCommunicationTimeout ([SWS_SM_00707]، [SWS_SM_81111]). وإذا استجاب Satellite بـ kRejected، يبلغ الـ Future عن رمز الخطأ SmErrc::kAtLeastOneHadIssuesToLeave ([SWS_SM_00707]، [SWS_SM_81111]).
رفض تسجيل Satellites: يرفض المركز محاولات تسجيل Satellites إذا كان سياق عمليتها لا يتطابق مع تكوين النموذج ([SWS_SM_00715]).
يستند هذا الدليل إلى مواصفات AUTOSAR Adaptive Platform الإصدار R25-11 ويلخص المتطلبات المفروضة على الفئة S2RHub.
تمتلك الطريقة التوقيع void EnterSuspendToRamOs() noexcept;، ولا تقبل أي معلمات ولا تُرجع أي قيمة ([SWS_SM_81112]). وعادةً لا يتم استدعاؤها مباشرةً بواسطة تطبيقات المستخدم، بل تُنفذ بواسطة State Management بمجرد إطلاق عنصر إجراء مطابق EnterSuspendToRamOs داخل ActionList ([SWS_SM_00692]). والشرط المسبق لذلك هو وجود مثيل تم إنشاؤه مسبقًا لـ ara::sm::s2r::S2RHub ([SWS_SM_00690]).
فيما يتعلق بالتزامن والشروط الحدية، ينطبق ما يلي:
الأمان الخيطي: تم تصنيف الدالة صراحةً على أنها ليست آمنة خيطيًا (not-threadsafe) ([SWS_SM_81112]). يجب تجنب الاستدعاءات المتزامنة على المثيل نفسه.
معالجة الأخطاء: تم تحديد العملية كـ noexcept وexception safe ([SWS_SM_81112])؛ ولا يتم إرجاع رموز خطأ أو إطلاق استثناءات.
Function to Request all S2R Satellite to enter suspend state.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 90177316c9e3المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تطلب الدالة RequestToEnterSuspendMode للفئة ara::sm::s2r::S2RHub من جميع التوابع المسجلة بنشاط الانتقال إلى وضع التعليق [SWS_SM_81110]. في State Management، يتم تشغيل التنفيذ عادةً بواسطة EnterSuspendToRam ActionListItem، حيث يتم تمرير التكوين maxActionItemDuration كقيمة للمعلمة timeout[SWS_SM_00689].
الاستخدام والدلالة: بعد الاستدعاء، يرسل الموزع رسالة إلى جميع مثيلات S2R Satellite المسجلة، مما يؤدي إلى تشغيل رد الاتصال ara::sm::s2r::S2RSatellite::EnterSuspendMode الخاص بها [SWS_SM_00701]. تقبل الدالة المعلمة ذات القيمة الصحيحة timeout بالمللي ثانية (القيمة الافتراضية: 1000 مللي ثانية) وتُرجع ara::core::Future<void>[SWS_SM_81110]. تعود العملية بمجرد أن تستجيب جميع التوابع المُعنوَنة، أو يتم إلغاء تسجيلها، أو حدوث مهلة زمنية [SWS_SM_00702]. يُعد إلغاء التسجيل عبر StopOffer استجابة ناجحة [SWS_SM_00702].
معالجة الأخطاء: تكون النتيجة الإجمالية إيجابية إذا وافقت جميع التوابع أو ألغت تسجيلها [SWS_SM_00702]. إذا فشل الاتصال في الطبقات الدنيا، يُرجع الخطأ SmErrc::kCommunicationFailed مع دلالات التراجع (Rollback) [SWS_SM_00702][SWS_SM_81110]. وإذا لم يستجب تابع واحد على الأقل في الوقت المناسب، ينتج عن ذلك الخطأ SmErrc::kCommunicationTimeout مع دلالات التراجع [SWS_SM_00702][SWS_SM_81110]. إذا استجاب تابع بـ kRejected، تُرجع الدالة SmErrc::kAtLeastOneRejected بدون دلالات التراجع [SWS_SM_00702][SWS_SM_81110].
التزامن: تم التصريح عن الطريقة كـ noexcept وهي آمنة من حيث الاستثناءات (exception safe)، ولكنها ليست آمنة خيطيًا (not-threadsafe) [SWS_SM_81110].
تم إنشاء إشعار الاستخدام هذا آليًا بناءً على مواصفة AUTOSAR R25-11.
ara::core::Future< void > RequestToLeaveSuspendMode (int timeout=1000) noexcept; DIRECTION NOT timeout -- DEFINED
Function to request all registered S2R Satellite to leave suspend state.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 374258ce3ad7المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تنسق الطريقة RequestToLeaveSuspendMode للفئة ara::sm::s2r::S2RHub استيقاظ التطبيقات بعد حالة Suspend-to-RAM. وفقًا لـ [SWS_SM_00703]، ترسل الدالة رسالة إلى جميع مثيلات S2R Satellite المسجلة بنشاط لاستدعاء LeaveSuspendMode هناك. في State Management، يتم تنفيذ الاستدعاء تلقائيًا عند إطلاق ActionListItem LeaveSuspendToRam ([SWS_SM_00691]).
تحدد المعلمة timeout (القيمة الافتراضية 1000) مدة المراقبة لاستجابات التوابع ([SWS_SM_81111]). تُرجع الدالة ara::core::Future<void>، والذي يكون متاحًا بمجرد أن تستجيب جميع التوابع المُعنوَنة، أو يتم إلغاء تسجيلها، أو تنتهي مهلتها الزمنية ([SWS_SM_00707]). تُعتبر النتيجة الإجمالية ناجحة إذا أكدت جميع التوابع إيجابيًا أو ألغت تسجيلها بصورة نظامية عبر StopOffer.
معالجة الأخطاء
في حال حدوث خطأ أثناء التنفيذ، يوفر الكائن المستقبلي (Future) رموز الخطأ المقابلة من SmErrc ([SWS_SM_81111]):
SmErrc::kCommunicationTimeout: لم يستجب تابع واحد على الأقل في الوقت المناسب ضمن المهلة المحددة ([SWS_SM_00707]).
SmErrc::kCommunicationFailed: حدث خطأ إرسال داخلي في طبقات الاتصال الدنيا ([SWS_SM_00707]).
SmErrc::kAtLeastOneHadIssuesToLeave: استجاب تابع واحد على الأقل للطلب بشكل سلبي باستخدام kRejected ([SWS_SM_00707]).
التزامن والقيود
تم تحديد الواجهة على أنها noexcept (exception safe)، ولكن تم تصنيفها كـ not-threadsafe ([SWS_SM_81111]). وفقًا لقيد التصميم [SWS_SM_CONSTR_00035]، لا يجوز تعيين ActionListItem LeaveSuspendToRam المشغِّل لأي حالات تعليق، بل هو مخصص حصريًا لحالات وحدة التحكم التي تتحكم في إنهاء وضع Suspend-to-RAM (SWS StateManagement §7.7 «ActionListItem»).
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR R25-11.
InsufficientPer- Sent in case the caller had insufficient permissions for the missionsViolation requested operation. 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- The type of mapping does not match the expected type of Port pingViolation Interface: {portInterfaceTypeName} referenced by a {mappingType Name}. 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. AraNotInitialized- Violation message that is sent in case a constructor or function Violation checks for an initialized ara and identifies that ara is not initialized.
Parameter (in)
Parameter
Beschreibung
instance
instance specifier to the PPortPrototype of a SM...
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني