

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 an AWS IoT FleetWise 解碼器資訊清單
<a name="create-decoder-manifest"></a>

**重要**  
對特定 AWS IoT FleetWise 功能的存取目前受到鎖定。如需詳細資訊，請參閱[AWS AWS IoT FleetWise 中的區域和功能可用性](fleetwise-regions.md)。

您可以使用 AWS IoT FleetWise 主控台或 API 為您的車輛模型建立解碼器資訊清單。

**Topics**
+ [建立解碼器資訊清單 （主控台）](#create-decoder-manifest-console)
+ [建立解碼器資訊清單 (AWS CLI)](#create-decoder-manifest-cli)

## 建立解碼器資訊清單 （主控台）
<a name="create-decoder-manifest-console"></a>

您可以使用 AWS IoT FleetWise 主控台來建立與您的車輛模型相關聯的解碼器資訊清單。

**重要**  
您不能使用 AWS IoT FleetWise 主控台在解碼器資訊清單中設定視覺系統資料訊號。請改用 AWS CLI。視覺系統資料處於預覽版本，可能會有所變更。

**建立解碼器資訊清單**

1. <a name="fleetwise-open-console"></a>開啟 [AWS IoT FleetWise 主控台](https://console.aws.amazon.com/iotfleetwise)。

1. <a name="choose-vehicle-models"></a>在導覽窗格中，選擇 **車輛模型**。

1. 選擇目標車輛模型。

1. 在車輛模型摘要頁面上，選擇**建立解碼器資訊清單**，然後執行下列動作。

**Topics**
+ [步驟 1：設定解碼器資訊清單](#configure-decoder-manifest-console)
+ [步驟 2：映射 CAN 介面](#map-can-interface)
+ [步驟 3：檢閱並建立](#review-and-create-decoder-manifest-console)

### 步驟 1：設定解碼器資訊清單
<a name="configure-decoder-manifest-console"></a>

在**一般資訊**中，執行下列動作。

1. 輸入解碼器資訊清單的唯一名稱。

1. (選用) 輸入描述。

1. 選擇**下一步**。

#### 新增網路介面
<a name="add-network-interfaces"></a>

每個解碼器資訊清單必須至少有一個網路界面。您可以將多個網路介面新增至解碼器資訊清單。

**新增網路界面**

1. 上傳網路介面檔案。您可以上傳 CAN 通訊協定的 .dbc 檔案，或是 ROS 2 或自訂界面的 .json 檔案。

1. 輸入網路界面的名稱。如果您上傳自訂界面，則會提供名稱。

#### 映射遺失訊號
<a name="map-missing-decoders"></a>

如果車輛模型中有訊號在上傳的網路介面中遺失配對訊號解碼器，您可以建立預設自訂解碼器來映射遺失的訊號。這是選用的，因為您可以在下一個步驟中手動對應訊號。

**建立預設自訂解碼器**

1. 選取**為遺失訊號建立預設自訂解碼器**。

1. 選擇**下一步**。

### 步驟 2：映射 CAN 介面
<a name="map-can-interface"></a>

您可以使用 CAN 訊號解碼器對應 CAN 訊號。如果您選取**為遺失訊號建立預設自訂解碼器**核取方塊，則遺失解碼器訊號的任何訊號都會自動對應至預設自訂訊號解碼器。

**映射 CAN 訊號**

1. 在 **CAN 訊號映射**中，選取訊號解碼器。

1. 選擇**下一步**。

**注意**  
如果您新增 ROS 2 或自訂界面，您可以在建立解碼器資訊清單之前驗證映射。

### 步驟 3：檢閱並建立
<a name="review-and-create-decoder-manifest-console"></a>

驗證解碼器資訊清單的組態，然後選擇**建立**。

## 建立解碼器資訊清單 (AWS CLI)
<a name="create-decoder-manifest-cli"></a>

您可以使用 [CreateDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateDecoderManifest.html) API 操作來建立解碼器資訊清單。下列為使用 AWS CLI的範例。

**重要**  
您必須先擁有 車輛模型，才能建立解碼器資訊清單。每個解碼器資訊清單都必須與車輛模型建立關聯。如需詳細資訊，請參閱[建立 AWS IoT FleetWise 車輛模型](create-vehicle-model.md)。

若要建立解碼器資訊清單，請執行下列命令。

以包含組態的 .json 檔案名稱取代 *decoder-manifest-configuration*。

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

### 具有 CAN 介面組態的解碼器資訊清單
<a name="decoder-manifest-configuration"></a>
+ 將 *decoder-manifest-name* 取代為您建立的解碼器資訊清單名稱。
+ 將 *vehicle-model-ARN* 取代為 車輛模型的 Amazon Resource Name (ARN)。
+ （選用） 將*描述*取代為描述，以協助您識別解碼器資訊清單。

如需如何設定分支、屬性、感應器和致動器的詳細資訊，請參閱 [Configure AWS IoT FleetWise 網路介面和解碼器訊號](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"
        }
    ]
}
```

### 具有車輛中介軟體界面組態的解碼器資訊清單
<a name="decoder-manifest-vehicle-middleware-configuration"></a>
+ 將 *decoder-manifest-name* 取代為您建立的解碼器資訊清單名稱。
+ 將 *vehicle-model-ARN* 取代為 車輛模型的 Amazon Resource Name (ARN)。
+ （選用） 將*描述*取代為描述，以協助您識別解碼器資訊清單。

結構 （結構） 內的屬性節點順序必須保持一致，如訊號目錄和車輛模型 （模型資訊清單） 中所定義。如需如何設定分支、屬性、感應器和致動器的詳細資訊，請參閱 [Configure AWS IoT FleetWise 網路介面和解碼器訊號](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"
								}
							}
						}
					]
				}
			}
		}
	]
}
```

### 具有自訂解碼器組態的解碼器資訊清單
<a name="decoder-manifest-custom-decoder-config"></a>
+ 將 *decoder-manifest-name* 取代為您建立的解碼器資訊清單名稱。
+ 將 *vehicle-model-ARN* 取代為 車輛模型的 Amazon Resource Name (ARN)。
+ （選用） 將*描述*取代為描述，以協助您識別解碼器資訊清單。

如需如何設定分支、屬性、感應器和致動器的詳細資訊，請參閱 [Configure AWS IoT FleetWise 網路介面和解碼器訊號](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"
                }
            }
        }
    ]
}
```

**注意**  
您可以下載[示範指令碼](https://raw.githubusercontent.com/aws/aws-iot-fleetwise-edge/main/tools/cloud/ros2-to-decoders.py)，以建立具有視覺系統訊號的解碼器資訊清單。如需詳細資訊，請參閱 [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)。  
視覺系統資料處於預覽版本，可能會有所變更。

如果您使用客戶受管 AWS KMS 金鑰[啟用加密](key-management.md)，請包含下列政策陳述式，讓您的角色可以叫用 `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"
            ]
        }
    ]
}
```

------