يعالج كتل البيانات الواردة ويخزنها أثناء عمليات نقل الملفات للكتابة في التطبيق.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: eacdeba00b95المصدرأسئلة مفتوحة (2)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
يعالج كتل البيانات الواردة ويخزنها أثناء عمليات نقل الملفات للكتابة في التطبيق.
تُستخدم الفئة ara::diag::DataTransferWriteHandler في AUTOSAR Adaptive لمعالجة عمليات نقل الملفات للكتابة من جانب التطبيق، والتي تم تحفيزها بواسطة RequestWriteFile في الأنماط AddFile أو ResumeFile أو ReplaceFile[SWS_DM_01539]. تُكتب حزم البيانات الواردة بشكل غير متزامن عبر Write() في الذاكرة، ثم تُختتم الجلسة بعد ذلك بواسطة ExitWrite(). يرتبط المثيل ارتباطاً وثيقاً بجلسة نقل واحدة، ولا يجوز بأي حال من الأحوال تدميره قبل استدعاء ExitWrite()[SWS_DM_01541].
السياق
تحدد الفئة الأساسية المجردة ara::diag::DataTransferWriteHandler في AUTOSAR Adaptive Platform واجهة عمليات نقل الملفات للكتابة [SWS_DM_01539] (AUTOSAR_AP_SWS_Diagnostics §8.10.6 «Class: DataTransferWriteHandler»). وهي تُستخدم لمعالجة عمليات نقل البيانات من جانب التطبيق، والتي تم تحفيزها ضمن نطاق RequestWriteFile عبر أنماط التشغيل AddFile أو ResumeFile أو ReplaceFile.
ضمن بنية التشخيص، يتفاعل المعالج مع عميل UDS الخارجي وبرمجية التشخيص الوسيطة والتطبيق. يرسل العميل كتل بيانات مجزأة، حيث يستقبلها تنفيذ مشتق للمعالج ويخزنها في ذاكرة التطبيق [SWS_DM_01546]. ومن المفترض أن تتولى إدارة التشخيص (Diagnostic Management) للمنصة تنسيق بروتوكول UDS وتمرير البيانات المفيدة عبر واجهة المعالج إلى التطبيق الهدف. سؤال Q-484dc9dd80e56af4 (مفتوح)
دورة الحياة
يتم إنشاء مثيل ara::diag::DataTransferWriteHandler حصرياً بواسطة فئات فرعية مخصصة للتطبيق: تم تعريف المنشئ الخالي من المعلمات بواسطة protected وnoexcept=default[SWS_DM_01540]، مما يمنع إنشاء مثيل مباشر للفئة الأساسية. يرتبط مثيل المعالج ارتباطاً وثيقاً بجلسة نقل ملف واحدة («one way usage i.e. per single file transfer session»). ولهذا السبب، تم حذف منشئ النسخ [SWS_DM_01544] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.2.1 «DataTransferWriteHandler») وعامل إسناد النسخ [SWS_DM_01545] (=delete).
مخطط الحالة: دورة الحياة وتسلسل الاستدعاء لمثيل DataTransferWriteHandler. المصادر: [SWS_DM_01541]، [SWS_DM_01544].
مسار الاستخدام
يتضمن المسار المعتاد لنقل الكتابة الاستقبال التدريجي لكتل البيانات والاختتام اللاحق للجلسة:
لكل جزء بيانات وارد، يستدعي نظام التشخيص الدالة الافتراضية الصرفة Write()[SWS_DM_01546] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.2 «Write»). يتم تمرير البيانات كـ ara::core::Span<ara::core::Byte>. وتظل صلاحية منطقة الذاكرة هذه قائمة حتى يتم استيفاء Promise المقترن بها أو إلغاء العملية. يُلحق التطبيق البيانات بالمخزن المؤقت الداخلي ويُرجع ara::core::Future<void>.
بعد نقل جميع الأجزاء، تستدعي المنصة الدالة الافتراضية الصرفة ExitWrite()[SWS_DM_01547] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.1 «ExitWrite»). ويتم تمرير سبب الإنهاء (DataTransferExitType)، والمعلمات الخاصة بالشركة المصنعة للمركبة (transferRequestParameterRecord)، وmetaInfo، بالإضافة إلى CancellationHandler.
تُرجع الدالة ExitWrite() كائن ara::core::Future<ara::core::Vector<ara::core::Byte>>. وعند الاكتمال بنجاح، يتم إدراج البيانات الواردة فيه كـ transferResponseParameterRecord خلف معرف الخدمة (Service ID) في رسالة استجابة UDS الإيجابية [SWS_DM_01547].
تتم إدارة الأخطاء أثناء معالجة البيانات والنقل عبر قيم إرجاع قياسية وآليات إلغاء:
في حال فشل كتابة كتلة بيانات أو إنهاء النقل، يتم توفير Future المعني مع ara::core::ErrorCode من DiagUdsNrcErrc[SWS_DM_01546]، [SWS_DM_01547]. يؤدي هذا إلى إنشاء استجابة UDS سلبية مقابلة (NRC وفقاً للمعيار ISO 14229-1) إلى العميل.
توفر كلتا الدالتين CancellationHandler. يمكن للتطبيق التحقق عبر cancellationHandler.IsCanceled() مما إذا كانت المحادثة قد أُلغيت، أو تسجيل دالة إشعار باستخدام cancellationHandler.SetNotifier() تُنفذ عند إلغاء المحادثة [SWS_DM_01546]، [SWS_DM_01547].
إذا دُمِّر المثيل قبل استدعاء ExitWrite()، يُعد ذلك انتهاكاً لقاعدة دورة الحياة المحددة [SWS_DM_01541]، مما يؤدي على الأرجح إلى حالة نظام غير محددة وملفات غير مكتملة. سؤال Q-cc032c11ac89a5b1 (مفتوح) بالإضافة إلى ذلك، يؤدي الوصول المتزامن غير المحمي إلى عدم اتساق البيانات، نظراً لأن الواجهة غير آمنة لخيوط المعالجة بشكل صريح.
تم إعداد هذا الدليل بواسطة مساعد تنسيق بالذكاء الاصطناعي استناداً إلى AUTOSAR R25-11.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 459b3563e8d0المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
الاستخدام
تُنهي الدالة العضو الافتراضية ara::diag::DataTransferWriteHandler::ExitWrite جلسة نقل بيانات جارية لعمليات الوصول للكتابة [SWS_DM_01547] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.1 «ExitWrite»، الترويسة #include "ara/diag/data_transfer.h"). تتضمن معلمات الاستدعاء ما يلي:
transferRequestParameterRecord: معلمات خاصة بالشركة المصنعة للمركبة لدعم نقل البيانات؛ يجب أن تظل صلاحية الـ Span قائمة حتى يتم الوفاء بـ Promise المقترن أو إلغاء العملية [SWS_DM_01547].
cancellationHandler: يُتيح الاستعلام عن حالة الإلغاء عبر cancellationHandler.IsCanceled() وكذلك تسجيل مُخطر عبر cancellationHandler.SetNotifier()[SWS_DM_01547].
تعمل الدالة بشكل غير متزامن وتُرجع ara::core::Future<ara::core::Vector<ara::core::Byte>>، والتي يتم إدراج بيانات نتيجته في حالة النجاح كـ transferResponseParameterRecord خلف SID في رسالة الاستجابة الإيجابية [SWS_DM_01547].
معالجة الأخطاء
إذا فشل الإنهاء، يجب توفير Future مع Negative Response Code (NRC) مناسب وفقًا لـ ISO 14229-1 عبر DiagUdsNrcErrc[SWS_DM_01547]. تم تحديد الدالة بأنها noexcept بالإضافة إلى كونها آمنة من الاستثناءات (exception safe) [SWS_DM_01547].
التزامن والتفاعل
التنفيذ غير آمن مؤشريًا (not thread-safe) [SWS_DM_01547]. فيما يتعلق بدورة حياة الكائن، يوجد شرط ترتيب صارم: لا يجوز إتلاف مثيل فئة المعالج إلا بعد استدعاء ExitWrite()[SWS_DM_01541].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفات AUTOSAR للإصدار R25-11.
This parameter record contains parameter(s), which are required by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns true in case, the current conversation has been cancelled and false otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
Returns a Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message) Data in OperationOutput.response_ data will be placed after SID as transferResponseParameterRecord in the positive response.
Fehler
Fehlercode
Beschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.
Request a governed re-review of this record. The record is not changed immediately.
مُولَّد بالذكاء الاصطناعيغير مُراجَعالنموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a81be0f54500المصدرأسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني
تُستخدم الطريقة Write للواجهة ara::diag::DataTransferWriteHandler لإلحاق كتل البيانات المستلمة بنطاق ذاكرة التطبيق أثناء نقل ملفات UDS [SWS_DM_01546]. يتم إجراء الاستدعاء بواسطة مثيل خادم التشخيص عند استلام طلب UDS من النوع TransferData (0x36) في إطار عملية تم بدءها بواسطة RequestFileTransfer (0x38) [SWS_DM_01317].
المعلمات والدلالات
يتم تمرير محتويات الملف المراد كتابتها عبر requestData كـ ara::core::Span<ara::core::Byte>؛ ويظل المخزن المؤقت المشار إليه صالحًا حتى يتم الوفاء بـ Promise المقترن أو إلغاء المعالجة [SWS_DM_01546]. توفر المعلمة metaInfo معلومات وصفية لطلب التشخيص. وعبر cancellationHandler، يمكن التحقق من حالة الإلغاء الحالية بواسطة IsCanceled أو تسجيل رد نداء للإشعار عبر SetNotifier[SWS_DM_01546].
معالجة الأخطاء والتزامن
تُرجع النتيجة بشكل غير متزامن كـ ara::core::Future<void>. وفي حالة النجاح، يكتمل Future فارغًا؛ وفي حالة حدوث أخطاء، يجب إكماله باستخدام Negative Response Code (NRC) مناسب من DiagUdsNrcErrc وفقًا للمعيار ISO 14229-1 [SWS_DM_01546]. تم تحديد الدالة بأنها exception safe، ولكن صراحةً بأنها not thread-safe[SWS_DM_01546]؛ ولذلك من المتوقع أن يضمن خادم التشخيص استدعاءات متسلسلة للجلسة نفسها. سؤال Q-e60d55fe09b9a2c5 (مفتوح)
التفاعل والتسلسل
يتم تسجيل معالج الكتابة عبر مُنشئات القوالب داخل DataTransferWriteSession[SWS_DM_01317]. وبمجرد إنهاء النقل بواسطة RequestTransferExit (0x37)، يستدعي الخادم طريقة Exit للمعالج نفسه [SWS_DM_01318]. ويتميز هذا العنصر عن طرق الكتابة المرتبطة بـ DID كما هي محددة في [SWS_DM_00598] أو [SWS_DM_00637].
تم إنشاء هذا النص تلقائيًا. العبارات الفنية موثقة بمراجع المواصفات.
The first or subsequent file content chunk received from the UDS client to be written into the file. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني