

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gere código para dispositivos
<a name="managedintegrations-sdk-codegen-generate"></a>

Crie código C personalizado para seus dispositivos usando as ferramentas de geração de código de integrações gerenciadas. Esta seção descreve como gerar código a partir de arquivos de amostra incluídos no SDK ou a partir de suas próprias especificações. Aprenda a usar os scripts de geração, entender o processo de fluxo de trabalho e criar um código que atenda aos requisitos do seu dispositivo.

**Topics**
+ [Pré-requisitos](#managedintegrations-sdk-codegen-genprereq)
+ [Gere código para arquivos.matter personalizados](#managedintegrations-sdk-codegen-genspecfile)
+ [fluxo de trabalho de geração de código](#managedintegrations-sdk-codegen-genworkflow)

## Pré-requisitos
<a name="managedintegrations-sdk-codegen-genprereq"></a>

1. Python 3.10 ou superior.

2. Comece com um arquivo.matter para geração de código. O SDK do dispositivo final fornece dois arquivos de amostra no`codgen/matter_files folder`:
+ `custom-air-purifier.matter `
+ `aws_camera.matter`

**nota**  
Esses arquivos de amostra geram código para clusters de aplicativos de demonstração.

**Gerar código**  
Execute este comando para gerar código na pasta out:

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

## Gere código para arquivos.matter personalizados
<a name="managedintegrations-sdk-codegen-genspecfile"></a>

Para gerar o código para um `.matter` arquivo específico ou fornecer seu próprio `.matter` arquivo, execute as tarefas a seguir.

**Para gerar o código para arquivos.matter personalizados**

1. Prepare seu arquivo.matter

1. Execute o comando de geração:

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

**(Opcional) Para gerar código com esquema personalizado**

1. Prepare seu esquema personalizado em formato `JSON`

1. Execute o comando de geração:

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

Os comandos acima usam vários componentes para transformar seu `.matter` arquivo em `C` código:
+ `codegen.py`do projeto **ConnectedHomeIP**
+ Plugin Python localizado em `codegen/py_scripts/iotmi_data_model.py`
+ Modelos Jinja2 da pasta `codegen/py_scripts/templates`

O plug-in define as variáveis a serem passadas para os modelos Jinja2, que são então usados para gerar a saída final do código C. Adicionar a `--format` bandeira aplica o formato Clang ao código gerado.

## fluxo de trabalho de geração de código
<a name="managedintegrations-sdk-codegen-genworkflow"></a>

O processo de geração de código organiza suas estruturas de dados de arquivos.matter usando funções utilitárias e classificação topológica. `topsort.py` Isso garante a ordenação adequada dos tipos de dados e suas dependências.

Em seguida, o script combina as especificações do arquivo.matter com o processamento do plug-in Python para extrair e formatar as informações necessárias. Finalmente, ele aplica a formatação do modelo Jinja2 para criar a saída final do código C.

Esse fluxo de trabalho garante que os requisitos específicos do dispositivo do arquivo.matter sejam traduzidos com precisão em um código C funcional que se integre ao sistema de integrações gerenciadas.