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

# Multi Port Switch

Este bloque de función enruta uno de varios valores entrantes hacia su salida basándose en un selector de referencia. Úselo cuando quiera elegir una única corriente de entrada (o valor) de una lista configurable en tiempo de ejecución.

## 📥 Entradas

`Switch`\
Acepta un valor selector. Esto puede ser:

* un número (selecciona la entrada en ese índice), o
* un booleano/lista de booleanos (selecciona la primera entrada cuyo valor sea TRUE).

`Input 0`, `Input 1`, ...\
Entradas genéricas adicionales. El número de entradas disponibles se ajusta mediante los controles del bloque.

(Cada uno de los anteriores es un conector de entrada en el bloque.)

## 📤 Salidas

`Generic`\
La salida reenvía los datos provenientes del conector de entrada seleccionado.

(Este es el conector de salida en el bloque.)

## 🕹️ Controles

`Number of inputs`\
Un desplegable que permite elegir cuántos conectores de entrada expone el bloque (aparecen o se eliminan entradas según la selección).

(Use este control para adaptar el bloque a su escenario — desde unas pocas entradas hasta el máximo configurado.)

## ⚙️ Mecanismo de ejecución

* El bloque lee el valor proporcionado a `Switch` y determina qué entrada enrutar.
* Si `Switch` es un número, el bloque enruta la entrada en ese índice numérico.
* Si `Switch` es una lista de booleanos, el bloque encuentra la primera entrada TRUE y enruta la entrada correspondiente.
* Si la entrada seleccionada no está conectada o está vacía, el bloque informa una selección inválida y no reenvía valor.

Este comportamiento hace al bloque adecuado para toma de decisiones en tiempo de ejecución y enrutamiento condicional en flujos visuales.

## ✨ Características

* Conteo dinámico de entradas: añada o elimine entradas desde la UI sin rediseñar el flujo.
* Acepta selectores numéricos o booleanos para control flexible.
* Conectores genéricos de entrada/salida: funciona con imágenes, números, texto, listas u otros tipos de datos.

## 📝 Instrucciones de uso

1. Ajuste el número deseado de entradas con `Number of inputs`.
2. Proporcione valores a los conectores correspondientes `Input X`.
3. Mueva el selector en `Switch` con un selector numérico (use `Number Input`) o un selector booleano/lista (use `Logic Input` u otros bloques lógicos).
4. Lea el valor enrutado desde la salida `Generic`.

## 💡 Consejos y trucos

* Use `Number Input` para elegir manualmente un índice de entrada durante las pruebas.
* Use `Logic Input` u operadores lógicos como `And` / `Or` para generar selectores booleanos para `Switch`.
* Combine con `Mux` o `Demux` al convertir entre datos agrupados/listados e entradas individuales. Por ejemplo, recopile valores en una lista con `Demux` y luego use una lista booleana para seleccionar uno con este bloque.
* Use `Data Memory` para mantener un valor seleccionado y alimentarlo de vuelta como entrada estable al bloque.
* Coloque este bloque antes de `Show Image` para cambiar qué fuente de imagen se muestra, o antes de un bloque de análisis como `Find Object` para probar diferentes entradas de imagen rápidamente.
* En flujos de automatización, combine con `Subsystem Enabled` o `Set - Reset` para cambiar fuentes según el estado del sistema.

(Consejo: bloques recomendados para usar en conjunto incluyen `Number Input`, `Logic Input`, `Mux`, `Demux`, `Data Memory`, `Show Image` y `Find Object`.)

## 🛠️ Solución de problemas

* Si no aparece nada en la salida, verifique que el conector de entrada seleccionado esté conectado y que `Switch` apunte al índice correcto o a la entrada TRUE adecuada.
* Si la selección salta inesperadamente, verifique la fuente que impulsa `Switch` (puede estar cambiando en cada ciclo). Use `Data Memory` para estabilizar el selector si es necesario.
* Si necesita más entradas de las disponibles actualmente, aumente el conteo con `Number of inputs` y vuelva a conectar sus fuentes.
