DBC Extension for Telematics Logging¶
The following documentation describes the custom extension of the standard DBC format used to support telematics application development. The extension adds signal-specific attributes for telematics logging in addition to the standard DBC definitions.
For a general introduction of the standard DBC format, see the following tutorial provided by CSS Electronics.
The custom DBC extensions described in this document interact with the following telematics features and DataPlatform configurations:
- Cyclic input downsampling and logging
- On-change input downsampling
- Signal Catalog configuration in the DataPlatform
Custom Field Definitions¶
The following custom fields are added to standard DBC signal definitions to control telematics logging behavior.
TelematicsLoggingEnabled¶
Defines whether a signal should be logged by the TCU. The field is an integer flag (0 or 1).
| Value | Description |
|---|---|
| 0 | The TCU must not log this signal |
| 1 | The TCU must log this signal |
TelematicsLoggingIntervalSeconds¶
Defines the logging interval in seconds for cyclic logging.
| Parameter | Description |
|---|---|
| Integer value | Frequency in seconds at which the signal is logged |
TelematicsLoggingKey¶
Defines the unique identifier of the signal on the DataPlatform.
| Parameter | Description |
|---|---|
| String | Signal key used as identifier in the DataPlatform |
Note
Refer to the Signal Catalog for valid signal keys. Follow the Proemion Standard Metrics for rules for assigning signal keys.
TelematicsLoggingStrategy¶
Defines the logging strategy used by the TCU. The field is implemented as an enumeration (ENUM). Only the defined values are allowed.
Note
If needed, this enumeration can be extended with additional logging strategies upon request.
| Value | Description |
|---|---|
| Cyclic | Signal is logged periodically based on TelematicsLoggingIntervalSeconds |
| OnChange | Signal is logged when its value changes |
| OnMachineStart | Signal is logged when the machine starts |
| OnMessage | Signal is logged when any message containing the signal as payload is received |
Use of Custom Fields¶
The custom fields extend standard DBC signal definitions and are used by the telematics application layer to control logging behavior.
- Each signal must include appropriate logging configuration.
- Select the logging strategy based on signal behavior.
- Define the interval when using cyclic logging.
- Ensure signal keys are aligned with the DataPlatform definitions.
Template DBC¶
The following template DBC file is provided as a reference for the custom telematics logging extension. For correct interpretation and practical use, open the file in a compatible DBC editor such as CANdb++, CANoe, or CANalyzer.
The template includes both standard DBC attributes and custom telematics extensions. Only the attributes prefixed with "TelematicsLogging" are part of the custom extension.
Download:
Template DBC (reference preview, click to view)
VERSION "created by canmatrix"
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_
SG_MUL_VAL_
BS_:
BU_: ECM Display ClimateController CANLink
VAL_TABLE_ Vt_DO_Error 3 "N/A" 2 "Undefined" 1 "Error" 0 "OK" ;
VAL_TABLE_ Vt_J1939_Boolean 3 "N/A" 2 "Error" 1 "True" 0 "False" ;
BO_ 3221225472 VECTOR__INDEPENDENT_SIG_MSG: 0 Vector__XXX
SG_ EngTotalIdleFuelUsed : 0|32@1+ (0.5,0) [0|2105540607.5] "L" Vector__XXX
BO_ 2566842624 LFC: 8 ECM
SG_ EngTotalFuelUsed : 32|32@1+ (0.5,0) [0|2105540607.5] "L" Display
SG_ EngTripFuel : 0|32@1+ (0.5,0) [0|2105540607.5] "L" Display
BO_ 2364539904 EEC1: 8 ECM
SG_ EngStarterMode : 48|4@1+ (1,0) [0|15] "" Display
SG_ EngSpeed : 24|16@1+ (0.125,0) [0|8031.875] "rpm" Display
SG_ ActualEngPercentTorque : 16|8@1+ (1,-125) [-125|125] "%" Display
BO_ 2566841600 HOURS: 8 ECM
SG_ EngTotalHoursOfOperation : 0|32@1+ (0.05,0) [0|210554060.75] "hr" Display
CM_ BO_ 3221225472 "This is a message for not used signals, created by Vector CANdb++ DBC OLE DB Provider.";
CM_ SG_ 3221225472 EngTotalIdleFuelUsed "Accumulated amount of fuel used during vehicle operation while under idle conditions.";
CM_ BO_ 2566842624 "Fuel Consumption (Liquid)";
CM_ SG_ 2566842624 EngTotalFuelUsed "Accumulated amount of fuel used during vehicle operation.";
CM_ SG_ 2566842624 EngTripFuel "Fuel consumed during all or part of a journey.";
CM_ BO_ 2364539904 "Electronic Engine Controller 1";
CM_ SG_ 2364539904 EngStarterMode "There are several phases in a starting action and different reasons why a start cannot take place.";
CM_ SG_ 2364539904 EngSpeed "Actual engine speed which is calculated over a minimum crankshaft angle of 720 degrees divided by the number of cylinders.";
CM_ SG_ 2364539904 ActualEngPercentTorque "The calculated output torque of the engine.";
CM_ BO_ 2566841600 "Engine Hours, Revolutions";
CM_ SG_ 2566841600 EngTotalHoursOfOperation "Accumulated time of operation of engine.";
BA_DEF_ SG_ "TelematicsLoggingIntervalSeconds" INT 0 64255;
BA_DEF_ SG_ "TelematicsLoggingStrategy" ENUM "Cyclic","OnChange","OnMachineStart";
BA_DEF_ BO_ "GenMsgCycleTime" INT 0 65535;
BA_DEF_ BO_ "GenMsgRequestable" INT 0 1;
BA_DEF_ BO_ "GenMsgSendType" ENUM "Cyclic","NotUsed","NotUsed","NotUsed","NotUsed","NotUsed","NotUsed","IfActive","NoMsgSendType";
BA_DEF_ BO_ "MessageTitle" STRING ;
BA_DEF_ BO_ "VFrameFormat" ENUM "StandardCAN","ExtendedCAN","reserved","J1939PG";
BA_DEF_ SG_ "Category" ENUM "0:None","1:Undefined","2:User Level","3:Service Level","4:Factory Level";
BA_DEF_ SG_ "GenSigSendType" ENUM "Cyclic","OnWrite","OnWriteWithRepetition","OnChange","OnChangeWithRepetition","IfActive","IfActiveWithRepetition","NoSigSendType";
BA_DEF_ SG_ "GenSigStartValue" FLOAT -3.4E+38 3.4E+38;
BA_DEF_ SG_ "GeneratorName" STRING ;
BA_DEF_ SG_ "IO_pin_id" STRING ;
BA_DEF_ SG_ "IO_title" STRING ;
BA_DEF_ SG_ "IO_type" ENUM "0:DO","1:DI","2:AO","3:AI","4:PO","5:PI","6:FRQI";
BA_DEF_ SG_ "IsPermanent" INT 0 1;
BA_DEF_ SG_ "IsWritable" INT 0 1;
BA_DEF_ SG_ "LegacyNameSPN" STRING ;
BA_DEF_ SG_ "LegacyRange" STRING ;
BA_DEF_ SG_ "LegacyResolution" STRING ;
BA_DEF_ SG_ "SPN" INT 0 524287;
BA_DEF_ SG_ "SigType" ENUM "Default","Range","RangeSigned","ASCII","Discrete","Control","ReferencePGN","DTC","StringDelimiter","StringLength","StringLengthControl";
BA_DEF_ SG_ "TelematicsLoggingEnabled" INT 0 1;
BA_DEF_ SG_ "TelematicsLoggingKey" STRING ;
BA_DEF_ BU_ "Bus" ENUM "1","2","3","1+2";
BA_DEF_ BU_ "NmStationAddress" INT 0 255;
BA_DEF_ "BusType" STRING ;
BA_DEF_ "ProtocolType" STRING ;
BA_DEF_DEF_ "TelematicsLoggingIntervalSeconds" 0;
BA_DEF_DEF_ "TelematicsLoggingStrategy" "Cyclic";
BA_DEF_DEF_ "GenMsgCycleTime" 0;
BA_DEF_DEF_ "GenMsgRequestable" 0;
BA_DEF_DEF_ "GenMsgSendType" "NoMsgSendType";
BA_DEF_DEF_ "MessageTitle" "";
BA_DEF_DEF_ "VFrameFormat" "J1939PG";
BA_DEF_DEF_ "Category" "0:None";
BA_DEF_DEF_ "GenSigSendType" "NoSigSendType";
BA_DEF_DEF_ "GenSigStartValue" 0;
BA_DEF_DEF_ "GeneratorName" "";
BA_DEF_DEF_ "IO_pin_id" "";
BA_DEF_DEF_ "IO_title" "";
BA_DEF_DEF_ "IO_type" "";
BA_DEF_DEF_ "IsPermanent" 0;
BA_DEF_DEF_ "IsWritable" 0;
BA_DEF_DEF_ "LegacyNameSPN" "";
BA_DEF_DEF_ "LegacyRange" "";
BA_DEF_DEF_ "LegacyResolution" "";
BA_DEF_DEF_ "SPN" 0;
BA_DEF_DEF_ "SigType" "";
BA_DEF_DEF_ "TelematicsLoggingEnabled" 0;
BA_DEF_DEF_ "TelematicsLoggingKey" "";
BA_DEF_DEF_ "Bus" "2";
BA_DEF_DEF_ "NmStationAddress" 254;
BA_DEF_DEF_ "BusType" "CAN";
BA_DEF_DEF_ "ProtocolType" "J1939";
BA_ "BusType" "CAN";
BA_ "ProtocolType" "J1939";
BA_ "NmStationAddress" BU_ ECM 0;
BA_ "NmStationAddress" BU_ Display 128;
BA_ "NmStationAddress" BU_ ClimateController 192;
BA_ "NmStationAddress" BU_ CANLink 40;
BA_ "GenMsgSendType" BO_ 2566842624 8;
BA_ "VFrameFormat" BO_ 2566842624 3;
BA_ "GenMsgCycleTime" BO_ 2364539904 100;
BA_ "GenMsgSendType" BO_ 2364539904 0;
BA_ "VFrameFormat" BO_ 2364539904 3;
BA_ "GenMsgSendType" BO_ 2566841600 8;
BA_ "VFrameFormat" BO_ 2566841600 3;
BA_ "GenSigStartValue" SG_ 3221225472 EngTotalIdleFuelUsed 0;
BA_ "GeneratorName" SG_ 3221225472 EngTotalIdleFuelUsed "TotalFuelUsedIdle";
BA_ "IsPermanent" SG_ 3221225472 EngTotalIdleFuelUsed 0;
BA_ "SPN" SG_ 3221225472 EngTotalIdleFuelUsed 236;
BA_ "SigType" SG_ 3221225472 EngTotalIdleFuelUsed 1;
BA_ "TelematicsLoggingEnabled" SG_ 3221225472 EngTotalIdleFuelUsed 1;
BA_ "TelematicsLoggingKey" SG_ 3221225472 EngTotalIdleFuelUsed "value.custom.value.common.engine.fuel.idle.total";
BA_ "GenSigStartValue" SG_ 2566842624 EngTotalFuelUsed 0;
BA_ "GeneratorName" SG_ 2566842624 EngTotalFuelUsed "TotalFuelUsed";
BA_ "IsPermanent" SG_ 2566842624 EngTotalFuelUsed 1;
BA_ "SPN" SG_ 2566842624 EngTotalFuelUsed 250;
BA_ "SigType" SG_ 2566842624 EngTotalFuelUsed 1;
BA_ "TelematicsLoggingEnabled" SG_ 2566842624 EngTotalFuelUsed 1;
BA_ "TelematicsLoggingKey" SG_ 2566842624 EngTotalFuelUsed "value.custom.value.common.engine.fuel.used.total";
BA_ "GenSigStartValue" SG_ 2566842624 EngTripFuel 0;
BA_ "GeneratorName" SG_ 2566842624 EngTripFuel "TripFuel";
BA_ "IsPermanent" SG_ 2566842624 EngTripFuel 0;
BA_ "SPN" SG_ 2566842624 EngTripFuel 182;
BA_ "SigType" SG_ 2566842624 EngTripFuel 1;
BA_ "GenSigStartValue" SG_ 2364539904 EngStarterMode 0;
BA_ "GeneratorName" SG_ 2364539904 EngStarterMode "EngineStarterMode";
BA_ "IsPermanent" SG_ 2364539904 EngStarterMode 0;
BA_ "SPN" SG_ 2364539904 EngStarterMode 1675;
BA_ "SigType" SG_ 2364539904 EngStarterMode 4;
BA_ "GenSigStartValue" SG_ 2364539904 EngSpeed 0;
BA_ "GeneratorName" SG_ 2364539904 EngSpeed "EngineSpeed";
BA_ "IsPermanent" SG_ 2364539904 EngSpeed 0;
BA_ "SPN" SG_ 2364539904 EngSpeed 190;
BA_ "SigType" SG_ 2364539904 EngSpeed 1;
BA_ "TelematicsLoggingEnabled" SG_ 2364539904 EngSpeed 1;
BA_ "TelematicsLoggingKey" SG_ 2364539904 EngSpeed "value.custom.value.common.engine.speed";
BA_ "GenSigStartValue" SG_ 2364539904 ActualEngPercentTorque 125;
BA_ "GeneratorName" SG_ 2364539904 ActualEngPercentTorque "EngineTorque";
BA_ "IsPermanent" SG_ 2364539904 ActualEngPercentTorque 0;
BA_ "SPN" SG_ 2364539904 ActualEngPercentTorque 513;
BA_ "SigType" SG_ 2364539904 ActualEngPercentTorque 1;
BA_ "TelematicsLoggingEnabled" SG_ 2364539904 ActualEngPercentTorque 1;
BA_ "TelematicsLoggingKey" SG_ 2364539904 ActualEngPercentTorque "value.custom.value.common.engine.torque.actual";
BA_ "GenSigStartValue" SG_ 2566841600 EngTotalHoursOfOperation 0;
BA_ "GeneratorName" SG_ 2566841600 EngTotalHoursOfOperation "OperatingHours";
BA_ "IsPermanent" SG_ 2566841600 EngTotalHoursOfOperation 0;
BA_ "SPN" SG_ 2566841600 EngTotalHoursOfOperation 247;
BA_ "SigType" SG_ 2566841600 EngTotalHoursOfOperation 1;
BA_ "TelematicsLoggingEnabled" SG_ 2566841600 EngTotalHoursOfOperation 1;
BA_ "TelematicsLoggingKey" SG_ 2566841600 EngTotalHoursOfOperation "value.custom.value.common.engine.hours.total";
VAL_ 2364539904 EngStarterMode 0 "startNotRqed" 1 "starterActiveGearNotEngaged" 2 "starterActiveGearEngaged" 3 "strtFnshdStrtrNtActvAftrHvngBnA" 4 "strtrInhbtdDToEngAlreadyRunning" 5 "strtrInhbtdDTEngNtReadyForStart" 6 "strtrInhbtdDTDrvlnEnggdOthrTrns" 7 "strtrInhbtdDToActiveImmobilizer" 8 "strtrInhbtdDueToStarterOvertemp" 9 "1011Reserved" 12 "starterInhibitedReasonUnknown" 14 "error" 15 "notAvailable" ;