> 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/flow-control/subsystem-out.md).

# Subsystem Out

Este bloque de función proporciona un único punto de exportación dentro de un subsistema. Úsalo para enviar datos desde el contexto local del subsistema hacia la escena padre (main) u otras partes de tu escenario. Normalmente se utiliza en grupos: cada punto de exportación se mapea a un punto de entrada correspondiente en la escena padre.

## 📥 Entradas

`Generic`\
Esta entrada acepta cualquier tipo de dato que quieras exponer fuera del subsistema (imágenes, números, listas, diccionarios, etc.).

## 📤 Salidas

Este bloque no produce salidas directas en su vista local; en su lugar expone la entrada conectada al contexto padre, donde los puntos de entrada correspondientes la reciben.

## 🕹️ Controles

Este bloque no tiene controles interactivos.\
Cuando se usa dentro de un subsistema, el bloque muestra un pequeño título numérico/índice para indicar su posición de exportación relativa a otros puntos de exportación.

## 🎨 Características

* `Expose Local Data` — Permite que cualquier valor desde dentro de un subsistema esté disponible para la escena padre.
* `Multiple Exports` — Añadir varios bloques de este tipo en un subsistema crea múltiples canales de exportación ordenados. El índice mostrado te ayuda a seguir el orden de mapeo.
* `Type Syncing` — El punto de exportación se adaptará al tipo de dato conectado para que el punto de entrada en el padre pueda aceptar el mismo tipo.
* `Safe Use in Main Scene` — Colocar el bloque en la escena principal reenviará su valor de entrada como una salida de paso normal, conveniente para pruebas o cuando el subsistema está abierto.

## 📝 Instrucciones de uso

1. Añade un contenedor de subsistema (usa el bloque `Subsystem`) y trabaja dentro de él.
2. Coloca uno o más bloques `Subsystem Out` dentro del subsistema en los lugares donde quieras exportar valores.
3. Conecta tus resultados internos al input `Generic` de cada bloque `Subsystem Out`.
4. En la escena padre, añade puntos de entrada correspondientes para recibir los datos exportados. La etiqueta numérica en cada `Subsystem Out` ayuda a emparejar el input correcto del padre.

## 📊 Evaluación

Al ejecutar el escenario, este bloque expone el valor actual presente en su entrada `Generic` al contexto externo (padre). Varios bloques de exportación generan una lista ordenada de valores exportados que la escena padre puede consumir en el mismo orden.

## 💡 Consejos y trucos

* Empareja con `Subsystem In` para recibir los valores exportados dentro de tu escena principal u otro subsistema.
* Usa `Subsystem Enabled` para controlar si un subsistema está activo y, por tanto, si sus exportaciones son relevantes en un momento dado.
* Si necesitas exponer múltiples valores heterogéneos por un único canal de exportación, usa `Mux` dentro del subsistema para agruparlos en una salida estructurada y emplea `Demux` o desempaquetado en la escena padre según sea necesario.
* Para compartir datos de forma persistente o implementar bucles de retroalimentación, considera `Data Write Local` y `Data Read Local` para almacenar y leer datos fuera del mapeo directo de export/import.
* Durante la depuración, enruta los datos exportados a `Debug Input` o a bloques de registro/exportación como `CSV Export` o `Image Logger` (para datos de imagen) para verificar lo que produce el subsistema.
* Mantén explícito el orden de exportación: añade o elimina bloques de exportación en el subsistema con cuidado — el mapeo en la escena padre sigue el orden de los puntos de exportación y el índice numérico te ayudará a verificar la alineación.

## 🛠️ Solución de problemas

* Si la escena padre no recibe el valor esperado, confirma que el número de bloques de exportación dentro del subsistema coincide con el número de puntos de entrada correspondientes en la escena padre.
* Si los tipos de datos parecen no coincidir, asegúrate de que el valor conectado a `Generic` sea del mismo tipo que el padre espera (usa `Data Type Converter` o `Mux` para normalizar los datos antes de exportarlos).
* Mientras pruebas, puedes colocar el bloque en la escena principal para previsualizar salidas directamente y luego moverlo al subsistema una vez que el flujo esté estable.
