Skip to content

دمج ملحق RS-485

حالة الاستخدام

استخدم هذا النمط عندما يحتاج جهاز WLTE يدعم RS-485 إلى تبادل بايتات خام مع ملحق. توفّر OpenAPI نقلًا شفافًا (passthrough)؛ ولا تنفّذ تلقائيًا حزمة بروتوكول Modbus كاملة.

خدمتك مسؤولة عن بناء حمولة بروتوكول التطبيق، وCRC عند الحاجة، وتفسير الاستجابة، وتطبيق قواعد إعادة المحاولة الخاصة بالجهاز.

التدفق الموصى به

  1. اقرأ deviceType للجهاز المستهدف من سرد الأجهزة (بالإنجليزية).
  2. ابحث عن الملف الشخصي (profile) المطابق في سرد تعريفات نوع الجهاز (بالإنجليزية).
  3. اعرض النقل الشفاف فقط عندما تحتوي supportedOperations على device.rs485.transceive.
  4. إذا كان إعداد سرعة النقل مطلوبًا، تطلّب device.rs485.baudRate.set بشكل منفصل واقرأ القيمة الحالية من الحصول على إعداد الجهاز (بالإنجليزية).
  5. أرسل الطلب الخام مع Idempotency-Key جديد واحتفظ بمعرّف الأمر المُعاد.
  6. حلّل command.result.responseHex فقط بعد SUCCESS. إذا كانت الحالة SENT، استعلم عن نتيجة الأمر.

التنفيذ خطوة بخطوة

1. التحقق من القدرة والإعداد

لا تستنتج دعم RS-485 من اسم الجهاز أو من طراز آخر. استخدم supportedOperations. تتطلب تغييرات سرعة النقل صلاحية device:config؛ ويتطلب النقل الشفاف صلاحية device:control.

تقبل نقطة نهاية سرعة النقل النطاق والوحدات الموثّقة في تعيين سرعة نقل RS485 (بالإنجليزية). يجب أن يستخدم الملحق والجهاز القيمة نفسها.

2. بناء الطلب الخام

عبر REST، أرسل requestHex إلى أمر نقل بيانات RS485 (بالإنجليزية). يقبل العقد الحالي سلسلة سداسية عشرية متواصلة من 1 إلى 30 بايتًا، دون مسافات، أو بادئة 0x، أو فواصل.

إذا كان الملحق يستخدم Modbus RTU، يجب أن يبني تطبيقك العنوان، والوظيفة، والبيانات، وبايتات CRC. تعيد OpenAPI توجيه البايتات وتُعيد بايتات الاستجابة الخام؛ ولا تتحقق من سجلات Modbus أو دلالة الوظيفة.

3. معالجة نتيجة الأمر

  • SUCCESS: حلّل result.responseHex وفقًا لبروتوكول الملحق.
  • SENT: استعلم عبر الحصول على نتيجة أمر (بالإنجليزية).
  • FAILED: توقّف واعرض الفشل المؤكَّد.
  • TIMEOUT: لم تصل استجابة مطابقة ضمن نافذة الانتظار. لا تفترض فشل الكتابة عند الملحق.

عند استخدام WebSocket، تظهر البيانات المطابقة في رد العملية. قد تصل بيانات RS-485 المتأخرة أو غير المطلوبة عبر device.rs485.received (بالإنجليزية)، التي لا تملك إعادة تشغيل تاريخية.

الواجهات والأحداث الرئيسية

الغرضالمرجع
تأكيد قدرة الجهازسرد تعريفات نوع الجهاز (بالإنجليزية)
إرسال بيانات خام عبر RESTأمر نقل بيانات RS485 (بالإنجليزية)
إرسال بيانات خام عبر WebSocketنقل بيانات RS485 (بالإنجليزية)
إعداد سرعة النقلتعيين سرعة نقل RS485 (بالإنجليزية)
قراءة الإعداد الحاليالحصول على إعداد الجهاز (بالإنجليزية)
استقبال بيانات غير مطابقةحدث بيانات RS485 (بالإنجليزية)

الفشل والتعافي

  • أعِد استخدام مفتاح التماثلية الأصلي فقط عند إعادة محاولة طلب النقل نفسه بعد نتيجة HTTP غير معروفة أو حد تكرار.
  • عامل TIMEOUT كنتيجة نهائية غير مؤكدة للأمر الأصلي؛ إعادة استخدام مفتاحه لا تُعيد إرسال البيانات. ولّد مفتاحًا جديدًا فقط عندما تكون محاولة فعلية أخرى آمنة لأمر الملحق.
  • تحقّق في محلّلك الخاص من طول الاستجابة، وصحة البروتوكول (checksum)، والعنوان، والوظيفة قبل تطبيق البيانات.
  • خزّن البيانات غير المطلوبة أو المتأخرة فورًا إذا كان فقدانها غير مقبول؛ لا تُعاد أحداث WebSocket.
  • احترم حدود التكرار الخاصة بعملية الجهاز بدلًا من إطلاق طلبات نقل متوازية إلى الجهاز نفسه.

اعتبارات الإنتاج

  • احتفظ بطابور طلبات واحد منسّق لكل ناقل RS-485 فعلي أو لكل جهاز.
  • احجب الحمولات الحساسة إذا كانت بيانات الناقل الخام قد تحتوي قيمًا سرّية.
  • سجّل معرّف الأمر، ومفتاح التماثلية، وأطوال الطلب والاستجابة، والحالة النهائية، وrequestId؛ تجنّب تسجيل بيانات الاعتماد أو access token.
  • اختبر سلوك انتهاء المهلة والاستجابات المكررة مع الملحق الفعلي قبل تفعيل إعادة المحاولة التلقائية.

الخطوات التالية

Docs buildVersion v1.5.8-20260814-180545-84
Copyright © 2026 WLTE