يقبل الاتصالات ويتيح إرسال واستقبال تدفقات البيانات الثنائية للمنافذ المنمذجة.
السياق
تمثل الفئة ara::rds::RawDataStreamServer في AUTOSAR Adaptive Platform (الوحدة rds) النظير من جانب الخادم لنقل البيانات الموجه نحو التدفق SWS RawDataStream ص. 1. وتتمثل مهمتها الرئيسية في قبول اتصالات العميل الواردة عند منفذ اتصال منمذج وإجراء التبادل اللاحق ثنائي الاتجاه للبيانات الخام غير المهيكلة عبر تدفقات البيانات الثنائية.
تشمل أطراف التفاعل المركزية ما يلي:
- تطبيق الخادم الأعلى مستوى، والذي يقوم بإنشاء المثيل، وانتظار الاتصالات، وبدء نقل البيانات،
- نظام تشغيل AUTOSAR، الذي يرتبط به الخادم عبر
ara::core::InstanceSpecifier لمنفذ منمذج [SWS_RDS_11312]،
- العميل الخارجي، الذي ينشئ اتصالاً بالخادم [SWS_RDS_11318] ويتبادل حمولة البيانات [SWS_RDS_11322]، [SWS_RDS_11324].
دورة الحياة
لا يتم إنشاء مثيل لـ RawDataStreamServer عبر منشئات عادية، بل حصريًا عبر دالة المصنع الثابتة Create [SWS_RDS_11312]. والتي تربط الخادم بالمنفذ المحدد عبر ara::core::InstanceSpecifier.
فيما يتعلق بعلاقات الملكية، تفرض الفئة دلالات مقتصرة على النقل فقط بشكل صارم. تم حذف منشئ النسخ [SWS_RDS_11316] ومعامل إسناد النسخ [SWS_RDS_11317] صراحةً (delete). وبالتالي، فإن نقل الموارد إلى نطاقات صلاحية أخرى لا يمكن إلا من خلال منشئ النقل [SWS_RDS_11314] أو معامل إسناد النقل [SWS_RDS_11315].
تفسير: بعد الإنشاء الناجح، يكون مثيل الخادم في حالة جاهزية أولية لا يوجد فيها اتصال نشط بعد. سؤال Q-5d536f7c10a62342 (مفتوح) عبر WaitForConnection [SWS_RDS_11318] أو المتغير الخاضع لمراقبة الوقت WaitForConnection(timeout) [SWS_RDS_11319]، ينتظر الخادم عميلاً وينتقل عند النجاح إلى حالة اتصال نشط. يمكن إغلاق الاتصال بشكل مستهدف أثناء وقت التشغيل عن طريق استدعاء Shutdown [SWS_RDS_11320].
عند تدمير مثيل الخادم، يضمن المُدمِّر ~RawDataStreamServer إيقاف وإغلاق أي اتصال لا يزال مفتوحًا تلقائيًا وبشكل سليم [SWS_RDS_11313].
فيما يتعلق بالتزامن، تم تحديد دالة الإنشاء Create على أنها آمنة من حيث الخيوط [SWS_RDS_11312]. في المقابل، تم تصنيف عمليات النقل [SWS_RDS_11314]، [SWS_RDS_11315] وكذلك المُدمِّر [SWS_RDS_11313] صراحةً على أنها غير آمنة من حيث الخيوط (not thread-safe)، وتتطلب حماية مزامنة خارجية عند الوصول المتزامن من خيوط متعددة.
مخطط الحالة: مراحل مثيل الخادم من الإنشاء مرورًا بقبول الاتصال وحتى إنهاء الاتصال. المصادر: [SWS_RDS_11312]، [SWS_RDS_11318]، [SWS_RDS_11320]، [SWS_RDS_11313]
مسار الاستخدام
يتضمن مسار الاستخدام النموذجي لتطبيق الخادم خطوات التهيئة الأولية، وانتظار الاتصالات، ونقل البيانات ثنائي الاتجاه، وإنهاء الاتصال:
- إنشاء الخادم: يقوم التطبيق بإنشاء مثيل للخادم عبر
ara::rds::RawDataStreamServer::Create(instance) للمنفذ المهيأ [SWS_RDS_11312].
- انتظار الاتصال: يحظر التطبيق التنفيذ باستخدام
WaitForConnection() [SWS_RDS_11318] أو بحد أقصى للمدة مهيأ عبر WaitForConnection(timeout) [SWS_RDS_11319]، حتى ينشئ العميل الاتصال.
- استقبال البيانات وإرسالها: بعد الاتصال الناجح، يقرأ التطبيق البيانات الثنائية باستخدام
ReadData(maxLength) [SWS_RDS_11322] أو بمراقبة زمنية عبر ReadData(maxLength, timeout) [SWS_RDS_11323]. ولإرسال البيانات الثنائية، يتم استدعاء WriteData، إما دون حد لزمن الانتظار [SWS_RDS_11324] أو بمراقبة زمنية [SWS_RDS_11325]. يُفترض أن الإرسال عبر WriteData ينقل ملكية المخزن المؤقت للبايتات المقدم (std::unique_ptr<ara::core::Byte[]>) إلى الخادم. سؤال Q-eec0fea4a5ffaf40 (مفتوح)
- قطع الاتصال: عند اكتمال نقل البيانات، ينهي التطبيق الجلسة صراحةً عبر
Shutdown() [SWS_RDS_11320].
مخطط تسلسلي: تسلسل الإنشاء، وقبول الاتصال، وتبادل البيانات، وإغلاق الاتصال. المصادر: [SWS_RDS_11312]، [SWS_RDS_11318]، [SWS_RDS_11322]، [SWS_RDS_11324]، [SWS_RDS_11320]
سيناريوهات الأخطاء
تتبع معالجة الأخطاء لـ RawDataStreamServer مبادئ AUTOSAR Adaptive Platform للواجهات الآمنة من الأعطال:
لا تطلق أي من الدوال استثناءات ++C؛ وقد تم الإعلان عن جميع الدوال بـ noexcept SWS RawDataStream ص. 1. وبدلاً من ذلك، يتم إبلاغ المتصل بحالات الخطأ عبر نوع الإرجاع ara::core::Result.
تشمل سيناريوهات الخطأ النموذجية ما يلي:
- تجاوز المهلة الزمنية: في الدوال
WaitForConnection [SWS_RDS_11319]، ReadData [SWS_RDS_11323] و WriteData [SWS_RDS_11325] مع مهلة انتظار، يؤدي انقضاء الفترة الزمنية المحددة إلى حالة خطأ في ara::core::Result المرتجع.
- أخطاء الاتصال والحالات غير الصالحة: يُرجَّح أن تعيد الدوال
ReadData، WriteData و WaitForConnection في حالة حدوث خطأ (مثل قطع الاتصال المبكر أو أخطاء الاتصال الداخلية) رموز خطأ مطابقة في ara::core::Result. سؤال Q-0c6815ddde412d81 (مفتوح)
- الشروط المسبقة واللاحقة: يجب على المتصلين دائمًا التحقق من صلاحية
ara::core::Result المرتجع قبل الوصول إلى قيم البيانات لضمان الحالة الخالية من الأخطاء للعملية.
يستند هذا الدليل إلى مواصفة AUTOSAR Adaptive R25-11 وقد تم إنشاؤه آليًا.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني