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

# Subsystem In

Ce bloc sert à importer une valeur depuis un scénario parent vers un subsystem (une scène imbriquée) et à la rendre disponible pour les blocs à l'intérieur de ce subsystem. Il fonctionne comme un port d'entrée numéroté pour le subsystem et se synchronise automatiquement avec les entrées du scénario parent.

## 📥 Inputs

Ce bloc ne déclare pas d'entrées directes (il reçoit les données depuis le scénario parent plutôt que depuis des sockets locaux).

## 📤 Outputs

`Generic`\
Cette sortie fournit la valeur fournie par le scénario parent. À l'intérieur du subsystem, connectez cette sortie aux blocs qui ont besoin de la donnée fournie par le parent.

## 🕹️ Controls

`Title`\
Le bloc affiche un numéro qui identifie sa position parmi les entrées du subsystem (par ex. 1, 2, 3).

`Scene Index`\
Chaque bloc se voit attribuer un index de scène qui détermine à quelle entrée du parent il est mappé. Le titre affiché reflète cet index.

Remarque : la numérotation est gérée automatiquement. Lorsque vous ajoutez, supprimez ou réordonnez des blocs d'entrée du subsystem, leurs numéros affichés se mettent à jour pour correspondre à l'ordre.

## ⚙️ Mécanisme d'exécution

* Lors de l'exécution du subsystem, chaque bloc `Subsystem In` fournit la valeur provenant de l'entrée correspondante du scénario parent.
* Dans le scénario principal (parent), l'entrée correspondante fournit la donnée qui circule vers l'entrée du subsystem.
* Le bloc maintient sa correspondance synchronisée avec le scénario parent afin que le subsystem reçoive la bonne entrée même si des entrées sont ajoutées ou réordonnées dans le parent.
* Le bloc fonctionne dans des contextes de test ou avec mémoire (le système adapte le comportement selon que le subsystem est exécuté seul ou embarqué).

## 🎯 Features

* Numérotation automatique et mappage d'index pour identifier facilement les entrées du subsystem.
* Synchronisation dynamique avec les entrées du parent — les types de socket et l'ordre suivent automatiquement le scénario parent.
* Fonctionne de manière transparente avec les modes subsystem activé/désactivé (lorsque vous utilisez le mécanisme d'activation du subsystem, le comportement des entrées s'adapte).
* Conçu pour être léger et non redimensionnable afin d'offrir une disposition compacte de contrôle de flux.

## 📝 How to use

1. Placez un subsystem et ouvrez sa scène enfant.
2. Ajoutez un ou plusieurs blocs `Subsystem In` à l'intérieur de la scène enfant. Chacun apparaîtra avec un numéro (1, 2, ...) indiquant à quelle entrée du parent il est mappé.
3. Dans le scénario parent, fournissez des données aux sockets d'entrée correspondantes du subsystem. Ces données seront disponibles via la sortie `Generic` à l'intérieur du subsystem.
4. À l'intérieur du subsystem, connectez la sortie `Generic` aux autres blocs qui ont besoin de la valeur fournie par le parent.

## 💡 Tips and Tricks

* Utilisez-le avec `Subsystem Out` pour renvoyer des résultats du subsystem vers le scénario parent.
* Combinez avec `Subsystem Enabled` lorsque vous avez besoin d'une exécution conditionnelle ou activable du subsystem ; le comportement des entrées s'adapte lorsque le subsystem est activé/désactivé.
* Si vous voulez préserver ou figer une valeur d'entrée à l'intérieur du subsystem, associez la sortie `Generic` avec `Data Memory` pour conserver la valeur entre les exécutions.
* Pour déboguer ou inspecter ce que le parent envoie au subsystem, alimentez la sortie `Generic` dans `Debug Input` ou affichez-la avec des blocs de visualisation/sortie appropriés.
* Pour transmettre des valeurs de configuration (nombres, texte ou booléens) depuis le parent, utilisez des blocs côté parent comme `Number Input`, `String Input` ou `Logic Input` et mappez-les via les `Subsystem In` correspondants dans la scène enfant.

## 🛠️ Troubleshooting

* Si un bloc `Subsystem In` affiche un numéro inattendu, essayez d'ajouter ou de retirer d'autres entrées du subsystem ; la numérotation se met à jour automatiquement.
* Si le subsystem ne reçoit pas de valeurs, assurez-vous que le scénario parent fournit des données sur la socket d'entrée correspondante et que le subsystem est correctement ajouté au parent.
* Si les types de socket doivent changer, le système synchronisera les ports enfants pour correspondre au parent — reconnectez les flux après des changements majeurs pour confirmer le comportement correct.
