Converts a .dbc file to a JSON object that contains all BO_, SG_, VAL_ and CM_ information.
Will also provide a list of possibly incorrect signal definitions (like having both a postfix and a VAL_ entry for the same signal).
Go to https://viriciti.github.io/dbc-to-json/ and upload a .dbc file. Open your browser's console to see if there's any mistakes in the .dbc file. Fix those (using the line number provided) and reupload.
See meta/test-input/00_ReadmeExample.dbc
BO_ 123 StandardMessage: 8 Vector__XXX
SG_ Normal : 0|8@1+ (1,0) [0|0] "A" Vector__XXX
SG_ Special : 43|12@0- (0.5,-50) [0|0] "V" Vector__XXX
SG_ States : 8|2@1+ (1,0) [0|0] "" Vector__XXX
BO_ 2566906689 ExtendedMessage: 8 Vector__XXX
SG_ Multiplexor M : 0|8@1+ (1,0) [0|0] "" Vector__XXX
SG_ BatteryCell1Voltage m0 : 8|16@1+ (1,0) [0|0] "V" Vector__XXX
SG_ BatteryCell2Voltage m1 : 8|16@1+ (1,0) [0|0] "V" Vector__XXX
VAL_ 123 States 0 "Off" 1 "On" 2 "Blinking" 3 "Unavailable" ;
CM_ BO_ 123 "Small description on BO";
CM_ SG_ 123 Normal "Small description on SG";
[
{
"canId": 123,
"pgn": 123,
"name": "StandardMessage",
"isExtendedFrame": false,
"dlc": 8,
"comment": "Small description on BO",
"signals": [
{
"name": "Normal",
"label": "standard_message.normal",
"startBit": 0,
"bitLength": 8,
"isLittleEndian": true,
"isSigned": false,
"factor": 1,
"offset": 0,
"min": 0,
"max": 0,
"sourceUnit": "A",
"dataType": "int",
"comment": "Small description on SG"
},
{
"name": "Special",
"label": "standard_message.special",
"startBit": 43,
"bitLength": 12,
"isLittleEndian": true,
"isSigned": true,
"factor": 0.5,
"offset": -50,
"min": 0,
"max": 0,
"sourceUnit": "V",
"dataType": "int",
"comment": null
},
{
"name": "States",
"label": "standard_message.states",
"startBit": 8,
"bitLength": 2,
"isLittleEndian": true,
"isSigned": false,
"factor": 1,
"offset": 0,
"min": 0,
"max": 0,
"dataType": "int",
"states": [
{
"value": 0,
"state": "Off"
},
{
"value": 1,
"state": "On"
},
{
"value": 2,
"state": "Blinking"
},
{
"value": 3,
"state": "Unavailable"
}
],
"comment": null
}
],
"lineInDbc": 31,
"label": "standard_message"
},
{
"canId": 2566906689,
"pgn": 65507,
"source": 65,
"name": "ExtendedMessage",
"priority": 152,
"isExtendedFrame": true,
"dlc": 8,
"signals": [
{
"name": "Multiplexor",
"label": "extended_message.multiplexor",
"startBit": 0,
"bitLength": 8,
"isLittleEndian": true,
"isSigned": false,
"factor": 1,
"offset": 0,
"min": 0,
"max": 0,
"isMultiplexor": true,
"dataType": "int",
"comment": null
},
{
"name": "BatteryCell1Voltage",
"label": "extended_message.battery_cell1_voltage",
"startBit": 8,
"bitLength": 16,
"isLittleEndian": true,
"isSigned": false,
"factor": 1,
"offset": 0,
"min": 0,
"max": 0,
"sourceUnit": "V",
"multiplexerValue": 0,
"dataType": "int",
"comment": null
},
{
"name": "BatteryCell2Voltage",
"label": "extended_message.battery_cell2_voltage",
"startBit": 8,
"bitLength": 16,
"isLittleEndian": true,
"isSigned": false,
"factor": 1,
"offset": 0,
"min": 0,
"max": 0,
"sourceUnit": "V",
"multiplexerValue": 1,
"dataType": "int",
"comment": null
}
],
"lineInDbc": 36,
"label": "extended_message"
}
]