

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理 AWS IoT FleetWise 解码器清单
<a name="decoder-manifests"></a>

**重要**  
目前对某些 AWS 物联网 FleetWise 功能的访问受到限制。有关更多信息，请参阅 [AWS AWS 物联网中的区域和功能可用性 FleetWise](fleetwise-regions.md)。

解码器清单包含解码信息，物 AWS 联网 FleetWise 使用这些信息将车辆数据（二进制数据）转换为人类可读的值，并为数据分析做好准备。网络接口和信号解码器是您用来配置解码器清单的核心组件。

**网络接口**  <a name="network-interface-definition"></a>
包含有关车载网络使用的协议的信息。 AWS 物联网 FleetWise 支持以下协议。    
**控制器局域网（CAN 总线）**  
一种协议，用于定义电子控制单元之间如何传输数据 (ECUs)。 ECUs 可以是发动机控制单元、安全气囊或音频系统。  
**板载诊断 (OBD) II**  
一种进一步开发的协议，用于定义相互之间 ECUs如何传输自我诊断数据。它提供了许多标准的诊断故障代码 (DTCs)，可帮助识别您的车辆出了什么问题。  
**车辆中间件**  
车辆中间件定义为一种网络接口。车辆中间件的示例包括机器人操作系统 (ROS 2) 和可扩展的面向服务的 IP 中间件 (SOME/IP)。  
AWS 物联网 FleetWise 支持用于视觉系统数据的 ROS 2 中间件。  
**自定义接口**  
您也可以使用自己的接口来解码边缘的信号。这可以节省您的时间，因为您无需在云中创建解码规则。

**信号解码器**  <a name="decoder-signal-definition"></a>
提供特定信号的详细解码信息。车辆模型中指定的每个信号都必须与信号解码器配对。如果解码器清单包含 CAN 网络接口，则它必须包含 CAN 解码器信号。如果解码器清单包含 OBD 网络接口，则必须包含 OBD 信号解码器。  
如果解码器清单还包含车辆中间件接口，则它必须包含消息信号解码器。或者，如果解码器清单包含自定义解码接口，则它还必须包含自定义解码信号。

每个解码器清单都必须与车辆型号相关联。 AWS 物联网 FleetWise 使用关联的解码器清单来解码基于车辆模型创建的车辆的数据。

每个解码器清单都有一个状态字段，其中包含解码器清单的状态。状态可以是以下值之一：
+ `ACTIVE` – 解码器清单处于活动状态。
+ `DRAFT` – 未保存解码器清单的配置。
+ `VALIDATING` – 正在验证解码器清单资格。这仅适用于包含至少一个视觉系统数据信号的解码器清单。
+ `INVALID` – 解码器清单验证失败，尚无法激活。这仅适用于包含至少一个视觉系统数据信号的解码器清单。您可以使用 ListDecoderManifests 和 GetDecoderManifest APIs 来检查验证失败的原因。

**重要**  
如果您使用 AWS IoT FleetWise 控制台创建解码器清单， AWS IoT FleetWise 会自动为您激活解码器清单。
如果您使用 `CreateDecoderManifest` API 操作创建解码器清单，则解码器清单将保持 `DRAFT` 状态。
您无法通过与 `DRAFT` 解码器清单关联的车辆型号创建车辆。使用 `UpdateDecoderManifest` API 操作可将解码器清单更改为 `ACTIVE` 状态。
您无法编辑处于 `ACTIVE` 状态的解码器清单。

**Topics**
+ [

# 配置 AWS IoT FleetWise 网络接口和解码器信号
](configure-network-interfaces-decoder-signals.md)
+ [

# 创建 I AWS oT FleetWise 解码器清单
](create-decoder-manifest.md)
+ [

# 更新 AWS IoT FleetWise 解码器清单
](update-decoder-manifest.md)
+ [

# 删除 AWS IoT FleetWise 解码器清单
](delete-decoder-manifest.md)
+ [

# 获取 AWS 物联网 FleetWise 解码器清单信息
](get-decoder-manifest-information.md)

# 配置 AWS IoT FleetWise 网络接口和解码器信号
<a name="configure-network-interfaces-decoder-signals"></a>

