يسجل الحالة والتقدم كنسبة مئوية ورمز الخطأ لكيان فرعي أثناء تحديثات البرامج المستندة إلى SOVD.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 86b478c2c357المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يسجل الحالة والتقدم كنسبة مئوية ورمز الخطأ لكيان فرعي أثناء تحديثات البرامج المستندة إلى SOVD.
يُغلف الهيكل ara::diag::SovdSwUpdate::SubProgress التقدم الحالي والحالة وأي أخطاء لكيان محدد أثناء تحديث برامجي مستند إلى SOVD ([SWS_DM_01896]). وتُسجل روتينات التحديث فيه المكون المراد تحديثه، وتُحدّث التقدم كنسبة مئوية، وتنقل الحالة الإجمالية إلى إدارة التشخيص. وإذا فشل التحديث، يحدد الحقل error رمز الخطأ الذي حدث، بينما لا يُؤخذ في الحسبان في المسار النظامي ([SWS_DM_01901]). ونظرًا لأن SubProgress هو نوع قيمة بيانات بحت دون مزامنة داخلية، فإن التعديل المتزامن يتطلب تأمينًا من جانب التطبيق.
السياق
تُعد البنية ara::diag::SovdSwUpdate::SubProgress جزءًا من واجهة ++C لتحديثات البرمجيات المستندة إلى SOVD في الوحدة diag لـ AUTOSAR Adaptive Platform ([SWS_DM_01896]، AUTOSAR_AP_SWS_Diagnostics §8.58.3 «Struct: SubProgress»). في سياق Service-Oriented Vehicle Diagnostics (SOVD)، يمكن أن تتكون عمليات التحديث من عدة خطوات فرعية متوازية أو متسلسلة. تتولى SubProgress مسؤولية تمثيل حالة معالجة مكوّن فرعي محدد أثناء التحديث. وتتضمن أطراف التفاعل روتينات التحديث الداخلية الخاصة بـ Diagnostics التي تُجري التحديثات الفرعية، بالإضافة إلى جهات التحكم العليا التي تنسق التقدم الإجمالي للتحديث وتبلغ عنه لأدوات التشخيص الخارجية.
entity: ara::core::String يُسمّي الكيان الذي يجري تحديثه حاليًا ([SWS_DM_01898]).
status: قيمة من النوع SovdUpdateStatus تمثل الحالة الحالية للتحديث ([SWS_DM_01899]).
progress: قيمة اختيارية من النوع ara::core::Optional<std::uint8_t> للتقدم كنسبة مئوية ([SWS_DM_01900]).
error: رمز خطأ من النوع ara::core::ErrorCode لتحديد الأخطاء التي حدثت في حالة الخطأ ([SWS_DM_01901]).
دورة الحياة
بصفته مصممًا كـ struct، يمتلك SubProgress دلالات القيمة (AUTOSAR_AP_SWS_Diagnostics §8.58.3.1 «Public Member Variables»). ويُنشأ مثيل منه عادةً على مكدس الذاكرة أو داخل حاوية حالة عليا بمجرد أن تبدأ خطوة فرعية جديدة ضمن معالجة التحديث. ويُعين المكون الإداري في البداية معرّف الكيان المستهدف للمثيل عبر entity ([SWS_DM_01898]) ويضبط الحالة الأولية في status ([SWS_DM_01899]).
أثناء سير العملية، يُحدّث التقدم كنسبة مئوية وتغييرات الحالة باستمرار في الهيكل. وبعد اكتمال التحديث الفرعي أو إلغائه، يُمرر الهيكل أو تُقرأ بياناته، ويُدمّر تلقائيًا في النهاية عند مغادرة نطاق الصلاحية. ونظرًا لأن المواصفة لا تحدد دوالًا خاصة أو بدائيات مزامنة، يُرجح أن يعمل الهيكل كحاوية بيانات بحتة بدون أمان تسلسلي خاص بها (تفسير). سؤال Q-92b3fcc698f7bab8 (مفتوح) ولذلك، يتطلب الوصول المتزامن من عدة خيوط معالجة مزامنةً من جانب التطبيق.
مسار الاستخدام
ينقسم المسار النظامي للإبلاغ عن التقدم إلى تسلسل محدد من الخطوات:
في البداية، يُنشئ منطق التحديث المنفّذ كائنًا من النوع SubProgress ويضبط معرّف الكيان المعني في entity ([SWS_DM_01898]). وفي الوقت نفسه، تُعيّن القيمة الابتدائية لـ status، على سبيل المثال للإشارة إلى بدء المعالجة ([SWS_DM_01899]). وفي الخطوات المستمرة، يكتب المنطق دوريًا التقدم كنسبة مئوية في الحقل progress ([SWS_DM_01900]، AUTOSAR_AP_SWS_Diagnostics §8.58.3.1.3 «progress»). ونظرًا لأن progress مُعلن كـ ara::core::Optional، يظل الحقل فارغًا طالما أن التقدم لا يزال غير محدد. وأخيرًا، يُسلّم الهيكل إلى الواجهة المركزية SovdSwUpdate لكي تتمكن عملاء SOVD الخارجيون من الاستعلام عن الحالة ([SWS_DM_01896]).
في حال حدوث مخالفات أو أخطاء أثناء معالجة كيان فرعي، يدخل سيناريو أخطاء الهيكل حيز التنفيذ. وإذا حدث خطأ، تتغير القيمة في status إلى حالة خطأ ([SWS_DM_01899]). ووفقًا لـ [SWS_DM_01901]، لا يحدد المتغير error رمز الخطأ الدقيق إلا إذا كانت الحالة فاشلة («Specifies the error if status is failed»). ويمثل هذا اقترانًا منطقيًا ملزمًا بين status وerror: ولا يجوز لمتلقي الهيكل تقييم الحقل error على أنه ذو دلالة إلا إذا أبلغ status بالفعل عن حالة فاشلة؛ وإلا فإن المحتوى يُرجح ألا يُؤخذ في الحسبان أو يمثل قيمة قياسية (تفسير). سؤال Q-3caa7622672dcb8e (مفتوح)
يتعلق سيناريو أخطاء آخر بالتقدم غير المحدد: إذا تعذر على الكيان المعالج تحديد قيمة مئوية محددة أو إذا توقف الحساب قبل الأوان، يظل الحقل الاختياري progress بدون قيمة (ara::core::nullopt)، مما يمنع تفسير القيم العددية غير الصالحة بالخطأ على أنها نسبة مئوية ([SWS_DM_01900]).
يستند هذا الدليل إلى مواصفة AUTOSAR Adaptive Platform الإصدار R25-11 ويلخص المتطلبات المفروضة على الهيكل ara::diag::SovdSwUpdate::SubProgress.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني