CAN J1939 Decoder Documentation
Version: 1.0.2
Retrieved: 2025-10-09 15:15:46
CAN J1939 Decoder
The module decodes a CAN message data frame, such as produced by the CAN Raw Reader module, according to the database file specified in the Database File setting.
Note
Only J1939 DBC files are supported.
Possible errors
If the Database File can not be found, is of the wrong type or cannot be loaded, the flow will fail to start. When a CAN data frame is not a hexadecimal number the module will warn and an error will be set on the message.
Settings
| Name | Requirements | Purpose | Default |
|---|---|---|---|
| Source Property | String 1-64 in length | The property containing an object with the id and the data frame. | data |
| Target Property | String 1-64 in length | The property to write the decoded object into. | target |
| Database File | String 1-64 in length | The name of the database file. | |
| Byte Order | The byte order of the CAN data frame (LittleEndian or BigEndian). | BigEndian |
Input
The database file should either be
- Uploaded as a resource and set as a resource on the flow.
- Manually placed in the './data/flowresources' folder on the node where the flow will run.
The name of the database file must include the .dbc extension. The Source Property must be an object containing both id (CAN message id) and frame (CAN message data frame) as properties.
{
"data": {
"id": 419360256
"frame": "8affffffffffffff"
}
}
Output
| Name | Type | Description |
|---|---|---|
| crosser.success | Boolean | False if an error occurred when decoding the message. |
| crosser.message | String | Contains an error message in case the decoding failed, otherwise this property is not set. |
| targetProperty | Array | An array with the message decoded to signals (objects) with name, value, unit, min, max and description. |
Example
# Settings:
Source property = data
Target property = decoded
Database File = my.dbc
Byte Order = BigEndian
# MyDbc
BO_ 2566843904 Greenhouse_1: 8 Vector__XXX
SG_ Temp1 : 8|8@1+ (1,-40) [-40|210] "deg" Vector__XXX
SG_ Temp2 : 0|8@1+ (1,-40) [-40|210] "deg" Vector__XXX
SG_ Temp3 : 16|16@1+ (0.03125,-273) [-273|1735] "deg" Vector__XXX
SG_ Temp4 : 32|16@1+ (0.03125,-273) [-273|1735] "deg" Vector__XXX
SG_ Temp5 : 48|8@1+ (1,-40) [-40|210] "deg" Vector__XXX
SG_ Temp6 : 56|8@1+ (0.4,0) [0|100] "%" Vector__XXX
VAL_ 2566843904 Temp1 0 "Error" 1 "Unavailable" 2 "Overflow" 10 "Temperature is undefined" ;
VAL_ 2566843904 Temp2 0 "Error" 1 "Unavailable" 10 "Temperature is undefined" ;
VAL_ 2566843904 Temp3 0 "Error" 1 "Unavailable" 2 "Overflow" 10 "Temperature is undefined" ;
VAL_ 2566843904 Temp4 0 "Error" 1 "Unavailable" 10 "Temperature is undefined" ;
VAL_ 2566843904 Temp5 10 "Temperature is undefined" ;
VAL_ 2566843904 Temp6 10 "Temperature is undefined" ;
# Incoming messages:
{
"data": {
"id": 419360256
"frame": "2928602200000f05"
}
}
# Outgoing messages:
# Decoded according to the database file.
{
"data": {
"id": 419360256
"frame": "2928602200000f05",
},
"decoded": [
{
"name": "Temp1",
"value": 0,
"unit": "deg",
"min": -40,
"max": 210,
"description": "Error"
},
{
"name": "Temp2",
"value": 1,
"unit": "deg",
"min": -40,
"max": 210,
"description": "Unavailable"
},
{
"name": "Temp3",
"value": 2,
"unit": "deg",
"min": -273,
"max": 1735,
"description": "Overflow"
},
{
"name": "Temp4",
"value": -273,
"unit": "deg",
"min": -273,
"max": 1735,
"description": null
},
{
"name": "Temp5",
"value": -25,
"unit": "deg",
"min": -40,
"max": 210,
"description": null
},
{
"name": "Temp6",
"value": 2,
"unit": "%",
"min": 0,
"max": 100,
"description": null
}
],
"crosser": {
"success": true
}
}
Search Documentation
Analytics Modules