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 thestartBit
.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
, orstructuredMessageDefinition
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
andWSTRING
.
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
orDYNAMIC_BOUNDED_CAPACITY
.
structuredMessageDefinition (list) –
Represents a struct type node of the complex data structure.
(dict) –
Represents a
StructureMessageName
toDataType
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
andSOME/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