> 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/french/function-blocks/blocks-reference/data-logic/signal-operators/multi-port-switch.md).

# Multi Port Switch

Ce bloc fonctionnel achemine une des nombreuses valeurs entrantes vers sa sortie en fonction d'un sélecteur de référence. Utilisez-le lorsque vous souhaitez choisir un seul flux d'entrée (ou une valeur) parmi une liste configurable au moment de l'exécution.

## 📥 Entrées

* `Switch`\
  Accepte une valeur sélectrice. Cela peut être :
  * un nombre unique (sélectionne l'entrée à cet index), ou
  * un booléen / une liste de booléens (sélectionne la première entrée dont la valeur est TRUE).
* `Input 0`, `Input 1`, ...\
  Entrées génériques supplémentaires. Le nombre d'entrées disponibles est réglable via les contrôles du bloc.

(Chacune des lignes ci‑dessus correspond à une prise d'entrée sur le bloc.)

## 📤 Sorties

* `Generic`\
  La sortie transmet les données provenant de la prise d'entrée sélectionnée.

(Ceci est la prise de sortie sur le bloc.)

## 🕹️ Contrôles

* `Number of inputs`\
  Un menu déroulant qui vous permet de choisir combien de prises d'entrée le bloc expose (des entrées sont ajoutées ou supprimées en conséquence).

(Utilisez ce contrôle pour adapter le bloc à votre scénario — de quelques entrées jusqu'au maximum configuré.)

## ⚙️ Fonctionnement

* Le bloc lit la valeur fournie à `Switch` et détermine quelle entrée rediriger.
* Si `Switch` est un nombre, le bloc achemine l'entrée à cet index numérique.
* Si `Switch` est une liste de booléens, le bloc trouve la première entrée TRUE et achemine l'entrée correspondante.
* Si l'entrée sélectionnée n'est pas connectée ou est vide, le bloc signale une sélection invalide et ne transmet pas de valeur.

Ce comportement rend le bloc adapté aux décisions en temps réel et à l'acheminement conditionnel dans des flux visuels.

## ✨ Caractéristiques

* Nombre d'entrées dynamique : ajoutez ou supprimez des entrées depuis l'interface sans repenser le flux.
* Accepte des sélecteurs numériques ou booléens pour un contrôle flexible.
* Prises d'entrée/sortie génériques : fonctionne avec des images, nombres, textes, listes ou autres types de données.

## 📝 Mode d'emploi

1. Définissez le nombre d'entrées voulu avec `Number of inputs`.
2. Fournissez les valeurs aux prises `Input X` correspondantes.
3. Alimentez la prise `Switch` avec un sélecteur numérique (utilisez `Number Input`) ou un sélecteur booléen / liste booléenne (utilisez `Logic Input` ou d'autres blocs produisant une logique).
4. Lisez la valeur routée depuis la sortie `Generic`.

## 💡 Astuces

* Utilisez `Number Input` pour choisir manuellement un index d'entrée pendant les tests.
* Utilisez `Logic Input` ou des opérateurs logiques (`And`, `Or`) pour générer des sélecteurs booléens pour `Switch`.
* Combinez avec `Mux` ou `Demux` pour convertir entre données groupées/listées et prises individuelles. Par exemple, rassemblez des valeurs en liste avec `Demux` puis utilisez une liste booléenne pour en sélectionner une avec ce bloc.
* Utilisez `Data Memory` pour conserver une valeur sélectionnée et la renvoyer comme entrée stable au bloc.
* Placez ce bloc avant `Show Image` pour changer la source d'image affichée, ou avant un bloc d'analyse comme `Find Object` pour tester rapidement différentes entrées d'image.
* En automatisation, combinez avec `Subsystem Enabled` ou `Set - Reset` pour basculer les sources selon l'état du système.

(Conseil : blocs complémentaires recommandés : `Number Input`, `Logic Input`, `Mux`, `Demux`, `Data Memory`, `Show Image`, `Find Object`.)

## 🛠️ Dépannage

* Si rien n'apparaît en sortie, vérifiez que la prise d'entrée sélectionnée est connectée et que `Switch` pointe vers l'index correct ou la bonne entrée TRUE.
* Si la sélection change de façon inattendue, vérifiez la source qui pilote `Switch` (elle peut changer à chaque cycle). Utilisez `Data Memory` pour stabiliser le sélecteur si nécessaire.
* Si vous avez besoin de plus d'entrées que disponible, augmentez le nombre avec `Number of inputs` et reconnectez vos sources.
