

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Manage AWS IoT FleetWise 디코더 매니페스트
<a name="decoder-manifests"></a>

**중요**  
특정 AWS IoT FleetWise 기능에 대한 액세스는 현재 게이트됩니다. 자세한 내용은 [AWS AWS IoT FleetWise의 리전 및 기능 가용성](fleetwise-regions.md) 단원을 참조하십시오.

디코더 매니페스트에는 AWS IoT FleetWise가 차량 데이터(이진 데이터)를 사람이 읽을 수 있는 값으로 변환하고 데이터 분석을 위해 데이터를 준비하는 데 사용하는 디코딩 정보가 포함되어 있습니다. 네트워크 인터페이스 및 신호 디코더는 디코더 매니페스트를 구성하기 위해 사용하는 핵심 구성 요소입니다.

**네트워크 인터페이스**  <a name="network-interface-definition"></a>
차량 내 네트워크에서 사용하는 프로토콜에 대한 정보를 포함합니다. AWS IoT FleetWise는 다음 프로토콜을 지원합니다.    
**컨트롤러 영역 네트워크(CAN 버스)**  
전자 제어 장치(ECU) 간 데이터 통신 방식을 정의하는 프로토콜입니다. ECU는 엔진 제어 장치, 에어백 또는 오디오 시스템일 수 있습니다.  
**온보드 진단(OBD) II**  
자체 진단 데이터가 ECU 간에 전달되는 방식을 정의하는 추가 개발된 프로토콜입니다. 차량의 문제를 식별하는 데 도움이 되는 여러 표준 진단 문제 코드(DTC)를 제공합니다.  
**차량 미들웨어**  
네트워크 인터페이스 유형으로 정의되는 차량 미들웨어입니다. 차량 미들웨어의 예로는 로봇 운영 체제(ROS 2) 및 IP를 통한 확장 가능한 서비스 지향 미들웨어(SOME/IP)가 있습니다.  
AWS IoT FleetWise는 비전 시스템 데이터에 ROS 2 미들웨어를 지원합니다.  
**사용자 지정 인터페이스**  
자체 인터페이스를 사용하여 Edge에서 신호를 디코딩할 수도 있습니다. 이렇게 하면 클라우드에서 디코딩 규칙을 생성할 필요가 없으므로 시간을 절약할 수 있습니다.

**신호 디코더**  <a name="decoder-signal-definition"></a>
특정 신호에 대한 자세한 디코딩 정보를 제공합니다. 차량 모델에 지정된 모든 신호는 신호 디코더와 페어링되어야 합니다. 디코더 매니페스트에 CAN 네트워크 인터페이스가 포함된 경우 CAN 디코더 신호를 포함해야 합니다. 디코더 매니페스트에 OBD 네트워크 인터페이스가 포함된 경우 OBD 신호 디코더가 포함되어야 합니다.  
디코더 매니페스트에 차량 미들웨어 인터페이스도 포함된 경우 메시지 신호 디코더가 포함되어야 합니다. 또는 디코더 매니페스트에 사용자 지정 디코딩 인터페이스가 포함된 경우 사용자 지정 디코딩 신호도 포함되어야 합니다.

각 디코더 매니페스트는 차량 모델과 연결되어야 합니다. AWS IoT FleetWise는 연결된 디코더 매니페스트를 사용하여 차량 모델을 기반으로 생성된 차량에서 데이터를 디코딩합니다.

각 디코더 매니페스트에는 디코더 매니페스트의 상태가 포함된 상태 필드가 있습니다. 상태는 다음 값 중 하나일 수 있습니다.
+ `ACTIVE` – 디코더 매니페스트가 활성 상태입니다.
+ `DRAFT` – 디코더 매니페스트의 컨피그레이션이 저장되지 않습니다.
+ `VALIDATING` - 디코더 매니페스트가 적격성을 검증하고 있습니다. 이는 하나 이상의 비전 시스템 데이터 신호가 포함된 디코더 매니페스트에만 적용됩니다.
+ `INVALID` - 디코더 매니페스트가 검증에 실패하여 아직 활성화할 수 없습니다. 이는 하나 이상의 비전 시스템 데이터 신호가 포함된 디코더 매니페스트에만 적용됩니다. ListDecoderManifest 및 GetDecoderManifest API를 사용하여 검증 실패 이유를 확인할 수 있습니다.

**중요**  
 AWS IoT FleetWise 콘솔을 사용하여 디코더 매니페스트를 생성하는 경우 AWS IoT FleetWise는 디코더 매니페스트를 자동으로 활성화합니다.
`CreateDecoderManifest` API 작업을 사용하여 디코더 매니페스트를 생성하는 경우 디코더 매니페스트는 `DRAFT` 상태를 유지합니다.
`DRAFT` 디코더 매니페스트와 연결된 차량 모델로는 차량을 만들 수 없습니다. `UpdateDecoderManifest` API 작업을 사용하여 디코더 매니페스트를 `ACTIVE` 상태로 변경합니다.
`ACTIVE` 상태에 있는 디코더 매니페스트는 편집할 수 없습니다.

**Topics**
+ [AWS IoT FleetWise 네트워크 인터페이스 및 디코더 신호 구성](configure-network-interfaces-decoder-signals.md)
+ [AWS IoT FleetWise 디코더 매니페스트 생성](create-decoder-manifest.md)
+ [AWS IoT FleetWise 디코더 매니페스트 업데이트](update-decoder-manifest.md)
+ [AWS IoT FleetWise 디코더 매니페스트 삭제](delete-decoder-manifest.md)
+ [Get AWS IoT FleetWise 디코더 매니페스트 정보](get-decoder-manifest-information.md)

