يتيح مراقبة دورات تشغيل التشخيص بالإضافة إلى إطلاق إعادة تشغيل الدورة عبر المنافذ المنمذجة.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 3e8e62c1c567المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يتيح مراقبة دورات تشغيل التشخيص بالإضافة إلى إطلاق إعادة تشغيل الدورة عبر المنافذ المنمذجة.
توفر الفئة ara::diag::OperationCycle للتطبيق وظائف للتحكم في دورات تشغيل التشخيص ومراقبتها [SWS_DM_00752]. ترتبط المثيلات بمنفذ منمذج عبر ara::core::InstanceSpecifier، وهي غير قابلة للنسخ أو النقل، ويُسمح بوجودها مرة واحدة فقط لكل معرف في العملية. عبر SetNotifier، يمكن إيداع إشعار لتغييرات الدورة وبواسطة RestartOperationCycle يمكن إطلاق إعادة تشغيل لدورة التشغيل [SWS_DM_01102]. باستثناء المنشئ الآمن لخيوط المعالجة، فإن جميع الطرق بالإضافة إلى المدمر ليست آمنة لخيوط المعالجة وتتطلب مزامنة من جانب التطبيق في حالة الوصول المتوازي.
السياق
تحقق الفئة ara::diag::OperationCycleDiagnosticOperationCycleInterface ضمن تشخيص AUTOSAR Adaptive وتوفر وظائف للتعامل مع دورات التشغيل والتحكم فيها. وهي تعمل كواجهة بين التطبيق التكيفي وإدارة التشخيص لمراقبة حالات دورات التشغيل أو إعادة تعيينها بصورة مستهدفة.
يتم الربط بالنظام الكلي عبر ara::core::InstanceSpecifier، والذي يتم تمريره عند استدعاء المنشئ [SWS_DM_00752]. يشير هذا المعرف إلى PortPrototype محدد في النموذج. يفرض النموذج هنا تعيينًا فريدًا: يجب أن يكون PortPrototype المشار إليه بواسطة DiagnosticOperationCyclePortMapping محدد النوع بواسطة DiagnosticOperationCycleInterface[SWS_DM_00752]. إلى جانب التحكم، تتفاعل الفئة عبر واجهة رد نداء من النوع ara::diag::OperationCycle::OperationCycleSetNotifier (محددة كـ std::function<void(void)>)، والتي يتم من خلالها إرسال الإشعارات عند تغيير دورة التشغيل إلى التطبيق [SWS_DM_02078]، [SWS_DM_00755].
دورة الحياة
يتم إنشاء ara::diag::OperationCycle صراحةً عن طريق تحديد مواصفات مثيل المنفذ عبر المنشئ OperationCycle(const ara::core::InstanceSpecifier &specifier)[SWS_DM_00752]. تم تحديد المنشئ على أنه آمن ضد الاستثناءات (exception safe) وآمن لخيوط المعالجة (thread-safe) [SWS_DM_00752].
فيما يتعلق بدلالات الملكية والنسخ، تم تصميم الفئة ككائن فردي صارم يمثل ارتباطًا ثابتًا بنسبة 1:1 بالمنفذ المنمذج. النسخ والنقل محظوران تمامًا:
بالإضافة إلى ذلك، يحظر إطار العمل التخصيص المتعدد: لا يجوز استخدام InstanceSpecifier بشكل متكرر لإنشاء مثيل داخل نفس العملية [SWS_DM_00752]. يتم التحرير في المدمر ~OperationCycle()[SWS_DM_00753]. على عكس المنشئ، فإن المدمر ليس آمنًا لخيوط المعالجة (not thread-safe)، على الرغم من الإعلان عنه على أنه آمن ضد الاستثناءات [SWS_DM_00753]. الطرق الأخرى للفئة بالإضافة إلى نوع رد النداء ليست آمنة لخيوط المعالجة أيضًا [SWS_DM_00755]، [SWS_DM_01102]، [SWS_DM_02078]، بحيث يجب مزامنة عمليات الوصول المتوازية إلى نفس المثيل من جانب التطبيق.
مسار الاستخدام
يتضمن مسار الاستخدام النموذجي إنشاء المثيل، والتسجيل الاختياري لمعالج لتغييرات الدورة، والتشغيل المتكرر لإعادة تشغيل الدورة، بالإضافة إلى التحرير:
إنشاء المثيل: ينشئ التطبيق الكائن OperationCycle مع تمرير InstanceSpecifier المقابل [SWS_DM_00752].
تسجيل المُخطر: عبر الطريقة SetNotifier، يودع التطبيق دالة رد نداء من النوع OperationCycleSetNotifier[SWS_DM_00755]، [SWS_DM_02078]. يتم استدعاء هذه الدالة عند تغير دورة التشغيل. يؤدي الاستدعاء المتتالي لـ SetNotifier إلى استبدال المُخطر المسجل مسبقًا بالكامل [SWS_DM_00755].
إعادة تشغيل دورة التشغيل: بواسطة RestartOperationCycle()، يطلق التطبيق إعادة تشغيل دورة التشغيل [SWS_DM_01102]. تقوم إدارة التشخيص بتحديث الدورة وإخطار رد النداء المودع عند تغييرات الحالة [SWS_DM_00755]. من المرجح أن يتم الإشعار هنا بشكل غير متزامن في سياق إدارة التشخيص. سؤال Q-7cd22debf6fa91d7 (مفتوح)
الإتلاف: عند إيقاف تشغيل مكون البرنامج، يتم إتلاف الكائن عبر المدمر [SWS_DM_00753].
يتم الإشارة إلى الأخطاء أثناء التهيئة بواسطة إطار العمل كانتهاكات (Violations)، نظرًا لأن المنشئ معلن كـ noexcept[SWS_DM_00752]:
InstanceSpecifierMappingIntegrityViolation: يتعذر حل InstanceSpecifier في سياق الملف التنفيذي أو يشير إلى عنصر ليس PortPrototype[SWS_DM_00752].
PortInterfaceMappingViolation: PortPrototype المشار إليه بواسطة DiagnosticOperationCyclePortMapping ليس محدد النوع بواسطة DiagnosticOperationCycleInterface[SWS_DM_00752].
ProcessMappingViolation: على الرغم من وجود مرجع مثيل مناسب، لم يتم العثور على عملية منمذجة مناسبة لعملية وقت التشغيل [SWS_DM_00752].
InstanceSpecifierAlreadyInUseViolation: تم استدعاء المنشئ باستخدام InstanceSpecifier مستخدم بالفعل داخل العملية الحالية [SWS_DM_00752].
في التشغيل العادي، تُرجع الطريقتان SetNotifier وRestartOperationCycle قيمة ara::core::Result<void>[SWS_DM_00755]، [SWS_DM_01102]. لم يتم تحديد رموز خطأ معينة في المعيار لكلا الدالتين («This function does not specify any standardized errors.») [SWS_DM_00755]، [SWS_DM_01102]. من المرجح أن يخدم استخدام النوع Result في المقام الأول تصميم الواجهة الموحد ويوفر مجالاً لحالات الخطأ الخاصة بالتنفيذ. سؤال Q-2c59a287c0d5783a (مفتوح)
تم إنشاء هذا الدليل بواسطة نظام ذكاء اصطناعي بناءً على مواصفات AUTOSAR Adaptive R25-11.
Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
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- A PortPrototype that is referenced by a pingViolation DiagnosticOperationCyclePortMapping needs to be typed by a DiagnosticOperationCycleInterface. 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.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticOperationCycleInterface.
Request a governed re-review of this record. The record is not changed immediately.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 3cc8bab8ea58المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم دالة العنصر RestartOperationCycle للفئة ara::diag::OperationCycle (المقدمة عبر #include "ara/diag/operation_cycle.h") لإخطار Diagnostic Management (DM) بإعادة تشغيل دورة التشغيل [SWS_DM_01102]. وتتم إدارة دورات التشغيل، مثل دورات الإشعال («Ignition on/off»)، أو دورات الجهد («Power up/power down»)، أو أوقات التشغيل المتراكمة، بواسطة التطبيق التكيفي وتؤثر بشكل مباشر على بايت حالة UDS-DTC بالإضافة إلى سلوك ذاكرة الأحداث وفقًا للمعيار ISO 14229-1 SWS Diagnostics §7.3.4.3 «Operation Cycles Management».
الاستدعاء والدلالات
يتم استدعاء الدالة بدون معلمات وتُرجع ara::core::Result<void>[SWS_DM_01102]. وإذا لم يكن DM جاهزًا في وقت الاستدعاء لمعالجة رسالة إعادة التشغيل، فلن تُفقد هذه المعلومة: إذ يقوم DM بتخزين الحدث مؤقتًا (Caching) ويُقيّم إعادة تشغيل الدورة بمجرد استعادة الاتصال [SWS_DM_01103].
معالجة الأخطاء والتزامن
لم يتم تحديد رموز أخطاء قياسية لـ RestartOperationCycle[SWS_DM_01102]. وقد حُددت الدالة على أنها آمنة من الاستثناءات (exception safe) ولا تُطلق استثناءات C++ (noexcept) [SWS_DM_01102]. ومع ذلك، نظرًا لأن الواجهة مصنفة صراحةً على أنها غير آمنة لخيوط المعالجة (not thread-safe) [SWS_DM_01102]، فمن المرجح أن يلزم مزامنة عمليات الوصول المتزامنة إلى نفس المثيل بواسطة التطبيق المستدعي. سؤال Q-b3b258a20fd9db22 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه آليًا استنادًا إلى مواصفة AUTOSAR R25-11.
Registering a notifier function which is called if the operation cycle is changed. A consecutive call of this method will overwrite the previous registered notifier.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 4ba4d539945dالمصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الطريقة ara::diag::OperationCycle::SetNotifier ([SWS_DM_00755]) لتسجيل دالة رد نداء من جانب التطبيق من النوع OperationCycleSetNotifier. وتستدعي وحدة Diagnostic Management (DM) دالة المُشعِر هذه بمجرد أن تتغير حالة دورة التشغيل المراقبة ([SWS_DM_00755]). لاستخدام الطريقة، يجب تضمين ملف الرأس ara/diag/operation_cycle.h ([SWS_DM_00755]).
تم التصريح عن العملية على أنها noexcept وتوفر أمانًا من الاستثناءات (exception safe) ([SWS_DM_00755]). وكقيمة إرجاع متزامنة، يتم توفير ara::core::Result<void>؛ ومع ذلك، لم يتم تحديد رموز أخطاء قياسية محددة ([SWS_DM_00755]). وبالتالي يُرجح أن تكون أي حالات خطأ في كائن Result خاصة بالشركة المصنعة أو بالمنصة. سؤال Q-6799492164efd793 (مفتوح) وفيما يتعلق بالتزامن، تم تحديد الطريقة على أنها غير آمنة لخيوط المعالجة (not thread-safe) ([SWS_DM_00755])، بحيث يجب مزامنة الاستدعاءات المتوازية على نفس مثيل الكائن إلزاميًا بواسطة التطبيق.
تم إنشاء ملاحظة الاستخدام هذه آليًا وتستند إلى مواصفة AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني