> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/flow-control/subsystem.md).

# Subsystem

يعمل هذا البلوك كحاوية مستقلة لتدفق العمل. استخدمه لتجميع خطوات المعالجة المرتبطة داخل مساحة عمل منفصلة وقابلة للتحرير، بحيث تبقى السيناريوهات المعقدة منظمة وأسهل في الإدارة.

## 📥 المدخلات

`No default inputs`\
هذا البلوك لا يعرّف مدخلات بشكل افتراضي. يمكن إنشاء المدخلات بإضافة مقابس إدخال داخل مساحة عمل النظام الفرعي ثم كشفها على حد البلوك لتمكين تدفق البيانات من المخطط الرئيسي.

## 📤 المخرجات

`No default outputs`\
هذا البلوك لا يعرّف مخرجات بشكل افتراضي. تُعرّف المخرجات بواسطة البلوكات التابعة الموضوعّة داخل النظام الفرعي ويتم كشفها كمخرجات للبلوك عند حدّ النظام الفرعي.

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

* `Open Subsystem Editor`\
  افتح مساحة عمل النظام الفرعي لإضافة أو تعديل تدفق العمل المحتوى. (عادة متاحة بالنقر المزدوج على البلوك أو عبر قائمة السياق الخاصة بالبلوك.)
* `Expose Input`\
  أنشئ مقبس إدخال داخل النظام الفرعي وكشفه على حد البلوك حتى يستطيع المخطط الرئيسي إرسال بيانات إليه.
* `Expose Output`\
  أنشئ مقبس إخراج داخل النظام الفرعي وكشفه على حد البلوك لإرجاع النتائج إلى المخطط الرئيسي.
* `Run / Debug Inside`\
  قم بتشغيل وتصحيح تدفق العمل المحتوى بشكل مستقل عن السيناريو الرئيسي للتحقق من سلوكه.

## 🎯 الميزات الرئيسية

* تغليف: جمع خطوات ما قبل المعالجة، الكشف، التتبع والتصدير في وحدة قابلة لإعادة الاستخدام.
* مساحة عمل محلية: للنظام الفرعي كانفاس قابل للتعديل ليتم تصميم سلوك معقد دون تشويش المخطط الرئيسي.
* حدود واضحة: كشف المدخلات والمخرجات الضرورية فقط للحفاظ على بساطة المخطط الرئيسي.
* اختبار معزول: افتح وشغّل النظام الفرعي لتصحيح أو التحقق من التدفقات الفرعية بشكل مستقل.
* قابلية إعادة الاستخدام: أنشئ نظامًا فرعيًا مُختبرًا مرة واحدة ثم أعد استخدامه عبر مشاريع مختلفة.

## ⚙️ كيفية التشغيل

* عند تنفيذ السيناريو، يقوم النظام الفرعي بتشغيل تدفق العمل الداخلي الخاص به.
* تتدفق البيانات إلى النظام الفرعي عبر مقابس الإدخال التي كشفتها بداخله.
* تحسب البلوكات الداخلية نتائجها بالتتابع داخل النظام الفرعي.
* تُجمع المخرجات التي كشفتها داخل النظام الفرعي وتُعاد إلى المخطط الأب كمخرجات للبلوك.
* إذا أبلغ أي بلوك داخلي عن خطأ أو حالة غير صالحة، سيعكس النظام الفرعي تلك الحالة بحيث يمكنك تحديد المشكلة وإصلاحها داخل مساحة العمل.

## 📝 إرشادات الاستخدام

1. أضف بلوك `Subsystem` إلى المخطط الرئيسي لاحتواء سلسلة معقدة (الاستحواذ → المعالجة → التصدير).
2. افتح مساحة عمل النظام الفرعي (`Open Subsystem Editor`) وأضف البلوكات اللازمة.
3. داخل النظام الفرعي، اكشف فقط المدخلات والمخرجات التي يحتاجها المخطط الأب.
4. اختبر النظام الفرعي بشكل مستقل باستخدام أدوات التشغيل/التصحيح الداخلية قبل دمجه في السيناريو الرئيسي.
5. كرّر واعد استخدام الأنظمة الفرعية لمهام متشابهة لتسريع التطوير.

## 💡 نصائح وحيل

* اجمع خط أنابيب كاميرا كامل داخل نظام فرعي: استخدم `Camera USB` أو `Camera IP (ONVIF)` → بلوكات ما قبل المعالجة مثل `Image Resize` / `Blur` → كاشفات مثل `Object Detection` أو `Find Object` → عرض باستخدام `Draw Detections` → تخزين مع `Image Logger` أو `Image Write`.
* لتدفقات التتبع، ضع `Object Detection` (أو `Object Detection - Custom`) و `Object_Detection_Tracker` داخل نظام فرعي واحد حتى يبقى منطق التتبع وما بعد المعالجة معًا.
* ضع خطوات AI الثقيلة مثل `Super Resolution`، `Depth Estimation (DepthAny. V2)`، أو `Background Removal (RMBG-1.4)` داخل أنظمة فرعية لتسهيل تفعيل/تعطيل أو استبدال النماذج دون تعطيل المخطط الرئيسي.
* استخدم الأنظمة الفرعية لتنفيذ تحليلات متعددة المراحل: مثلاً ROI عبر `Image ROI Select` → تحليل الأشكال مع `Find Contour` / `Measure Position Distance` → تنسيق النتائج مع `Data to JSON`.
* عند بناء تحليلات تقاطعات أو مرور، احتفظ بالكشف والتتبع في نظام فرعي واحد والتجميع/التصدير (مثل بلوك `Traffic Intersection Analysis` أو `CSV Export`) في آخر لفصل الاهتمامات.
* لتمرير البيانات والحالة المحلية، اجمع الأنظمة الفرعية مع `Data Write Local` و `Data Read Local` للحفاظ على ذاكرة محلية دون تلويث المخطط العام.
* عند استكشاف الأخطاء، افتح النظام الفرعي وشغّل محتوياته فقط لتحديد أي بلوك داخلي يسبب مخرجات غير صالحة أو غير متوقعة بسرعة.

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

* `No outputs appearing`\
  تأكد من أنك كشفت مخرجات داخل النظام الفرعي. إن لم يتم كشف أي شيء، فلن يعيد البلوك بيانات إلى المخطط الأب.
* `Inputs not received`\
  تأكد من إنشاء وكشف مقابس الإدخال داخل النظام الفرعي وأن المخطط الأب متصل بتلك المدخلات المكشوفة.
* `Child block reports invalid`\
  افتح مساحة عمل النظام الفرعي وافحص البلوكات الفرعية. ستظهر الأخطاء داخل النظام الفرعي—قم بتعديل إعدادات البلوك الفرعي أو استبداله إذا لزم الأمر.
* `Performance issues`\
  إذا احتوى النظام الفرعي على معالجة ثقيلة (نماذج AI، super-resolution، عمليات دفعات كبيرة)، فكّر في إجراء بروفايل داخل النظام الفرعي ونقل المعالجات غير الأساسية إلى أنظمة فرعية منفصلة عند الطلب.
* `Need to reuse or version`\
  انسخ النظام الفرعي واحتفظ بنسخة قابلة للاختبار. هذا يجعل تجربة معلمات أو نماذج مختلفة آمنة دون التأثير على المخطط الإنتاجي.
