

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á.

# Crie um manifesto AWS do decodificador de IoT FleetWise
<a name="create-decoder-manifest"></a>

**Importante**  
O acesso a determinados FleetWise recursos de AWS IoT está atualmente bloqueado. Para obter mais informações, consulte [AWS Disponibilidade de regiões e recursos na AWS IoT FleetWise](fleetwise-regions.md).

Você pode usar o FleetWise console de AWS IoT ou a API para criar um manifesto de decodificador para o modelo do seu veículo.

**Topics**
+ [

## Criar um manifesto do decodificador (console)
](#create-decoder-manifest-console)
+ [

## Criar um manifesto do decodificador (AWS CLI)
](#create-decoder-manifest-cli)

## Criar um manifesto do decodificador (console)
<a name="create-decoder-manifest-console"></a>

Você pode usar o FleetWise console de AWS IoT para criar um manifesto do decodificador associado ao modelo do seu veículo.

**Importante**  
Você não pode configurar sinais de dados do sistema de visão em manifestos de decodificadores usando o console de IoT AWS . FleetWise Use a AWS CLI em vez disso. O recurso de dados de sistemas de visão está na versão de teste e está sujeito a alterações.

**Para criar um manifesto do decodificador**

1. <a name="fleetwise-open-console"></a>Abra o console [AWS de IoT. FleetWise ](https://console.aws.amazon.com/iotfleetwise)

1. <a name="choose-vehicle-models"></a>No painel de navegação, selecione **Modelos de veículos**.

1. Selecione o modelo de veículo de destino.

1. Na página de resumo do modelo do veículo, selecione **Criar manifesto do decodificador** e faça o seguinte.

**Topics**
+ [

### Etapa 1: configurar o manifesto do decodificador
](#configure-decoder-manifest-console)
+ [

### Etapa 2: Mapear a interface CAN
](#map-can-interface)
+ [

### Etapa 3: revisar e criar
](#review-and-create-decoder-manifest-console)

### Etapa 1: configurar o manifesto do decodificador
<a name="configure-decoder-manifest-console"></a>

Em **Informações gerais**, faça o seguinte:

1. Insira um nome exclusivo para o manifesto do decodificador.

1. (Opcional) Insira uma descrição.

1. Escolha **Próximo**.

#### Adicionar interfaces de rede
<a name="add-network-interfaces"></a>

Cada manifesto do decodificador deve ter pelo menos uma interface de rede. Você pode adicionar várias interfaces de rede a um manifesto do decodificador.

**Adicionar uma interface de rede**

1. Faça upload de um arquivo de interface de rede. Você pode carregar um arquivo.dbc para protocolos CAN ou um arquivo.json para ROS 2 ou interfaces personalizadas.

1. Insira um nome para sua interface de rede. Se você fez upload de uma interface personalizada, o nome já foi fornecido.

#### Mapeie os sinais ausentes
<a name="map-missing-decoders"></a>

Se houver sinais no modelo do veículo sem decodificadores de sinal emparelhados nas interfaces de rede carregadas, você poderá criar um decodificador personalizado padrão que mapeará os sinais ausentes. Isso é opcional, pois você pode mapear manualmente os sinais na próxima etapa.

**Para criar um decodificador personalizado padrão**

1. Selecione **Criar decodificador personalizado padrão para sinais perdidos**.

1. Escolha **Próximo**.

### Etapa 2: Mapear a interface CAN
<a name="map-can-interface"></a>

Você pode mapear os sinais CAN com decodificadores de sinal CAN. Se você marcou a caixa de seleção **Criar decodificador personalizado padrão para sinais ausentes**, todos os sinais que não tiverem um sinal de decodificador serão automaticamente mapeados para decodificadores de sinal personalizados padrão.

**Para mapear sinais CAN**

1. No **mapeamento de sinal CAN**, selecione um decodificador de sinal.

1. Escolha **Próximo**.

**nota**  
Se você adicionou um ROS 2 ou uma interface personalizada, você pode verificar os mapeamentos antes de criar o manifesto do decodificador.

### Etapa 3: revisar e criar
<a name="review-and-create-decoder-manifest-console"></a>

Verifique as configurações do manifesto do decodificador e selecione **Criar.**

## Criar um manifesto do decodificador (AWS CLI)
<a name="create-decoder-manifest-cli"></a>

Você pode usar a operação da [CreateDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateDecoderManifest.html)API para criar manifestos do decodificador. O exemplo a seguir usa a AWS CLI. 

**Importante**  
Você deve ter um modelo de veículo antes de poder criar um manifesto do decodificador. Cada manifesto do decodificador deve estar associado a um modelo de veículo. Para obter mais informações, consulte [Crie um modelo de AWS veículo de IoT FleetWise](create-vehicle-model.md).

Para criar um manifesto do decodificador, execute o seguinte comando.

*decoder-manifest-configuration*Substitua pelo nome do arquivo.json que contém a configuração.

```
aws iotfleetwise create-decoder-manifest --cli-input-json file://decoder-manifest-configuration.json
```

### Manifesto do decodificador com configuração de interface CAN
<a name="decoder-manifest-configuration"></a>
+ *decoder-manifest-name*Substitua pelo nome do manifesto do decodificador que você está criando.
+ *vehicle-model-ARN*Substitua pelo Amazon Resource Name (ARN) do modelo do veículo.
+ (Opcional) *description* Substitua por uma descrição para ajudá-lo a identificar o manifesto do decodificador.

Para obter mais informações sobre como configurar ramificações, atributos, sensores e atuadores, consulte [Configurar interfaces de FleetWise rede AWS de IoT e sinais de decodificador](configure-network-interfaces-decoder-signals.md).

```
{
    "name": "decoder-manifest-name",
    "modelManifestArn": "vehicle-model-arn",
    "description": "description",
    "networkInterfaces": [
        {
            "canInterface": {
                "name": "myNetworkInterface",
                "protocolName": "CAN",
                "protocolVersion": "2.0b"
            },
            "interfaceId": "Qq1acaenByOB3sSM39SYm",
            "type": "CAN_INTERFACE"
        }
    ],
    "signalDecoders": [
        {
            "canSignal": {
                "name": "Engine_Idle_Time",
                "factor": 1,
                "isBigEndian": true,
                "isSigned": false,
                "length": 24,
                "messageId": 271343712,
                "offset": 0,
                "startBit": 16
            },
            "fullyQualifiedName": "Vehicle.EngineIdleTime",
            "interfaceId": "Qq1acaenByOB3sSM39SYm",
            "type": "CAN_SIGNAL"
        },
        {
            "canSignal": {
                "name": "Engine_Run_Time",
                "factor": 1,
                "isBigEndian": true,
                "isSigned": false,
                "length": 24,
                "messageId": 271343712,
                "offset": 0,
                "startBit": 40
            },
            "fullyQualifiedName": "Vehicle.EngineRunTime",
            "interfaceId": "Qq1acaenByOB3sSM39SYm",
            "type": "CAN_SIGNAL"
        }
    ]
}
```

### Manifesto do decodificador com configuração da interface de middleware do veículo
<a name="decoder-manifest-vehicle-middleware-configuration"></a>
+ *decoder-manifest-name*Substitua pelo nome do manifesto do decodificador que você está criando.
+ *vehicle-model-ARN*Substitua pelo Amazon Resource Name (ARN) do modelo do veículo.
+ (Opcional) *description* Substitua por uma descrição para ajudá-lo a identificar o manifesto do decodificador.

A ordem dos nós de propriedade dentro de uma estrutura (struct) deve permanecer consistente conforme definido no catálogo de sinais e no modelo do veículo (manifesto do modelo). Para obter mais informações sobre como configurar ramificações, atributos, sensores e atuadores, consulte [Configurar interfaces de FleetWise rede AWS de IoT e sinais de decodificador](configure-network-interfaces-decoder-signals.md).

```
{
	"name": "decoder-manifest-name",
	"modelManifestArn": "vehicle-model-arn",
	"description": "description",
	"networkInterfaces": [{
		"canInterface": {
			"name": "myNetworkInterface",
			"protocolName": "CAN",
			"protocolVersion": "2.0b"
		},
		"interfaceId": "Qq1acaenByOB3sSM39SYm",
		"type": "CAN_INTERFACE"
	}, {
		"type": "VEHICLE_MIDDLEWARE",
		"interfaceId": "G1KzxkdnmV5Hn7wkV3ZL9",
		"vehicleMiddleware": {
			"name": "ROS2_test",
			"protocolName": "ROS_2"
		}
	}],
	"signalDecoders": [{
			"canSignal": {
				"name": "Engine_Idle_Time",
				"factor": 1,
				"isBigEndian": true,
				"isSigned": false,
				"length": 24,
				"messageId": 271343712,
				"offset": 0,
				"startBit": 16
			},
			"fullyQualifiedName": "Vehicle.EngineIdleTime",
			"interfaceId": "Qq1acaenByOB3sSM39SYm",
			"type": "CAN_SIGNAL"
		},
		{
			"canSignal": {
				"name": "Engine_Run_Time",
				"factor": 1,
				"isBigEndian": true,
				"isSigned": false,
				"length": 24,
				"messageId": 271343712,
				"offset": 0,
				"startBit": 40
			},
			"fullyQualifiedName": "Vehicle.EngineRunTime",
			"interfaceId": "Qq1acaenByOB3sSM39SYm",
			"type": "CAN_SIGNAL"
		},
		{
			"fullyQualifiedName": "Vehicle.CompressedImageTopic",
			"type": "MESSAGE_SIGNAL",
			"interfaceId": "G1KzxkdnmV5Hn7wkV3ZL9",
			"messageSignal": {
				"topicName": "CompressedImageTopic:sensor_msgs/msg/CompressedImage",
				"structuredMessage": {
					"structuredMessageDefinition": [{
							"fieldName": "header",
							"dataType": {
								"structuredMessageDefinition": [{
										"fieldName": "stamp",
										"dataType": {
											"structuredMessageDefinition": [{
													"fieldName": "sec",
													"dataType": {
														"primitiveMessageDefinition": {
															"ros2PrimitiveMessageDefinition": {
																"primitiveType": "INT32"
															}
														}
													}
												},
												{
													"fieldName": "nanosec",
													"dataType": {
														"primitiveMessageDefinition": {
															"ros2PrimitiveMessageDefinition": {
																"primitiveType": "UINT32"
															}
														}
													}
												}
											]
										}
									},
									{
										"fieldName": "frame_id",
										"dataType": {
											"primitiveMessageDefinition": {
												"ros2PrimitiveMessageDefinition": {
													"primitiveType": "STRING"
												}
											}
										}
									}
								]
							}
						},
						{
							"fieldName": "format",
							"dataType": {
								"primitiveMessageDefinition": {
									"ros2PrimitiveMessageDefinition": {
										"primitiveType": "STRING"
									}
								}
							}
						},
						{
							"fieldName": "data",
							"dataType": {
								"structuredMessageListDefinition": {
									"name": "listType",
									"memberType": {
										"primitiveMessageDefinition": {
											"ros2PrimitiveMessageDefinition": {
												"primitiveType": "UINT8"
											}
										}
									},
									"capacity": 0,
									"listType": "DYNAMIC_UNBOUNDED_CAPACITY"
								}
							}
						}
					]
				}
			}
		}
	]
}
```

### Manifesto do decodificador com configuração personalizada do decodificador
<a name="decoder-manifest-custom-decoder-config"></a>
+ *decoder-manifest-name*Substitua pelo nome do manifesto do decodificador que você está criando.
+ *vehicle-model-ARN*Substitua pelo Amazon Resource Name (ARN) do modelo do veículo.
+ (Opcional) *description* Substitua por uma descrição para ajudá-lo a identificar o manifesto do decodificador.

Para obter mais informações sobre como configurar ramificações, atributos, sensores e atuadores, consulte [Configurar interfaces de FleetWise rede AWS de IoT e sinais de decodificador](configure-network-interfaces-decoder-signals.md).

```
{
	"name": "decoder-manifest-name",
	"modelManifestArn": "vehicle-model-arn",
	"description": "description",
	"networkInterfaces": [
        {
		    "interfaceId": "myCustomInterfaceId",
		    "type": "CUSTOM_DECODING_INTERFACE",
            "customDecodingInterface": {
                "name": "myCustomInterface"
            }
        }
    ],
    "signalDecoders": [
        {
            "customDecodingSignal": {
                "fullyQualifiedName": "Vehicle.actuator1",
                "interfaceId": "myCustomInterfaceId",
                "type": "CUSTOM_DECODING_SIGNAL",
                "customDecodingSignal": {
                    "id": "Vehicle.actuator1"
                }
            }
        },
        {
            "customDecodingSignal": {
                "fullyQualifiedName": "Vehicle.actuator2",
                "interfaceId": "myCustomInterfaceId",
                "type": "CUSTOM_DECODING_SIGNAL",
                "customDecodingSignal": {
                    "id": "Vehicle.actuator2"
                }
            }
        }
    ]
}
```

**nota**  
Você pode baixar um [script de demonstração](https://raw.githubusercontent.com/aws/aws-iot-fleetwise-edge/main/tools/cloud/ros2-to-decoders.py) para criar um manifesto do decodificador com sinais de sistemas de visão. Para ter mais informações, consulte o [https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/vision-system-data/vision-system-data-demo.ipynb](https://github.com/aws/aws-iot-fleetwise-edge/blob/main/docs/dev-guide/vision-system-data/vision-system-data-demo.ipynb).  
O recurso de dados de sistemas de visão está na versão de teste e está sujeito a alterações.

Se você [ativou a criptografia](key-management.md) usando uma AWS KMS chave gerenciada pelo cliente, inclua a seguinte declaração de política para que sua função possa invocar a operação da `CreateDecoderManifest` API. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey*",
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111122223333:key/KMS_KEY_ID"
            ]
        }
    ]
}
```

------