For the complete documentation index, see llms.txt. This page is also available as Markdown.

Serial Write

هذه الدالة ترسل بيانات خام عبر اتصال تسلسلي محدد. صُممت لإرسال بسيط وغير حابس (non-blocking) وتوفر خيارات واجهة مستخدم سهلة لتحويل أنواع البيانات الشائعة، إضافة نهايات السطر، والتحكم في سلوك إعادة الإرسال.

📥 المدخلات

  • Enable — استخدم لتمكين أو تعطيل الإرسال. عندما تكون قيمة الإدخال false، لا يرسل البلوك بيانات.

  • Data — الحمولة التي تُرسل. يقبل أرقامًا، نصوصًا، قوائم، قيم منطقية أو قيم شبيهة بالبايت حسب الضبط المختار.

  • ConnId — معرف الاتصال التسلسلي المراد استخدامه. زود القيمة التي تُنتجها كتلة إدارة الاتصالات (connection manager).

📤 المخرجات

  • هذا البلوك لا يُنتج مخرجات.

🕹️ عناصر التحكم

  • Data Type — اختر كيفية تحويل Data قبل الإرسال. الخيارات الشائعة تشمل string، integer، float، boolean، وصيغ byte/hex.

  • Line ending — اختر تسلسل نهاية سطر يضاف إلى الحمولة (مثل LF، CRLF، CR أو none).

  • Send policy — اختر متى يتم الإرسال:

    • On change يرسل فقط عندما تختلف الحمولة النهائية عن آخر حمولة مرسلة.

    • Always يرسل في كل مرة يتم فيها تقييم البلوك وتمكينه.

🎨 الميزات

  • تحويل نوع البيانات للصيغ الشائعة حتى تتمكن من إدخال قيم مقروءة للبشر والبلاك يتحول لها إلى تسلسل البايت المناسب.

  • إمكانية ضبط نهاية السطر لتطابق توقعات الجهاز المستلم.

  • سياسة إرسال لتجنب تكرار رسائل متطابقة عندما لا يكون ذلك ضروريًا.

  • سلوك كتابة غير حابس بحيث يستمر تدفق النظام أثناء إرسال البيانات.

  • يعمل مع كتل مدير الاتصال الخارجية التي تزود قيم ConnId.

📊 آلية التشغيل

عند تقييم البلوك:

  1. إذا كان إدخال Enable غير نشط أو فارغ، لا يُرسل شيء.

  2. إذا وُجدت قيم صالحة في Data وConnId، يقوم البلوك بتحويل Data وفقًا لـ Data Type المختار ويضيف Line ending المحدد.

  3. إذا كانت سياسة الإرسال On change، يقارن البلوك الحمولة المُحضرة بالحمولة السابقة ويتخطى الإرسال إذا كانت متطابقة.

  4. تُرسل الحمولة البايتية المحضرة إلى الاتصال التسلسلي المشار إليه بـ ConnId دون حجب بقية النظام.

📝 تعليمات الاستخدام

  1. أنشئ أو اختر اتصالًا تسلسليًا وسجل معرف الاتصال (connection id).

  2. زود ذلك المعرف إلى مدخل ConnId.

  3. أدخل القيمة التي تريد إرسالها إلى مدخل Data.

  4. اضبط تحكم Data Type ليتوافق مع بياناتك (مثلاً استخدم HexBytes لسلاسل hex أو Bytes لقوائم البايت الخام).

  5. اختر Line ending المطلوب إذا كان الجهاز المستقبل يتوقع نهاية سطر.

  6. استخدم Send policy لتجنب التكرارات غير الضرورية عند بث قيم ثابتة.

  7. قم بتبديل Enable لبدء أو إيقاف الإرسال.

💡 نصائح وحيل

  • اجمعه مع كتل Serial Connect / مديري الاتصال للحصول على قيم ConnId وإدارتها.

  • استخدم كتل String Input أو Number Input لتحضير والتحقق من Data قبل الإرسال.

  • قم بتهيئة الحمولات المعقدة مسبقًا باستخدام String Merge أو Data to JSON عند الحاجة إلى سلاسل منظمة (مثل رسائل JSON).

  • لإضافة سجل أو تصدير للبيانات المرسلة، أضف CSV Export أو Image Logger (لسجلات مرئية) بعد البلوك في التدفق.

  • للإرسال المشروط بناءً على منطق، ادمجه مع Logic Input، And، Or، أو Greater لبوابة الإرسال.

  • لجسور البروتوكول، أقرنه مع MQTT Publish أو REST API - Post لإعادة توجيه بيانات السيريال إلى خدمات الشبكة.

  • استخدم Debug Input لفحص الحمولات الصادرة أثناء التطوير.

🛠️ استكشاف الأخطاء وإصلاحها

  • لا يُرسل شيء: تحقق أن Enable مفعل، وأن Data غير فارغ، وConnId يشير إلى اتصال نشط.

  • الجهاز المستقبل يتجاهل الرسائل: تحقق Line ending جرب خيارات مختلفة (LF، CRLF، CR أو none).

  • الرسائل المتطابقة لا تُرسل عندما تتوقع ذلك: تأكد أن Send policy مضبوطة على Always إذا كنت بحاجة لإرسال متكرر.

  • بايتات غير متوقعة على السلك: تأكد أن Data Type يطابق شكل القيمة التي تزودها (مثلاً استخدم HexBytes لسلاسل hex أو Bytes لقوائم رقمية).

آخر تحديث