

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Générer du code pour les appareils
<a name="managedintegrations-sdk-codegen-generate"></a>

Créez du code C personnalisé pour vos appareils à l'aide des outils de génération de code d'intégration gérés. Cette section décrit comment générer du code à partir de fichiers d'exemple inclus dans le SDK ou à partir de vos propres spécifications. Apprenez à utiliser les scripts de génération, à comprendre le processus de flux de travail et à créer du code adapté aux exigences de votre appareil.

**Topics**
+ [Conditions préalables](#managedintegrations-sdk-codegen-genprereq)
+ [Générer du code pour les fichiers .matter personnalisés](#managedintegrations-sdk-codegen-genspecfile)
+ [Flux de travail de génération de code](#managedintegrations-sdk-codegen-genworkflow)

## Conditions préalables
<a name="managedintegrations-sdk-codegen-genprereq"></a>

1. Python 3.10 ou supérieur.

2. Commencez par un fichier .matter pour générer du code. Le SDK pour appareils finaux fournit deux exemples de fichiers dans le `codgen/matter_files folder` dossier :
+ `custom-air-purifier.matter `
+ `aws_camera.matter`

**Note**  
Ces fichiers d'exemple génèrent du code pour les clusters d'applications de démonstration.

**Générer du code**  
Exécutez cette commande pour générer du code dans le dossier de sortie :

```
bash ./gen-data-model-api.sh
```

## Générer du code pour les fichiers .matter personnalisés
<a name="managedintegrations-sdk-codegen-genspecfile"></a>

Pour générer le code d'un `.matter` fichier spécifique ou fournir votre propre `.matter` fichier, effectuez les tâches suivantes.

**Pour générer le code des fichiers .matter personnalisés**

1. Préparez votre fichier .matter

1. Exécutez la commande de génération :

   ```
   ./codegen.sh [--format] configs/dm_basic.json path-to-matter-file output-directory
   ```

**(Facultatif) Pour générer du code avec un schéma personnalisé**

1. Préparez votre schéma personnalisé au `JSON` format

1. Exécutez la commande de génération :

   ```
   ./codegen.sh [--format] configs/dm_basic.json path-to-matter-file output-directory --custom-schemas-dir path-to-custom-schema-directory
   ```

Les commandes ci-dessus utilisent plusieurs composants pour transformer votre `.matter` fichier en `C` code :
+ `codegen.py`du projet **ConnectedHomeIP**
+ Plugin Python situé à `codegen/py_scripts/iotmi_data_model.py`
+ Modèles Jinja2 à partir du dossier `codegen/py_scripts/templates`

Le plugin définit les variables à transmettre aux modèles Jinja2, qui sont ensuite utilisés pour générer la sortie finale du code C. L'ajout du `--format` drapeau applique le format Clang au code généré.

## Flux de travail de génération de code
<a name="managedintegrations-sdk-codegen-genworkflow"></a>

Le processus de génération de code organise les structures de données de vos fichiers .matter à l'aide de fonctions utilitaires et d'un tri topologique. `topsort.py` Cela garantit un ordre correct des types de données et de leurs dépendances.

Le script combine ensuite les spécifications de votre fichier .matter avec le traitement du plugin Python pour extraire et formater les informations nécessaires. Enfin, il applique le formatage du modèle Jinja2 pour créer la sortie finale du code C.

Ce flux de travail garantit que les exigences spécifiques à votre appareil issues du fichier .matter sont traduites avec précision en code C fonctionnel qui s'intègre au système d'intégrations gérées.