> 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-enabled.md).

# Subsystem Enabled

توفر هذه الدالة كتلة نظام فرعي مغلق يمكن تشغيله بشكل شرطي. استخدمها لتجميع مجموعة من البلوكات (سيناريو صغير) والتحكم بوقت تنفيذها. وهي مفيدة لبناء فروع معالجة اختيارية، مفاتيح ميزات، أو تدفقات عمل محمية يجب أن تعمل فقط عند تفعيلها صراحةً.

## 📥 المدخلات

`Enable`\
إدخال منطقي (Boolean) يتحكّم فيما إذا كان النظام الفرعي المغلق سيعمل أم لا.

* إذا كان هذا الإدخال موصولًا ومضبوطًا على `False`، فسيتم تخطي تنفيذ النظام الفرعي.
* إذا لم يكن هذا الإدخال موصولًا أو كان مضبوطًا على `True`، فسيعمل النظام الفرعي.

(البلوك يقبل مدخلات إضافية بشكل غير مباشر عبر تعريض مدخلات البلوكات الموجودة داخل النظام الفرعي.)

## 📤 المخرجات

`Dynamic Outputs`\
هذا البلوك لا يعلن عن مخرجات ثابتة. بدلاً من ذلك، عند تشغيل النظام الفرعي يتم عرض المخرجات التي تنتجها البلوكات الداخلية. اعتبر هذا البلوك كحاوية: المخرجات تعكس أي مخرجات توفّرها البلوكات الداخلية.

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

`Subsystem Canvas`\
منطقة مرئية يمكنك فتحها أو تحريرها لاحتواء النظام الفرعي. قم بإسقاط البلوكات داخل هذه اللوحة لبناء التدفق الداخلي.

`Enable`\
مقبس الإدخال المذكور أعلاه يعمل كعنصر التحكم الأساسي لتشغيل أو إيقاف النظام الفرعي.

(لا توجد منزلقات أو أزرار إضافية على البلوك نفسه؛ كل الضوابط هي البلوكات التي تضعها داخل النظام الفرعي وإدخال `Enable` الذي توفّره.)

## 🎨 الميزات

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

## ⚙️ آلية التشغيل

* إذا كان إدخال `Enable` موصولًا ومضبوطًا على `False`، فلن يتم تنفيذ النظام الفرعي وسيقدم البلوك المخرجات الافتراضية الخاصة به.
* إذا كان إدخال `Enable` غير موصول أو مضبوطًا على `True`، فسيتم تنفيذ النظام الفرعي وسيتم جمع المخرجات من البلوكات الداخلية وعرضها.
* يراقب البلوك البلوكات الداخلية للحالات غير الصالحة؛ إذا أبلغ أي بلوك داخلي عن خطأ فسيشير البلوك إلى حالة غير صالحة لتتمكن من فحص وإصلاح النظام الفرعي.

## 📝 كيفية الاستخدام

1. أضف البلوك إلى اللوحة (canvas).
2. انقر مزدوجًا أو افتح لوحة النظام الفرعي لوضع وربط البلوكات التي تنفّذ الوظائف المطلوبة.
3. وفّر إدخال `Enable` (مثلًا باستخدام `Logic Input` أو إشارة منطقية) للتحكم في تشغيل النظام الفرعي. إذا تركت `Enable` غير موصول فسيعمل النظام الفرعي افتراضيًا.
4. وصل مخرجات البلوكات الداخلية بمخرجات النظام الفرعي (ستظهر على اللوحة الأم عندما تتوفر).
5. استخدم الرسم البياني الأعلى مستوى لتوجيه البيانات داخل وخارج النظام الفرعي حسب الحاجة.

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

* استخدم `Logic Input` لتشغيل/إيقاف النظام الفرعي يدويًا أثناء الاختبار.
* استخدم `Rising Edge` إذا أردت أن يعمل النظام الفرعي فقط عند التفعيل الأول بدلاً من التشغيل المستمر.
* ضع بلوكات الحصول على الصورة مثل `Camera USB`, `Camera IP (ONVIF)`, أو `Stream Reader` داخل النظام الفرعي عندما تريد تمكين/تعطيل معالجة الكاميرا كميزة واحدة.
* ادمج مع `Show Image`, `Image Logger`, أو `Record Video` داخل النظام الفرعي للتحكم في العرض والحفظ فقط عند تمكين النظام الفرعي.
* استخدم `Data Read Local` / `Data Write Local` (أو نظائرها العالمية) لتبادل البيانات بين الرسم البياني الأم والنظام الفرعي المغلق عند الحاجة إلى حالة مستدامة أو اتصال عابر بين الأنظمة الفرعية.
* للسلوك المشغّل أو المجدول، ادمج مع بلوكات مثل `Delay Step` أو `ON Delay` داخل النظام الفرعي لتشكيل توقيت التنفيذ.
* استخدم النظام الفرعي لتغليف خطوط أنابيب تجريبية (مثال: preprocessing -> detector -> postprocessing). هذا يسمح لك بتبديل خط الأنابيب بأكمله تشغيل/إيقاف بدون إعادة توصيل الرسم البياني الرئيسي.

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

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