> 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/signal-operators/multi-port-switch.md).

# Multi Port Switch

## 📥 المدخلات <a href="#inputs" id="inputs"></a>

`Switch` يستقبل قيمة المُحدد. يمكن أن تكون:

* رقمًا مفردًا (يختار المدخل عند ذلك الفهرس)، أو
* قيمة منطقية/قائمة من القيم المنطقية (يختار أول مدخل تكون قيمته TRUE).

`Input 0`, `Input 1`, ... مداخل عامة إضافية. عدد المداخل المعروضة قابل للتعديل عبر عناصر التحكم في البلوك.

(كل ما سبق هو مقابس إدخال على البلوك.)

## 📤 المخرجات <a href="#outputs" id="outputs"></a>

`Generic` المخرج يعيد توجيه البيانات القادمة من مقبس الإدخال المحدد.

(هذا هو مقبس المخرج على البلوك.)

## 🕹️ عناصر التحكم <a href="#controls" id="controls"></a>

`Number of inputs` قائمة منسدلة تتيح اختيار عدد مقابس الإدخال التي يعرضها البلوك (تظهر أو تختفي مداخل بحسب العدد المختار).

(استخدم هذا التحكم لتكييف البلوك مع السيناريو — من عدد قليل من المداخل وحتى الحد الأقصى المهيأ.)

## ⚙️ آلية التشغيل <a href="#how-it-runs" id="how-it-runs"></a>

* يقرأ البلوك القيمة الواصلة إلى `Switch` ويحدد أي مدخل يجب توجيهه.
* إذا كان `Switch` رقمًا، يوجه البلوك المدخل عند ذلك الفهرس الرقمي.
* إذا كان `Switch` قائمة من القيم المنطقية، يجد البلوك أول عنصر TRUE ويوجه المدخل المقابل.
* إذا كان المدخل المحدد غير موصول أو فارغًا، يبلّغ البلوك عن اختيار غير صالح ولا يعيد توجيه قيمة.

يجعل هذا السلوك البلوك مناسبًا لاتخاذ قرارات وقت التشغيل والتوجيه الشرطي في التدفقات البصرية.

## ✨ الميزات <a href="#features" id="features"></a>

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

## 📝 تعليمات الاستخدام <a href="#usage" id="usage"></a>

1. اضبط عدد المداخل المطلوب عبر `Number of inputs`.
2. وفّر القيم في مقابس `Input X` المقابلة.
3. وجه مقبس `Switch` بمحدد رقمي (استخدم `Number Input`) أو بمحدد منطقي/قائمة منطقية (استخدم `Logic Input` أو بلوكات توليد المنطق الأخرى).
4. اقرأ القيمة الموجَّهة من المخرج `Generic`.

## 💡 نصائح وحيل <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* استخدم `Number Input` لاختيار فهرس المدخل يدويًا أثناء الاختبار.
* استخدم `Logic Input` أو مُشغلات منطقية مثل `And` / `Or` لتوليد محددات منطقية لـ `Switch`.
* ادمجه مع `Mux` أو `Demux` عند التحويل بين بيانات مجمعة/مفصولة ومقابس فردية. مثلاً، اجمع القيم في قائمة بواسطة `Demux` ثم استخدم قائمة منطقية لاختيار واحدة عبر هذا البلوك.
* استخدم `Data Memory` للاحتفاظ بالقيمة المحددة وإعادتها كمدخل ثابت للبلوك.
* ضع هذا البلوك قبل `Show Image` لتبديل مصدر الصورة المعروض، أو قبل بلوك تحليل مثل `Find Object` لاختبار مداخل صور مختلفة بسرعة.
* في تدفقات الأتمتة، ادمجه مع `Subsystem Enabled` أو `Set - Reset` لتبديل المصادر اعتمادًا على حالة النظام.

(تلميح: البلوكات المرافقة الموصى بها تتضمن `Number Input`, `Logic Input`, `Mux`, `Demux`, `Data Memory`, `Show Image`, و `Find Object`.)

## 🛠️ استكشاف الأخطاء وإصلاحها <a href="#troubleshooting" id="troubleshooting"></a>

* إذا لم يظهر شيء على المخرج، تحقق أن مقبس الإدخال المحدد موصول وأن `Switch` يشير إلى الفهرس الصحيح أو إلى عنصر TRUE الصحيح.
* إذا تقفز الاختيار بشكل غير متوقع، تحقّق من مصدر إشارة `Switch` (قد يتغير كل دورة). استخدم `Data Memory` لتثبيت المُحدد عند الحاجة.
* إذا كنت بحاجة لعدد مداخل أكبر من المتاح حاليًا، زد العدد عبر `Number of inputs` وأعد توصيل مصادر البيانات.