# AWS IoT FleetWise 네트워크 인터페이스 및 디코더 신호 구성
<a name="configure-network-interfaces-decoder-signals"></a>

**중요**  
특정 AWS IoT FleetWise 기능에 대한 액세스는 현재 게이트됩니다. 자세한 내용은 [AWS AWS IoT 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\$1100자를 포함할 수 있습니다.
+ (선택 사항) `protocolName` — 프로토콜 이름.

  유효한 값: `CAN-FD` 및 `CAN`
+ (선택 사항) `protocolVersion` - AWS IoT FleetWise는 현재 CAN-FD 및 CAN 2.0b를 지원합니다.

  유효한 값: `1.0` 및 `2.0b`

OBD 네트워크 인터페이스를 구성하려면 다음 정보를 지정합니다.
+ `name`— OBD 인터페이스의 이름.

  인터페이스 이름은 고유해야 하며 1\$1100자를 포함할 수 있습니다.
+ `requestMessageId` – 차량 데이터를 요청하는 메시지의 ID입니다.
+ (선택 사항) `dtcRequestIntervalSeconds` - 차량에서 진단 문제 코드(DTC)를 요청하는 빈도를 초 단위로 나타냅니다. 예를 들어 지정된 값이 120인 경우 Edge Agent 소프트웨어는 2분에 한 번씩 저장된 DTC를 수집합니다.
+ (선택 사항) `hasTransmissionEcu` - 차량에 변속기 제어 모듈(TCM)이 있는지 여부입니다.

  유효한 값: `true` 및 `false`
+ (선택 사항) `obdStandard` - AWS IoT FleetWise가 지원하는 OBD 표준입니다. AWS IoT FleetWise는 현재 WWH-OBD(World Wide Harmonization On-Board Diagnostics) ISO15765-4 표준을 지원합니다.
+ (선택 사항) `pidRequestIntervalSeconds` - 차량에서 OBD II PID를 요청하는 빈도. 예를 들어, 지정된 값이 120인 경우 Edge Agent 소프트웨어는 2분에 한 번씩 OBD II PID를 수집합니다.
+ (Optional) `useExtendedIds` – 메시지에 확장 ID를 사용할지 여부입니다.

  유효한 값: `true` 및 `false`

차량 미들웨어 네트워크 인터페이스를 구성하려면 다음 정보를 지정합니다.
+ `name` - 차량 미들웨어 인터페이스의 이름입니다.

  인터페이스 이름은 고유해야 하며 1\$1100자를 포함할 수 있습니다.
+ `protocolName` - 프로토콜 이름입니다.

  유효한 값: `ROS_2`

사용자 지정 디코딩 인터페이스를 구성하려면 다음 정보를 지정합니다.
+ `name` - Edge에서 신호를 디코딩하는 데 사용하는 디코더의 이름입니다.

  디코더 인터페이스 이름은 1\$1100자일 수 있습니다.

## 신호 디코더 구성
<a name="configure-decoder-signals"></a>

CAN 신호 디코더를 구성하려면 다음 정보를 지정합니다.
+ `factor` – 메시지를 디코딩하는 데 사용되는 승수입니다.
+ `isBigEndian` – CAN 메시지의 바이트 순서가 빅엔디언인지 여부입니다. 빅엔디안인 경우 시퀀스에서 가장 중요한 값이 가장 낮은 저장소 주소에 먼저 저장됩니다.
+ `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` - 메시지 신호에 대한 구조화된 메시지입니다. primitiveMessageDefinition, structuredMessageListDefinition 또는 structuredMessageDefinition을 사용하여 재귀적으로 정의할 수 있습니다.

사용자 지정 디코딩 신호를 구성하려면 다음 정보를 지정합니다.
+ (선택 사항) `id`- 디코더 인터페이스를 사용하여 직접 디코딩하는 신호의 ID입니다. 신호 ID는 1\$1150자일 수 있습니다. 지정하지 않으면는 `id` 기본적으로 신호`fullyQualifiedName`의 로 설정됩니다.

# 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) 단원을 참조하십시오.

디코더 매니페스트를 만들려면 다음 명령을 실행합니다.

*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)으로 교체합니다.
+ (선택 사항) *설명*을 디코더 매니페스트를 식별하는 데 도움이 되는 설명으로 교체합니다.

분기, 속성, 센서 및 액추에이터를 구성하는 방법에 대한 자세한 내용은 [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)으로 교체합니다.
+ (선택 사항) *설명*을 디코더 매니페스트를 식별하는 데 도움이 되는 설명으로 교체합니다.

구조(구조체) 내 속성 노드의 순서는 신호 카탈로그 및 차량 모델(모델 매니페스트)에 정의된 것과 동일하게 유지되어야 합니다. 분기, 속성, 센서 및 액추에이터를 구성하는 방법에 대한 자세한 내용은 [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)으로 교체합니다.
+ (선택 사항) *설명*을 디코더 매니페스트를 식별하는 데 도움이 되는 설명으로 교체합니다.

분기, 속성, 센서 및 액추에이터를 구성하는 방법에 대한 자세한 내용은 [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"
            ]
        }
    ]
}
```

------

# AWS IoT FleetWise 디코더 매니페스트 업데이트
<a name="update-decoder-manifest"></a>

**중요**  
특정 AWS IoT FleetWise 기능에 대한 액세스는 현재 게이트됩니다. 자세한 내용은 [AWS AWS IoT 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 IoT 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 IoT 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 IoT 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"
            ]
        }
    ]
}
```

------

# Get AWS IoT 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"
            ]
        }
    ]
}
```

------