Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cddtools

中文

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.

Features

  • Parse .cdd files 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 didList and dtcList fields 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(), and load_file().

Install

pip install -e .

CLI

Write JSON to a file:

cddtools parse input.cdd output.json --parseResp

Write JSON to stdout:

python -m cddtools parse input.cdd

Supported commands:

  • parse
  • parseTesterInfo
  • parse-tester-info
  • parseDids
  • parse-dids
  • parseDtcs
  • parse-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.cdd

Python API

from 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"
}

Example

A minimal example is included:

python -m cddtools parse examples/Multilingual-Example.cdd

Documentation

Testing

python -m unittest discover -s tests -p "test_*.py"

About

A Python-based tool for parsing and analyzing CDD diagnostic files, including diagnostic services, DIDs, DTCs, and related metadata.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages