IoTFleetWise / Client / create_decoder_manifest

create_decoder_manifest#

IoTFleetWise.Client.create_decoder_manifest(**kwargs)#

Creates the decoder manifest associated with a model manifest. To create a decoder manifest, the following must be true:

  • Every signal decoder has a unique name.

  • Each signal decoder is associated with a network interface.

  • Each network interface has a unique ID.

  • The signal decoders are specified in the model manifest.

See also: AWS API Documentation

Request Syntax

response = client.create_decoder_manifest(
    name='string',
    description='string',
    modelManifestArn='string',
    signalDecoders=[
        {
            'fullyQualifiedName': 'string',
            'type': 'CAN_SIGNAL'|'OBD_SIGNAL'|'MESSAGE_SIGNAL',
            'interfaceId': 'string',
            'canSignal': {
                'messageId': 123,
                'isBigEndian': True|False,
                'isSigned': True|False,
                'startBit': 123,
                'offset': 123.0,
                'factor': 123.0,
                'length': 123,
                'name': 'string'
            },
            'obdSignal': {
                'pidResponseLength': 123,
                'serviceMode': 123,
                'pid': 123,
                'scaling': 123.0,
                'offset': 123.0,
                'startByte': 123,
                'byteLength': 123,
                'bitRightShift': 123,
                'bitMaskLength': 123
            },
            'messageSignal': {
                'topicName': 'string',
                'structuredMessage': {
                    'primitiveMessageDefinition': {
                        'ros2PrimitiveMessageDefinition': {
                            'primitiveType': 'BOOL'|'BYTE'|'CHAR'|'FLOAT32'|'FLOAT64'|'INT8'|'UINT8'|'INT16'|'UINT16'|'INT32'|'UINT32'|'INT64'|'UINT64'|'STRING'|'WSTRING',
                            'offset': 123.0,
                            'scaling': 123.0,
                            'upperBound': 123
                        }
                    },
                    'structuredMessageListDefinition': {
                        'name': 'string',
                        'memberType': {'... recursive ...'},
                        'listType': 'FIXED_CAPACITY'|'DYNAMIC_UNBOUNDED_CAPACITY'|'DYNAMIC_BOUNDED_CAPACITY',
                        'capacity': 123
                    },
                    'structuredMessageDefinition': [
                        {
                            'fieldName': 'string',
                            'dataType': {'... recursive ...'}
                        },
                    ]
                }
            }
        },
    ],
    networkInterfaces=[
        {
            'interfaceId': 'string',
            'type': 'CAN_INTERFACE'|'OBD_INTERFACE'|'VEHICLE_MIDDLEWARE',
            'canInterface': {
                'name': 'string',
                'protocolName': 'string',
                'protocolVersion': 'string'
            },
            'obdInterface': {
                'name': 'string',
                'requestMessageId': 123,
                'obdStandard': 'string',
                'pidRequestIntervalSeconds': 123,
                'dtcRequestIntervalSeconds': 123,
                'useExtendedIds': True|False,
                'hasTransmissionEcu': True|False
            },
            'vehicleMiddleware': {
                'name': 'string',
                'protocolName': 'ROS_2'
            }
        },
    ],
    tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
Parameters:
  • name (string) –

    [REQUIRED]

    The unique name of the decoder manifest to create.

  • description (string) – A brief description of the decoder manifest.

  • modelManifestArn (string) –

    [REQUIRED]

    The Amazon Resource Name (ARN) of the vehicle model (model manifest).

  • signalDecoders (list) –

    A list of information about signal decoders.

    • (dict) –

      Information about a signal decoder.

      • fullyQualifiedName (string) – [REQUIRED]

        The fully qualified name of a signal decoder as defined in a vehicle model.

      • type (string) – [REQUIRED]

        The network protocol for the vehicle. For example, CAN_SIGNAL specifies a protocol that defines how data is communicated between electronic control units (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data is communicated between ECUs.

      • interfaceId (string) – [REQUIRED]

        The ID of a network interface that specifies what network protocol a vehicle follows.

      • canSignal (dict) –

        Information about signal decoder using the Controller Area Network (CAN) protocol.

        • messageId (integer) – [REQUIRED]

          The ID of the message.

        • isBigEndian (boolean) – [REQUIRED]

          Whether the byte ordering of a CAN message is big-endian.

        • isSigned (boolean) – [REQUIRED]

          Whether the message data is specified as a signed value.

        • startBit (integer) – [REQUIRED]

          Indicates the beginning of the CAN signal. This should always be the least significant bit (LSB).

          This value might be different from the value in a DBC file. For little endian signals, startBit is the same value as in the DBC file. For big endian signals in a DBC file, the start bit is the most significant bit (MSB). You will have to calculate the LSB instead and pass it as the startBit.

        • offset (float) – [REQUIRED]

          The offset used to calculate the signal value. Combined with factor, the calculation is value = raw_value * factor + offset.

        • factor (float) – [REQUIRED]

          A multiplier used to decode the CAN message.

        • length (integer) – [REQUIRED]

          How many bytes of data are in the message.

        • name (string) –

          The name of the signal.

      • obdSignal (dict) –

        Information about signal decoder using the On-board diagnostic (OBD) II protocol.

        • pidResponseLength (integer) – [REQUIRED]

          The length of the requested data.

        • serviceMode (integer) – [REQUIRED]

          The mode of operation (diagnostic service) in a message.

        • pid (integer) – [REQUIRED]

          The diagnostic code used to request data from a vehicle for this signal.

        • scaling (float) – [REQUIRED]

          A multiplier used to decode the message.

        • offset (float) – [REQUIRED]

          The offset used to calculate the signal value. Combined with scaling, the calculation is value = raw_value * scaling + offset.

        • startByte (integer) – [REQUIRED]

          Indicates the beginning of the message.

        • byteLength (integer) – [REQUIRED]

          The length of a message.

        • bitRightShift (integer) –

          The number of positions to shift bits in the message.

        • bitMaskLength (integer) –

          The number of bits to mask in a message.

      • messageSignal (dict) –

        The decoding information for a specific message which supports higher order data types.

        • topicName (string) – [REQUIRED]

          The topic name for the message signal. It corresponds to topics in ROS 2.

        • structuredMessage (dict) – [REQUIRED]

          The structured message for the message signal. It can be defined with either a primitiveMessageDefinition, structuredMessageListDefinition, or structuredMessageDefinition recursively.

          Note

          This is a Tagged Union structure. Only one of the following top level keys can be set: primitiveMessageDefinition, structuredMessageListDefinition, structuredMessageDefinition.

          • primitiveMessageDefinition (dict) –

            Represents a primitive type node of the complex data structure.

            Note

            This is a Tagged Union structure. Only one of the following top level keys can be set: ros2PrimitiveMessageDefinition.

            • ros2PrimitiveMessageDefinition (dict) –

              Information about a PrimitiveMessage using a ROS 2 compliant primitive type message of the complex data structure.

              • primitiveType (string) – [REQUIRED]

                The primitive type (integer, floating point, boolean, etc.) for the ROS 2 primitive message definition.

              • offset (float) –

                The offset used to calculate the signal value. Combined with scaling, the calculation is value = raw_value * scaling + offset.

              • scaling (float) –

                A multiplier used to decode the message.

              • upperBound (integer) –

                An optional attribute specifying the upper bound for STRING and WSTRING.

          • structuredMessageListDefinition (dict) –

            Represents a list type node of the complex data structure.

            • name (string) – [REQUIRED]

              The name of the structured message list definition.

            • memberType (dict) –

              The member type of the structured message list definition.

              Note

              This is a Tagged Union structure. Only one of the following top level keys can be set: primitiveMessageDefinition, structuredMessageListDefinition, structuredMessageDefinition.

            • listType (string) – [REQUIRED]

              The type of list of the structured message list definition.

            • capacity (integer) –

              The capacity of the structured message list definition when the list type is FIXED_CAPACITY or DYNAMIC_BOUNDED_CAPACITY.

          • structuredMessageDefinition (list) –

            Represents a struct type node of the complex data structure.

            • (dict) –

              Represents a StructureMessageName to DataType map element.

              • fieldName (string) – [REQUIRED]

                The field name of the structured message. It determines how a data value is referenced in the target language.

              • dataType (dict) –

                The data type.

                Note

                This is a Tagged Union structure. Only one of the following top level keys can be set: primitiveMessageDefinition, structuredMessageListDefinition, structuredMessageDefinition.

  • networkInterfaces (list) –

    A list of information about available network interfaces.

    • (dict) –

      Represents a node and its specifications in an in-vehicle communication network. All signal decoders must be associated with a network node.

      To return this information about all the network interfaces specified in a decoder manifest, use the API operation.

      • interfaceId (string) – [REQUIRED]

        The ID of the network interface.

      • type (string) – [REQUIRED]

        The network protocol for the vehicle. For example, CAN_SIGNAL specifies a protocol that defines how data is communicated between electronic control units (ECUs). OBD_SIGNAL specifies a protocol that defines how self-diagnostic data is communicated between ECUs.

      • canInterface (dict) –

        Information about a network interface specified by the Controller Area Network (CAN) protocol.

        • name (string) – [REQUIRED]

          The unique name of the interface.

        • protocolName (string) –

          The name of the communication protocol for the interface.

        • protocolVersion (string) –

          The version of the communication protocol for the interface.

      • obdInterface (dict) –

        Information about a network interface specified by the On-board diagnostic (OBD) II protocol.

        • name (string) – [REQUIRED]

          The name of the interface.

        • requestMessageId (integer) – [REQUIRED]

          The ID of the message requesting vehicle data.

        • obdStandard (string) –

          The standard OBD II PID.

        • pidRequestIntervalSeconds (integer) –

          The maximum number message requests per second.

        • dtcRequestIntervalSeconds (integer) –

          The maximum number message requests per diagnostic trouble code per second.

        • useExtendedIds (boolean) –

          Whether to use extended IDs in the message.

        • hasTransmissionEcu (boolean) –

          Whether the vehicle has a transmission control module (TCM).

      • vehicleMiddleware (dict) –

        The vehicle middleware defined as a type of network interface. Examples of vehicle middleware include ROS2 and SOME/IP.

        • name (string) – [REQUIRED]

          The name of the vehicle middleware.

        • protocolName (string) – [REQUIRED]

          The protocol name of the vehicle middleware.

  • tags (list) –

    Metadata that can be used to manage the decoder manifest.

    • (dict) –

      A set of key/value pairs that are used to manage the resource.

      • Key (string) – [REQUIRED]

        The tag’s key.

      • Value (string) – [REQUIRED]

        The tag’s value.

Return type:

dict

Returns:

Response Syntax

{
    'name': 'string',
    'arn': 'string'
}

Response Structure

  • (dict) –

    • name (string) –

      The name of the created decoder manifest.

    • arn (string) –

      The ARN of the created decoder manifest.

Exceptions

  • IoTFleetWise.Client.exceptions.ResourceNotFoundException

  • IoTFleetWise.Client.exceptions.InternalServerException

  • IoTFleetWise.Client.exceptions.ConflictException

  • IoTFleetWise.Client.exceptions.LimitExceededException

  • IoTFleetWise.Client.exceptions.DecoderManifestValidationException

  • IoTFleetWise.Client.exceptions.ThrottlingException

  • IoTFleetWise.Client.exceptions.ValidationException

  • IoTFleetWise.Client.exceptions.AccessDeniedException