Create an AWS IoT FleetWise decoder manifest - AWS IoT FleetWise

Create an AWS IoT FleetWise decoder manifest

You can use the AWS IoT FleetWise console or API to create a decoder manifest for your vehicle model.

Important

You must have a vehicle model before you can create a decoder manifest. Every decoder manifest must be associated with a vehicle model. For more information, see Create an AWS IoT FleetWise vehicle model.

Create a decoder manifest (console)

You can use the AWS IoT FleetWise console to create a decoder manifest that's associated with your vehicle model.

Important

You can't configure vision system data signals in decoder manifests using the AWS IoT FleetWise console. Instead, use the AWS CLI. Vision system data is in preview release and is subject to change.

To create a decoder manifest
  1. Navigate to the AWS IoT FleetWise console.

  2. On the navigation pane, choose Vehicle models.

  3. Choose the target vehicle model.

  4. On the vehicle model summary page, choose Create decoder manifest, and then do the following.

Step 1: Configure decoder manifest

In General information, do the following.

  1. Enter a unique name for the decoder manifest.

  2. (Optional) Enter a description.

  3. Choose Next.

Step 2: Add network interfaces

Each decoder manifest must have at least one network interface. You can add multiple network interfaces to a decoder manifest.

To add a network interface
  • In Network interface, do the following.

    1. For Network interface type, choose the CAN_INTERFACE or OBD_INTERFACE.

    2. Enter a unique name for your network interface.

    3. Enter a unique network interface ID. You can use the ID generated by AWS IoT FleetWise.

    4. Select one or more signals specified in your vehicle model to pair with decoder signals.

    5. To provide decoding information, upload a .dbc file. AWS IoT FleetWise parses the .dbc file to retrieve decoder signals.

    6. In the Paired signals section, make sure that every signal is paired with a decoder signal.

    7. Choose Next.

Note
  • You can upload only one .dbc file for each network interface.

  • Make sure that every signal specified in your vehicle model is paired with a decoder signal.

  • After you choose to add another network interface, you can't edit the one that you're editing. You can delete any existing network interfaces.

Step 3: Review and create

Verify the configurations for the decoder manifest, and then choose Create.

Create a decoder manifest (AWS CLI)

You can use the CreateDecoderManifest API operation to create decoder manifests. The following example uses the AWS CLI.

To create a decoder manifest, run the following command.

Replace decoder-manifest-configuration with the name of the JSON file that contains the configuration.

aws iotfleetwise create-decoder-manifest --cli-input-json file://decoder-manifest-configuration.json
  • Replace decoder-manifest-name with the name of the decoder manifest that you're creating.

  • Replace vehicle-model-ARN with the Amazon Resource Name (ARN) of the vehicle-model.

  • (Optional) Replace description with a description to help you identify the decoder manifest.

For more information about how to configure branches, attributes, sensors, and actuators, see Configure AWS IoT FleetWise network interfaces and decoder signals.

{ "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" } ] }
  • Replace decoder-manifest-name with the name of the decoder manifest that you're creating.

  • Replace vehicle-model-ARN with the Amazon Resource Name (ARN) of the vehicle-model.

  • (Optional) Replace description with a description to help you identify the decoder manifest.

The order of property nodes within a structure (struct) must remain consistent as defined in the signal catalog and vehicle model (model manifest). For more information about how to configure branches, attributes, sensors, and actuators, see Configure AWS IoT FleetWise network interfaces and decoder signals.

{ "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" } } } ] } } } ] }
Note

You can download a demo script to create a decoder manifest with vision system signals. For more information, see the Vision System Data Developer Guide.

Vision system data is in preview release and is subject to change.