**重要**  
目前对某些 AWS 物联网 FleetWise 功能的访问受到限制。有关更多信息，请参阅 [AWS AWS 物联网中的区域和功能可用性 FleetWise](fleetwise-regions.md)。

每个解码器清单都至少有一个网络接口和信号解码器，并与相关车辆模型中指定的信号配对。

如果解码器清单包含 CAN 网络接口，则必须包含 CAN 信号解码器。如果解码器清单包含 OBD 网络接口，则必须包含 OBD 信号解码器。

**Topics**
+ [

## 配置网络接口
](#configure-network-interfaces)
+ [

## 配置信号解码器
](#configure-decoder-signals)

## 配置网络接口
<a name="configure-network-interfaces"></a>

要配置 CAN 网络接口，请指定以下信息。
+ `name` – CAN 接口的名称。

  接口名称必须是唯一的，可以包含 1-100 个字符。
+ （可选）`protocolName` - 协议的名称。

  有效值：`CAN-FD` 和 `CAN`。
+ （可选）`protocolVersion`— AWS 物联网 FleetWise 目前支持 CAN-FD 和 CAN 2.0b。

  有效值：`1.0` 和 `2.0b`。

要配置 OBD 网络接口，请指定以下信息。
+ `name` – OBD 接口的名称。

  接口名称必须是唯一的，可以包含 1-100 个字符。
+ `requestMessageId` – 请求数据的消息 ID。
+ （可选）`dtcRequestIntervalSeconds`— 在几秒钟内向车辆请求诊断故障代码 (DTCs) 的频率。例如，如果指定值为 120，则 Edge Agent 软件每 2 分钟收集 DTCs 一次存储的内容。
+ （可选）`hasTransmissionEcu` – 车辆是否有变速器控制模块 (TCM)。

  有效值：`true` 和 `false`。
+ （可选）`obdStandard`— AWS 物联网 FleetWise 支持的 OBD 标准。 AWS 物联网 FleetWise 目前支持全球统一机载诊断 (WWH-OBD) -4 标准。 ISO15765
+ （可选）`pidRequestIntervalSeconds`— 向车辆申请 OBD II PIDs 的频率。例如，如果指定值为 120，则 Edge Agent 软件每 2 分钟收集 PIDs 一次 OBD II。
+ （可选）`useExtendedIds`-是否在消息 IDs 中使用扩展。

  有效值：`true` 和 `false`。

要配置中间件网络接口，请指定以下信息。
+ `name` – 车辆中间件接口名称。

  接口名称必须是唯一的，可以包含 1-100 个字符。
+ `protocolName` – 协议名称。

  有效值：`ROS_2`

要配置自定义解码接口，请指定以下信息。
+ `name`— 用于解码边缘信号的解码器的名称。

  解码器接口名称可以包含 1-100 个字符。

## 配置信号解码器
<a name="configure-decoder-signals"></a>

要配置 CAN 信号解码器，请指定以下信息。
+ `factor` – 用于解码消息的乘数。
+ `isBigEndian` – 消息的字节顺序是否为大端序。如果是大端序，则序列中最重要的值首先存储在最低的存储地址上。
+ `isSigned` – 消息是否已签名。如果已签名，则消息可以同时表示正数和负数。
+ `length`— 消息的长度（以位为单位）。
+ `messageId` – 消息的 ID。
+ `offset` – 用于计算信号值的偏移量。再加上因子，计算结果为 `value = raw_value * factor + offset`。
+ `startBit` – 表示消息第一位的位置。
+ （可选）`name` – 信号的名称。
+ （可选）`signalValueType`-信号的值类型。整数是默认值类型。

要配置 OBD 信号解码器，请指定以下信息。
+ `byteLength` – 消息的总字节长度。
+ `offset` – 用于计算信号值的偏移量。再加上缩放，计算结果为 `value = raw_value * scaling + offset`。
+ `pid` – 用于从车辆请求此信号的相关消息的诊断代码。
+ `pidResponseLength` – 所请求消息的长度。
+ `scaling` – 用于解码消息的乘数。
+ `serviceMode` – 消息中的操作模式（诊断服务）。
+ `startByte` – 指示消息的起始。
+ （可选）`bitMaskLength` - 消息中被屏蔽的位数。
+ （可选）`bitRightShift` - 向右移动的位置数。
+ （可选）`isSigned`-消息是否已签名。如果已签名，则消息可以同时表示正数和负数。默认情况下，消息未签名 (`false`)。
+ （可选）`signalValueType`-信号的值类型。整数是默认值类型。

要配置消息信号解码器，请指定以下信息。
+ `topicName` – 消息信号的主题名称。它对应于 ROS 2 中的主题。有关结构化消息对象的更多信息，请参阅[StructuredMessage](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_StructuredMessage.html)。
+ `structuredMessage` – 消息信号的结构化消息。它可以用 a primitiveMessageDefinition、“ structuredMessageList定义” 或 structuredMessageDefinition 递归方式定义。

要配置自定义解码信号，请指定以下信息。
+ （可选）`id`— 您使用解码器接口自己解码的信号的 ID。信号 ID 可以包含 1-150 个字符。如果未指定，`id`则`fullyQualifiedName`默认为信号的。

# 创建 I AWS oT FleetWise 解码器清单
<a name="create-decoder-manifest"></a>

**重要**  
目前对某些 AWS 物联网 FleetWise 功能的访问受到限制。有关更多信息，请参阅 [AWS AWS 物联网中的区域和功能可用性 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 联 FleetWise网控制台在解码器清单中配置视觉系统数据信号。可改用 AWS CLI。视觉系统数据目前为预览版，可能会发生变化。

**创建解码器清单**

1. <a name="fleetwise-open-console"></a>打开[AWS 物联网 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 物联网 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*替换为描述以帮助您识别解码器清单。

有关如何配置分支、属性、传感器和执行器的更多信息，请参阅[配置 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*替换为描述以帮助您识别解码器清单。

结构（结构体）中属性节点的顺序必须与信号目录和车辆模型（模型清单）中定义的顺序保持一致。有关如何配置分支、属性、传感器和执行器的更多信息，请参阅[配置 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*替换为描述以帮助您识别解码器清单。

有关如何配置分支、属性、传感器和执行器的更多信息，请参阅[配置 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"
            ]
        }
    ]
}
```

------

# 更新 AWS IoT FleetWise 解码器清单
<a name="update-decoder-manifest"></a>

**重要**  
目前对某些 AWS 物联网 FleetWise 功能的访问受到限制。有关更多信息，请参阅 [AWS AWS 物联网中的区域和功能可用性 FleetWise](fleetwise-regions.md)。

您可以使用 [UpdateDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_UpdateDecoderManifest.html)API 操作来更新解码器清单。您可以添加、移除和更新网络接口和信号解码器。您还可以更改解码器清单的状态。下面的示例使用了 AWS CLI。

要更新解码器清单，请运行以下命令。

*decoder-manifest-name*替换为您要更新的解码器清单的名称。

```
aws iotfleetwise update-decoder-manifest / 
                --name decoder-manifest-name /
                --status ACTIVE
```

如果信号没有指定的解码规则，则可以创建默认的解码规则。信号被添加到自定义解码接口中，`CustomDecodingSignal$id`设置为信号的完全限定名称。要使用默认解码规则更新解码器清单，请运行以下命令。

*decoder-manifest-name*替换为您要更新的解码器清单的名称。

```
aws iotfleetwise update-decoder-manifest / 
                --name decoder-manifest-name /
                --status ACTIVE
                --default-for-unmapped-signals CUSTOM_DECODING
```

**重要**  
激活解码器清单后，您无法对其进行编辑。

如果您[启用了使用客户托管 AWS KMS 密钥的加密](key-management.md)，请包括以下政策声明，以便您的角色可以调用 `UpdateDecoderManifest` 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"
            ]
        }
    ]
}
```

------

## 验证解码器清单更新
<a name="verify-decoder-update"></a>

您可以使用 [ListDecoderManifestSignals](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListDecoderManifestSignals.html)API 操作来验证解码器清单中的解码器信号是否已更新。以下示例使用 AWS CLI。

要检索给定解码器清单中所有解码器信号（节点）摘要的分页列表，请运行以下命令。

*decoder-manifest-name*替换为您正在检查的解码器清单的名称。

```
aws iotfleetwise list-decoder-manifest-signals /
                 --name decoder-manifest-name
```

如果您[启用了使用客户托管 AWS KMS 密钥的加密](key-management.md)，请包括以下政策声明，以便您的角色可以调用 `ListDecoderManifestSignals` API 操作。

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

****  

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

------

您可以使用 [ListDecoderManifestNetworkInterfaces](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListDecoderManifestNetworkInterfaces.html)API 操作来验证解码器清单中的网络接口是否已更新。下面的示例使用了 AWS CLI。

要检索给定解码器清单中所有网络接口摘要的分页列表，请运行以下命令。

*decoder-manifest-name*替换为您正在检查的解码器清单的名称。

```
aws iotfleetwise list-decoder-manifest-network-interfaces /
                 --name decoder-manifest-name
```

如果您[启用了使用客户托管 AWS KMS 密钥的加密](key-management.md)，请包括以下政策声明，以便您的角色可以调用 `ListDecoderManifestNetworkInterfaces` API 操作。

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

****  

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

------

# 删除 AWS IoT FleetWise 解码器清单
<a name="delete-decoder-manifest"></a>

您可以使用 AWS IoT FleetWise 控制台或 API 删除解码器清单。

**重要**  
必须先删除与解码器清单关联的车辆。有关更多信息，请参阅 [删除 AWS 物联网 FleetWise 车辆](delete-vehicle.md)。

**Topics**
+ [

## 删除解码器清单（控制台）
](#delete-decoder-manifest-console)
+ [

## 删除解码器清单 (AWS CLI)
](#delete-decoder-manifest-cli)

## 删除解码器清单（控制台）
<a name="delete-decoder-manifest-console"></a>

您可以使用 AWS IoT FleetWise 控制台删除解码器清单。

**删除解码器清单**

1. <a name="fleetwise-open-console"></a>打开[AWS 物联网 FleetWise 控制台](https://console.aws.amazon.com/iotfleetwise)。

1. <a name="choose-vehicle-models"></a>在导航窗格中，选择**车辆型号**。

1. 选择目标车辆型号。

1. 在“车辆型号摘要”页面上，选择**解码器清单**选项卡。

1. 选择目标解码器清单，然后选择**删除**。

1. 在**删除 **decoder-manifest-name**?** 中，输入要删除的解码器清单的名称，然后选择**确认**。

## 删除解码器清单 (AWS CLI)
<a name="delete-decoder-manifest-cli"></a>

您可以使用 [DeleteDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_DeleteDecoderManifest.html)API 操作删除解码器清单。以下示例使用 AWS CLI。

**重要**  
在删除解码器清单之前，请先删除关联的车辆。有关更多信息，请参阅 [删除 AWS 物联网 FleetWise 车辆](delete-vehicle.md)。

要删除解码器清单，请运行以下命令。

*decoder-manifest-name*替换为您要删除的解码器清单的名称。

```
aws iotfleetwise delete-decoder-manifest --name decoder-manifest-name
```

### 验证已删除解码器清单
<a name="verify-decoder-deletion"></a>

您可以使用 [ListDecoderManifests](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_ListDecoderManifests.html)API 操作来验证解码器清单是否已被删除。以下示例使用 AWS CLI。

要检索所有解码器清单摘要的分页列表，请运行以下命令。

```
aws iotfleetwise list-decoder-manifests
```

如果您[启用了使用客户托管 AWS KMS 密钥的加密](key-management.md)，请包括以下政策声明，以便您的角色可以调用 `ListDecoderManifests` API 操作。

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

****  

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

------

# 获取 AWS 物联网 FleetWise 解码器清单信息
<a name="get-decoder-manifest-information"></a>

您可以使用 [GetDecoderManifest](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_GetDecoderManifest.html)API 操作来验证解码器清单中的网络接口和信号解码器是否已更新。以下示例使用 AWS CLI。

要检索有关解码器清单的信息，请运行以下命令。

*decoder-manifest*替换为要检索的解码器清单的名称。

```
aws iotfleetwise get-decoder-manifest --name decoder-manifest
```

**注意**  
此操作具有[最终一致性](https://web.stanford.edu/class/cs345d-01/rl/eventually-consistent.pdf)。换句话说，可能不会立即反映对解码器清单进行的更改。

如果您[启用了使用客户托管 AWS KMS 密钥的加密](key-management.md)，请包括以下政策声明，以便您的角色可以调用 `GetDecoderManifest` API 操作。

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

****  

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

------