

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Crea un manifiesto de FleetWise decodificador de AWS IoT
<a name="create-decoder-manifest"></a>

**importante**  
El acceso a ciertas FleetWise funciones de AWS IoT está actualmente restringido. Para obtener más información, consulte [AWS Disponibilidad regional y de funciones en el AWS IoT FleetWise](fleetwise-regions.md).

Puedes usar la FleetWise consola de AWS IoT o la API para crear un manifiesto de decodificador para tu modelo de vehículo.

**Topics**
+ [Creación de un manifiesto del decodificador (consola)](#create-decoder-manifest-console)
+ [Creación de un manifiesto del decodificador (AWS CLI)](#create-decoder-manifest-cli)

## Creación de un manifiesto del decodificador (consola)
<a name="create-decoder-manifest-console"></a>

Puedes usar la FleetWise consola de AWS IoT para crear un manifiesto de decodificador asociado al modelo de tu vehículo.

**importante**  
No se pueden configurar las señales de datos del sistema de visión en los manifiestos del decodificador mediante la FleetWise consola de AWS IoT. En su lugar, utilice el AWS CLI. Los datos de sistemas de visión están en versión de vista previa y sujetos a cambios.

**Para crear un manifiesto del decodificador**

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

1. <a name="choose-vehicle-models"></a>En el panel de navegación, elija **Modelos de vehículo**.

1. Elija el modelo de vehículo de destino.

1. En la página de resumen del modelo de vehículo, elija **Crear manifiesto del decodificador** y, a continuación, haga lo siguiente.

**Topics**
+ [Paso 1: Configurar el manifiesto del decodificador](#configure-decoder-manifest-console)
+ [Paso 2: Mapear la interfaz CAN](#map-can-interface)
+ [Paso 3: Revisar y crear](#review-and-create-decoder-manifest-console)

### Paso 1: Configurar el manifiesto del decodificador
<a name="configure-decoder-manifest-console"></a>

En la sección **Información general**, haga lo siguiente:

1. Escriba un nombre único para el manifiesto del decodificador.

1. (Opcional) Introduzca una descripción.

1. Elija **Siguiente**.

#### Agregue interfaces de red
<a name="add-network-interfaces"></a>

Cada manifiesto del decodificador debe tener al menos una interfaz de red. Puede agregar varias interfaces de red a un manifiesto del decodificador.

**Creación de una interfaz de red**

1. Cargue un archivo de interfaz de red. Puede cargar un archivo.dbc para los protocolos CAN o un archivo.json para ROS 2 o interfaces personalizadas.

1. Introduzca un nombre para la interfaz de red. Si ha cargado una interfaz personalizada, ya se ha proporcionado el nombre.

#### Mapee las señales faltantes
<a name="map-missing-decoders"></a>

Si hay señales en el modelo de vehículo a las que les faltan decodificadores de señal emparejados en las interfaces de red cargadas, puede crear un decodificador personalizado predeterminado que mapee las señales faltantes. Esto es opcional, ya que puede mapear las señales manualmente en el siguiente paso.

**Para crear un decodificador personalizado predeterminado**

1. Seleccione **Crear un decodificador personalizado predeterminado para las señales que faltan**.

1. Elija **Siguiente**.

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

Puede mapear las señales CAN con decodificadores de señales CAN. Si ha seleccionado la casilla **Crear un decodificador personalizado predeterminado para las señales ausentes**, cualquier señal a la que le falte una señal del decodificador se mapea automáticamente a los decodificadores de señales personalizados predeterminados.

**Para mapear señales CAN**

1. En el **mapeo de señales CAN**, seleccione un decodificador de señales.

1. Elija **Siguiente**.

**nota**  
Si ha añadido una ROS 2 o una interfaz personalizada, puede verificar las asignaciones antes de crear el manifiesto del decodificador.

### Paso 3: Revisar y crear
<a name="review-and-create-decoder-manifest-console"></a>

Compruebe las configuraciones del manifiesto del decodificador y, a continuación, elija **Crear**.

## Creación de un manifiesto del decodificador (AWS CLI)
<a name="create-decoder-manifest-cli"></a>

Puede utilizar la operación de la [CreateDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateDecoderManifest.html)API para crear los manifiestos del decodificador. El siguiente ejemplo utiliza AWS CLI. 

**importante**  
Para poder crear un manifiesto del decodificador, debe disponer de un modelo de vehículo. Cada manifiesto del decodificador debe estar asociado a un modelo de vehículo. Para obtener más información, consulte [Cree un modelo AWS de FleetWise vehículo de IoT](create-vehicle-model.md).

Para crear un manifiesto del decodificador, ejecute el siguiente comando:

*decoder-manifest-configuration*Sustitúyalo por el nombre del archivo.json que contiene la configuración.

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

### Manifiesto del decodificador con configuración de interfaz CAN
<a name="decoder-manifest-configuration"></a>
+ *decoder-manifest-name*Sustitúyalo por el nombre del manifiesto del decodificador que estás creando.
+ *vehicle-model-ARN*Sustitúyalo por el nombre de recurso de Amazon (ARN) del modelo de vehículo.
+ (Opcional) *description* Sustitúyalo por una descripción que le ayude a identificar el manifiesto del decodificador.

Para obtener más información acerca de cómo configurar ramificaciones, atributos, sensores y actuadores, consulte [Configure AWS las interfaces FleetWise de red de IoT y las señales del 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"
        }
    ]
}
```

### Manifiesto del decodificador con configuración de interfaz del middleware del vehículo
<a name="decoder-manifest-vehicle-middleware-configuration"></a>
+ *decoder-manifest-name*Sustitúyalo por el nombre del manifiesto del decodificador que estás creando.
+ *vehicle-model-ARN*Sustitúyalo por el nombre de recurso de Amazon (ARN) del modelo de vehículo.
+ (Opcional) *description* Sustitúyalo por una descripción que le ayude a identificar el manifiesto del decodificador.

El orden de los nodos de propiedades dentro de una estructura debe permanecer coherente, tal como se define en el catálogo de señales y en el modelo del vehículo (manifiesto del modelo). Para obtener más información acerca de cómo configurar ramificaciones, atributos, sensores y actuadores, consulte [Configure AWS las interfaces FleetWise de red de IoT y las señales del 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"
								}
							}
						}
					]
				}
			}
		}
	]
}
```

### Manifiesto del decodificador con una configuración de decodificador personalizada
<a name="decoder-manifest-custom-decoder-config"></a>
+ *decoder-manifest-name*Sustitúyalo por el nombre del manifiesto del decodificador que estás creando.
+ *vehicle-model-ARN*Sustitúyalo por el nombre de recurso de Amazon (ARN) del modelo de vehículo.
+ (Opcional) *description* Sustitúyalo por una descripción que le ayude a identificar el manifiesto del decodificador.

Para obtener más información acerca de cómo configurar ramificaciones, atributos, sensores y actuadores, consulte [Configure AWS las interfaces FleetWise de red de IoT y las señales del 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**  
Puede descargar un [script de demostración](https://raw.githubusercontent.com/aws/aws-iot-fleetwise-edge/main/tools/cloud/ros2-to-decoders.py) para crear un manifiesto del decodificador con las señales del sistema de visión. Para obtener más información, consulte la [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).  
Los datos de sistemas de visión están en versión de vista previa y sujetos a cambios.

Si [habilitaste el cifrado](key-management.md) con una AWS KMS clave gestionada por el cliente, incluye la siguiente declaración de política para que tu función pueda invocar la operación de la `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"
            ]
        }
    ]
}
```

------