IoT Fleetwise - Adding support for multiple PID's in the dbc file

0

We've a requirement where multiple PID's of the vehicle diagnostic data from the vehicle has to be supported.

But when we try adding more than one PID under a BO in dbc file, it gives us below error -

"An error occurred (ValidationException) when calling the ImportDecoderManifest operation: Could not parse the DBC file(s) for network interface 1. Following failures were observed [Failed to parse signal line SG_ S1 m1M : 23|8@0+ (1,0) [0|255] "" Vector__XXX for messageId 2024 for network interface 1]"

Do you've an example of OBD2 dbc file which has support for multiple PID's and is supported by Fleetwise ?

Below is the content of the dbc file we are using

VERSION "1.0"

NS_ : NS_DESC_ CM_ BA_DEF_ BA_ VAL_ CAT_DEF_ CAT_ FILTER BA_DEF_DEF_ EV_DATA_ ENVVAR_DATA_ SGTYPE_ SGTYPE_VAL_ BA_DEF_SGTYPE_ BA_SGTYPE_ SIG_TYPE_REF_ VAL_TABLE_ SIG_GROUP_ SIG_VALTYPE_ SIGTYPE_VALTYPE_ BO_TX_BU_ BA_DEF_REL_ BA_REL_ BA_DEF_DEF_REL_ BU_SG_REL_ BU_EV_REL_ BU_BO_REL_

BS_:

BU_:

BO_ 2024 OBD2: 8 Vector__XXX

SG_ S1_PID_0C_EngineSpeed m12 : 31|16@0+ (0.25,0) [0|16383.75] "rpm" Vector__XXX
SG_ S1_PID_0D_VehicleSpeed m13 : 31|8@0+ (1,0) [0|255] "km/h" Vector__XXX
SG_ S1 m1M : 23|8@0+ (1,0) [0|255] "" Vector__XXX
SG_ Service M : 11|4@0+ (1,0) [0|15] "" Vector__XXX

BA_DEF_ SG_ "SignalType" STRING ; BA_DEF_ SG_ "SignalLongName" STRING ; BA_DEF_ BO_ "GenMsgCycleTime" INT 0 10000; BA_DEF_DEF_ "SignalType" ""; BA_DEF_DEF_ "SignalLongName" ""; BA_DEF_DEF_ "GenMsgCycleTime" 0; BA_ "GenMsgCycleTime" BO_ 2024 50; BA_ "GenMsgCycleTime" BO_ 2025 50; SG_MUL_VAL_ 2024 S1_PID_0C_EngineSpeed S1 12-12; SG_MUL_VAL_ 2024 S1_PID_0D_VehicleSpeed S1 13-13; SG_MUL_VAL_ 2024 S1 Service 1-1

asked 7 months ago248 views
1 Answer
1

Hello Kamalnath,

The error message you're encountering indicates that there is an issue with the syntax or format of your DBC (Database Container) file, specifically related to the definition of signals and the assignment of Multiplex values (like S1) within a message (BO_).

The issue appears to be in your DBC file's definition of signal lines. In the DBC file format, each signal line (SG_) should be defined with specific attributes, such as start bit, length, byte order, and more. The error message suggests that there is a problem with the signal definition for "S1_PID_0C_EngineSpeed," "S1_PID_0D_VehicleSpeed," and "S1 Service."

Here's a corrected example for the signal definitions in your DBC file:

SG_ S1_PID_0C_EngineSpeed : 31|16@0+ (0.25,0) [0|16383.75] "rpm" Vector__XXX
SG_ S1_PID_0D_VehicleSpeed : 23|8@0+ (1,0) [0|255] "km/h" Vector__XXX
SG_ S1_Service : 11|4@0+ (1,0) [0|15] "" Vector__XXX

In the corrected lines above, I removed the multiplex value "m12," "m13," and "M" from the signal names because multiplexing values should not be part of the signal name in the DBC file. Instead, you should define the multiplexing relationship in the multiplexing settings section of the DBC file.

For example, in the multiplexing settings section of your DBC file, you can define how signals are multiplexed within a message (BO_). Assuming you want all three signals (S1_PID_0C_EngineSpeed, S1_PID_0D_VehicleSpeed, and S1_Service) to be multiplexed using the same "S1" multiplexer value, you can define it like this:

SG_MUL_VAL_ 2024 S1_PID_0C_EngineSpeed S1 12-12;
SG_MUL_VAL_ 2024 S1_PID_0D_VehicleSpeed S1 13-13;
SG_MUL_VAL_ 2024 S1_Service S1 1-1;

In this example, the multiplexing value "S1" is associated with all three signals within message 2024 (BO_ 2024), allowing you to represent multiple PIDs under a single message with the same multiplexing value.

Make sure to adjust the DBC file accordingly to match your specific use case and multiplexing requirements.

Please give a thumbs up if my suggestion helps

profile picture
answered 7 months ago
  • Thanks a lot Gabriel. Your response helped us to do multiplexing and decoding of multiple parameters in a single response. Eg: Data=04410C220113 (Vehicle speed and Engine speed multiplexed in a single response)

    Can you suggest the dbc file format to handle if the multiple parameters are sent in separate responses with different PID's
    Eg: Data=04410C001300 -> Engine speed Data=04410D220000 -> Vehicle speed

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions