cddtools is a standalone Python package for parsing CANdela .cdd diagnostic
files into JSON. It can be used as a Python library or as a command-line JSON
exporter.
- Parse
.cddfiles and export JSON. - Parse ECU, variants, UDS services, request parameters, and response parameters.
- Parse CAN addressing, UDS timing, DID, DTC, CDD data types, enums, text tables, lengths, byte order, units, factor/offset, and related metadata.
- Include separate
didListanddtcListfields in full JSON output. - Export DID or DTC lists separately.
- Write JSON to stdout or to a specified output file.
- Provide Python APIs:
parse_tester_info(),parse(),parse_dids(),parse_dtcs(), andload_file().
pip install -e .Write JSON to a file:
cddtools parse input.cdd output.json --parseRespWrite JSON to stdout:
python -m cddtools parse input.cddSupported commands:
parseparseTesterInfoparse-tester-infoparseDidsparse-didsparseDtcsparse-dtcs
parse currently returns the same JSON shape as parseTesterInfo.
Export DID or DTC separately:
python -m cddtools parseDids input.cdd
python -m cddtools parseDtcs input.cddfrom cddtools import parse, parse_dids, parse_dtcs, parse_tester_info
result = parse_tester_info("input.cdd")
same_shape = parse("input.cdd")
did_list = parse_dids("input.cdd")
dtc_list = parse_dtcs("input.cdd")The result is a dictionary:
{
"error": 0,
"data": {
"CDD": {
"ECU_NAME": {
"id": "...",
"name": "ECU_NAME",
"type": "can",
"udsTime": {},
"seqList": [],
"address": [],
"didList": [],
"dtcList": [],
"allServiceList": {}
}
}
}
}On failure:
{
"error": 1,
"message": "error message"
}A minimal example is included:
python -m cddtools parse examples/Multilingual-Example.cddpython -m unittest discover -s tests -p "test_*.py"