Convert AUTOSAR DCM/CanTp arxml to LaTeX UDS specification documents
Project description
udsxml2tex
Convert AUTOSAR DCM/CanTp arxml to LaTeX UDS specification documents
A Python library that parses AUTOSAR DCM (Diagnostic Communication Manager) and CanTp (CAN Transport Protocol) arxml configuration files and automatically generates ISO 14229 (UDS) / ISO 15765 (UDS on CAN) specification documents in LaTeX format.
Features
- Automatically extracts UDS specification data from DCM arxml files
- Diagnostic sessions
- Security access levels
- UDS service list (SID, supported sessions, NRCs, etc.)
- DID (Data Identifier) definitions
- Routine Control definitions
- Parses CanTp arxml for transport layer configuration
- Channel parameters (Block Size, STmin, channel mode)
- ISO 15765-2 timing parameters (N_As, N_Bs, N_Cs, N_Ar, N_Br, N_Cr)
- Addressing format and padding configuration
- Generates professional LaTeX specification documents
- Customizable via Jinja2 templates
- Available as both a CLI command and a Python API
- Supports merging multiple arxml files (DCM + CanTp)
Installation
pip install udsxml2tex
From source (for development):
git clone https://github.com/YutaroNakagama/udsxml2tex.git
cd udsxml2tex
pip install -e ".[dev]"
Usage
CLI
# Basic conversion
udsxml2tex input.arxml
# Specify output file
udsxml2tex input.arxml -o output.tex
# Override ECU name
udsxml2tex input.arxml --ecu-name "MyECU"
# Merge and convert multiple files (DCM + CanTp)
udsxml2tex dcm_config.arxml cantp_config.arxml -o merged_spec.tex
# Verbose logging
udsxml2tex input.arxml -v
Python API
from udsxml2tex import ArxmlParser, TexGenerator
# Parse ARXML (DCM + CanTp)
parser = ArxmlParser()
spec = parser.parse("path/to/dcm_config.arxml")
# Or merge multiple files
spec = parser.parse_multi(["dcm_config.arxml", "cantp_config.arxml"])
# Generate LaTeX
generator = TexGenerator()
generator.generate(spec, "output/uds_spec.tex")
# Get as string
tex_content = generator.generate_string(spec)
Custom Templates
You can use your own LaTeX templates:
generator = TexGenerator(template_dir="my_templates/")
generator.generate(spec, "output.tex", template_name="custom.tex.j2")
udsxml2tex input.arxml --template-dir my_templates/ --template custom.tex.j2
Compiling to PDF
The generated .tex file can be compiled to PDF using pdflatex:
# Basic compilation
pdflatex output.tex
# Full compilation (recommended — resolves cross-references and TOC)
pdflatex output.tex && pdflatex output.tex
Note: A LaTeX distribution with
pdflatexis required (e.g., TeX Live, MiKTeX). Thetikz-umlstyle file is bundled with the generated output, so no additional package installation is needed.
Generated Document Structure
The document is structured according to the OSI reference model:
- Title Page — ECU name, date
- Table of Contents
- Document Overview — OSI layer mapping overview
- Transport Layer (ISO 15765-2 / CanTp) — Channel overview, timing parameters, addressing & padding
- Session Layer (ISO 14229-2) — Diagnostic sessions (ID, P2/P2* timers)
- Application Layer (ISO 14229-1)
- UDS Services — Service overview + per-service details (sub-functions, NRCs)
- SecurityAccess (0x27) includes security access levels
- RoutineControl (0x31) includes routine overview + parameter details
- Data Identifiers (DIDs) — DID overview + data element details
- UDS Services — Service overview + per-service details (sub-functions, NRCs)
Supported arxml Structure
The following AUTOSAR module configuration elements are parsed:
| Module | Element | Description |
|---|---|---|
| DCM | DcmDsl |
Diagnostic Session Layer (protocol, timing) |
| DCM | DcmDsp |
Diagnostic Service Processing (sessions, security, DIDs, routines) |
| DCM | DcmDsd |
Diagnostic Service Dispatcher (service table) |
| CanTp | CanTpGeneral |
Main function period |
| CanTp | CanTpChannel |
Channel mode, RxNSdu/TxNSdu (BS, STmin, N_As/N_Bs/N_Cs/N_Ar/N_Br/N_Cr, padding, addressing) |
Supports AUTOSAR R4.x arxml format.
Requirements
- Python >= 3.9
- lxml >= 4.9.0
- Jinja2 >= 3.1.0
- LaTeX distribution (for compiling the generated .tex files)
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file udsxml2tex-0.8.0.tar.gz.
File metadata
- Download URL: udsxml2tex-0.8.0.tar.gz
- Upload date:
- Size: 81.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a041ace24838f91587daf9589ab7e7980c06f2b73f968a1a081b3fd32fe9394c
|
|
| MD5 |
508be66d52b31785f0eec673557fd25c
|
|
| BLAKE2b-256 |
e8420a4da89ce8d1a02ea7aaa2a8e4d3373796b6358b8bd36808f22f49c2d500
|
File details
Details for the file udsxml2tex-0.8.0-py3-none-any.whl.
File metadata
- Download URL: udsxml2tex-0.8.0-py3-none-any.whl
- Upload date:
- Size: 73.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3b803c51545ebfb269318427eeee5b74713c0e7ff4af6812752e5a1c651e821
|
|
| MD5 |
e70af66defda4f9d00f313c83232d742
|
|
| BLAKE2b-256 |
dcad56aa51f49ea15df3274a11195ad9eebde43030d7778c19cd9f55bb7faf6c
|