> 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/input-output/outputs-exports/csv-export.md).

# CSV Export

Ce bloc fonction collecte des colonnes de données entrantes au fil du temps et les enregistre dans un fichier CSV sur demande. Utilisez-le pour constituer des journaux de données simples (mesures, compteurs, étiquettes) et les exporter pour analyse ou archivage.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

* `Folder Path` Dossier où le fichier CSV sera enregistré (utilise le dossier courant si non renseigné)
* `File Name` Nom de fichier à utiliser pour le CSV exporté (nom horodaté par défaut si non renseigné)
* `Start Logging` Déclencheur booléen pour commencer à ajouter les données entrantes dans le tampon interne de journalisation
* `Export File` Déclencheur booléen pour écrire les données accumulées dans le fichier CSV
* `Data_1` ... `Data_10` Colonnes de données génériques qui seront stockées (seules les colonnes connectées sont enregistrées)

## 📤 Sorties <a href="#outputs" id="outputs"></a>

* Ce bloc fonction ne produit aucune sortie.

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

* `Header fields` Dix champs texte où vous pouvez fournir des noms de colonnes lisibles pour les entrées correspondantes `Data_1` ... `Data_10`. Laissez un champ vide pour utiliser le label par défaut `Data_n`.
* `Start Logging` entrée Utilisée pour activer la journalisation des valeurs entrantes dans le tampon interne.
* `Export File` entrée Utilisée pour vider les lignes tamponnées dans un fichier CSV sur le disque.

## 🎯 Fonctionnalités <a href="#features" id="features"></a>

* Horodatage automatique par ligne (l'heure est ajoutée en première colonne).
* Colonnes flexibles : seules les entrées `Data_n` connectées sont incluses dans le CSV.
* Gestion des en-têtes : si vous modifiez les champs d'en-tête, la ligne d'en-tête du CSV existant est mise à jour automatiquement (si le fichier existe déjà).
* Journalisation tamponnée : les lignes sont stockées en interne pendant que `Start Logging` est actif et ne sont écrites que lorsque `Export File` est déclenché.
* Écriture sécurisée : des avertissements et erreurs sont affichés dans l'interface si le fichier est ouvert ailleurs ou si l'écriture échoue.

## 📝 Comment l'utiliser <a href="#usage" id="usage"></a>

1. Définissez la destination en utilisant les entrées `Folder Path` et `File Name` (optionnel).
2. Fournissez des noms de colonnes lisibles dans les `Header fields` pour les prises `Data_n` que vous allez connecter.
3. Connectez les sources de données aux entrées correspondantes `Data_1` ... `Data_10` (n'utilisez que les entrées nécessaires).
4. Pilotez `Start Logging` avec un signal booléen (par exemple via un bloc `Logic Input`) pour commencer à mettre en tampon les lignes.
5. Lorsque vous êtes prêt, activez l'entrée `Export File` pour enregistrer les lignes tamponnées sur le disque. Le bloc ajoutera ou mettra à jour automatiquement l'en-tête CSV.

## 📊 Comportement <a href="#evaluation" id="evaluation"></a>

* Tant que `Start Logging` est actif, le bloc capture l'horodatage courant et les valeurs de toutes les prises de données connectées dans une liste interne.
* Lorsque `Export File` devient vrai, le bloc écrit les lignes accumulées dans le fichier CSV à l'emplacement `Folder Path` + `File Name`. Après un export réussi, le tampon interne est vidé.

## 💡 Conseils et astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Utilisez des blocs `Date-Time` ou `Date-Time List` pour construire des noms de fichiers significatifs ou pour alimenter des colonnes supplémentaires liées au temps en plus de l'horodatage automatique.
* Utilisez `Logic Input` pour contrôler manuellement `Start Logging` et `Export File` depuis l'interface.
* Pour des mesures numériques, utilisez `Number Input` ou des blocs mathématiques (comme `Add`, `Subtract`) en amont pour préparer les valeurs avant de les connecter aux entrées `Data_n`.
* Pour des étiquettes ou ID textuels, utilisez `String Input` ou `String Merge` pour combiner des champs texte avant de les envoyer à une entrée `Data_n`.
* Pour exporter des méta-données liées aux images (par ex. nombre de frames, nombres de détections), connectez des blocs d'analyse pertinents comme `Object Detection`, `Mask Detection` ou `Find Object` aux entrées génériques `Data_n`.
* Si vous voulez sauvegarder des images en parallèle des journaux numériques, utilisez `Image Logger` ou `Image Write` et conservez le CSV pour les métadonnées numériques/textuelles uniquement.
* Utilisez `CSV Export` avec `Scope` pour visualiser des flux numériques puis enregistrez les données une fois les événements d'intérêt vérifiés.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Fichier non enregistré / erreur de permission : assurez-vous que le fichier CSV n'est pas ouvert dans un autre programme et que vous disposez des droits d'écriture pour le dossier sélectionné. Lancez l'application avec les privilèges nécessaires si besoin.
* Aucune donnée exportée : vérifiez que vous avez activé `Start Logging` au moins une fois afin que le tampon interne contienne des lignes avant de déclencher `Export File`. Le bloc avertira s'il n'y a pas de données stockées lors de la demande d'export.
* Mauvaises colonnes dans le CSV : confirmez quelles prises `Data_n` sont connectées et ajustez les champs `Header fields`. Le bloc n'inclut que les entrées connectées et met à jour l'en-tête lorsque vous changez le texte des champs.
