

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 つのネットワークインターフェイスが必要です。複数のネットワークインターフェイスをデコーダーマニフェストに追加できます。

**ネットワークインターフェイスを作成するには**

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)」を参照してください。

デコーダーマニフェストを作成するには、次のコマンドを実行します。

*decoder-manifest-configuration* を、設定を含む .json ファイルの名前に置き換えます。

```
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 リソースネーム (ARN) に置き換えます。
+ (オプション) *description* は、デコーダーマニフェストの識別に役立つ説明に置き換えます。

ブランチ、属性、センサー、アクチュエータの構成方法の詳細については、「[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 リソースネーム (ARN) に置き換えます。
+ (オプション) *description* は、デコーダーマニフェストの識別に役立つ説明に置き換えます。

構造 (構造体) 内のプロパティノードの順序は、シグナルカタログと車両モデル (モデルマニフェスト) で定義されている順序と一致している必要があります。ブランチ、属性、センサー、アクチュエータの構成方法の詳細については、「[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 リソースネーム (ARN) に置き換えます。
+ (オプション) *description* は、デコーダーマニフェストの識別に役立つ説明に置き換えます。

ブランチ、属性、センサー、アクチュエータの構成方法の詳細については、「[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)」を参照してください。**  
ビジョンシステムデータはプレビューリリースであり、変更される可能性があります。

カスタマーマネージド 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"
            ]
        }
    ]
}
```

------