

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creare un manifesto del FleetWise decoder AWS IoT
<a name="create-decoder-manifest"></a>

**Importante**  
L'accesso a determinate FleetWise funzionalità AWS IoT è attualmente limitato. Per ulteriori informazioni, consulta [AWS Disponibilità di aree e funzionalità nell' AWS IoT FleetWise](fleetwise-regions.md).

Puoi utilizzare la FleetWise console o l'API AWS IoT per creare un manifesto di decodifica per il tuo modello di veicolo.

**Topics**
+ [Crea un manifesto di decodifica (console)](#create-decoder-manifest-console)
+ [Create un manifesto del decodificatore ()AWS CLI](#create-decoder-manifest-cli)

## Crea un manifesto di decodifica (console)
<a name="create-decoder-manifest-console"></a>

Puoi utilizzare la FleetWise console AWS IoT per creare un manifesto di decodifica associato al tuo modello di veicolo.

**Importante**  
Non è possibile configurare i segnali dei dati del sistema di visione nei manifesti del decoder utilizzando la console AWS FleetWise IoT. Utilizza invece il. AWS CLI I dati del sistema di visione sono in versione di anteprima e sono soggetti a modifiche.

**Per creare un manifesto del decodificatore**

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

1. <a name="choose-vehicle-models"></a>Nel pannello di navigazione, scegli **Modelli di veicoli**.

1. Scegli il modello di veicolo di destinazione.

1. Nella pagina di riepilogo del modello di veicolo, scegli **Crea manifesto del decoder**, quindi procedi come segue.

**Topics**
+ [Passaggio 1: configura il manifesto del decoder](#configure-decoder-manifest-console)
+ [Fase 2: mappare l'interfaccia CAN](#map-can-interface)
+ [Fase 3: Revisione e creazione](#review-and-create-decoder-manifest-console)

### Passaggio 1: configura il manifesto del decoder
<a name="configure-decoder-manifest-console"></a>

In **Informazioni generali**, procedi come segue.

1. Immettete un nome univoco per il manifesto del decoder.

1. (Opzionale) Immettere una descrizione.

1. Scegli **Next (Successivo)**.

#### Aggiungi interfacce di rete
<a name="add-network-interfaces"></a>

Ogni manifesto del decodificatore deve avere almeno un'interfaccia di rete. È possibile aggiungere più interfacce di rete a un manifesto del decodificatore.

**Per aggiungere un'interfaccia di rete**

1. Caricare un file di interfaccia di rete. È possibile caricare un file.dbc per i protocolli CAN o un file.json per ROS 2 o interfacce personalizzate.

1. Immettete un nome per l'interfaccia di rete. Se hai caricato un'interfaccia personalizzata, il nome è già fornito.

#### Mappa i segnali mancanti
<a name="map-missing-decoders"></a>

Se nel modello del veicolo sono presenti segnali a cui mancano decoder di segnale accoppiati nelle interfacce di rete caricate, puoi creare un decoder personalizzato predefinito che mapperà i segnali mancanti. Questo è facoltativo poiché puoi mappare manualmente i segnali nel passaggio successivo.

**Per creare un decoder personalizzato predefinito**

1. Seleziona **Crea un decoder personalizzato predefinito per i segnali mancanti**.

1. Scegli **Next (Successivo)**.

### Fase 2: mappare l'interfaccia CAN
<a name="map-can-interface"></a>

È possibile mappare i segnali CAN con i decodificatori di segnale CAN. Se è stata selezionata la casella di controllo **Crea un decoder personalizzato predefinito per i segnali mancanti**, tutti i segnali a cui manca un segnale di decodificatore vengono automaticamente mappati sui decoder di segnale personalizzati predefiniti.

**Per mappare i segnali CAN**

1. Nella **mappatura del segnale CAN**, selezionare un decodificatore di segnale.

1. Scegli **Next (Successivo)**.

**Nota**  
Se hai aggiunto un ROS 2 o un'interfaccia personalizzata, puoi verificare le mappature prima di creare il manifesto del decoder.

### Fase 3: Revisione e creazione
<a name="review-and-create-decoder-manifest-console"></a>

**Verificate le configurazioni per il manifesto del decodificatore, quindi scegliete Crea.**

## Create un manifesto del decodificatore ()AWS CLI
<a name="create-decoder-manifest-cli"></a>

È possibile utilizzare l'operazione [CreateDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateDecoderManifest.html)API per creare manifesti del decodificatore. Gli esempi seguenti utilizzano AWS CLI. 

**Importante**  
È necessario disporre di un modello di veicolo prima di poter creare un manifesto di decodifica. Ogni manifesto di decodifica deve essere associato a un modello di veicolo. Per ulteriori informazioni, consulta [Crea un modello di FleetWise veicolo AWS IoT](create-vehicle-model.md).

Per creare un manifesto del decodificatore, eseguite il comando seguente.

Sostituisci *decoder-manifest-configuration* con il nome del file.json che contiene la configurazione.

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

### Manifesto del decoder con configurazione dell'interfaccia CAN
<a name="decoder-manifest-configuration"></a>
+ Sostituisci *decoder-manifest-name* con il nome del manifesto del decoder che stai creando.
+ Sostituisci *vehicle-model-ARN* con l'Amazon Resource Name (ARN) del modello di veicolo.
+ (Facoltativo) *description* Sostituiscilo con una descrizione per aiutarti a identificare il manifesto del decoder.

Per ulteriori informazioni su come configurare rami, attributi, sensori e attuatori, vedere. [Configurazione delle interfacce FleetWise di rete AWS IoT e dei segnali di decodifica](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 del decoder con configurazione dell'interfaccia middleware del veicolo
<a name="decoder-manifest-vehicle-middleware-configuration"></a>
+ *decoder-manifest-name*Sostituiscilo con il nome del manifesto del decoder che stai creando.
+ Sostituisci *vehicle-model-ARN* con l'Amazon Resource Name (ARN) del modello di veicolo.
+ (Facoltativo) *description* Sostituiscilo con una descrizione per aiutarti a identificare il manifesto del decoder.

L'ordine dei nodi di proprietà all'interno di una struttura (struttura) deve rimanere coerente come definito nel catalogo dei segnali e nel modello del veicolo (manifesto del modello). Per ulteriori informazioni su come configurare rami, attributi, sensori e attuatori, vedere[Configurazione delle interfacce FleetWise di rete AWS IoT e dei segnali di decodifica](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 del decoder con configurazione personalizzata del decoder
<a name="decoder-manifest-custom-decoder-config"></a>
+ Sostituiscilo *decoder-manifest-name* con il nome del manifesto del decoder che stai creando.
+ Sostituisci *vehicle-model-ARN* con l'Amazon Resource Name (ARN) del modello di veicolo.
+ (Facoltativo) *description* Sostituiscilo con una descrizione per aiutarti a identificare il manifesto del decoder.

Per ulteriori informazioni su come configurare rami, attributi, sensori e attuatori, vedere. [Configurazione delle interfacce FleetWise di rete AWS IoT e dei segnali di decodifica](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**  
È possibile scaricare uno [script dimostrativo](https://raw.githubusercontent.com/aws/aws-iot-fleetwise-edge/main/tools/cloud/ros2-to-decoders.py) per creare un manifesto di decodifica con i segnali del sistema di visione. Per ulteriori informazioni, consulta 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).  
I dati del sistema Vision sono in versione di anteprima e sono soggetti a modifiche.

Se hai [abilitato la crittografia](key-management.md) utilizzando una AWS KMS chiave gestita dal cliente, includi la seguente dichiarazione sulla politica in modo che il tuo ruolo possa richiamare il funzionamento dell'`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"
            ]
        }
    ]
}
```

------