Skip to main content
http://img.shields.io/badge/license-GPL-blue.svg https://img.shields.io/badge/code%20style-black-000000.svg

asamint (ASAM integration package) integrates several automotive related opensource projects.

The projects in question projects are mainly following an mechanism-not-policy approach, but asamint aims to add higher level APIs, that could be used to implement common measurement and calibration tasks.

To put it into another words, asamint will be a command-line MCS (measurement and calibration system).

The aggregated Python projects in alphabetical order:

Project / repository

pip/PyPI name

asammdf

asammdf

objutils

objutils

pya2ldb

pya2ldb

pyxcp

pyxcp

And yes, all listed projects are Raspberry PI tested :smile:

Installation

clone / fork / download from here.

Then run

python setup.py develop

Dependencies

asamint currently doesn’t specify dependencies on its own – installing the above listed projects should be sufficient.

License

asamint is released under GPLv2 license terms.

Features

Note: At this stage, the project is highly experimental and hacky, so don’t expect stable APIs and tons of features!

Functions are basically orchestrated using ASAM MCD-2MC (A2L) files.

Some examples include (not necessarily in a working condition yet):

  • Create calibration data files (ASAM CDF) from XCP slaves or HEX files.

  • Setup dynamic DAQs.

  • High-level API to create MDF files.

Migration & Compatibility

  • Prefer public imports from asamint.api (Calibration/OfflineCalibration/OnlineCalibration, ParameterCache, measurement helpers, finalize_daq_csv, config snapshots) instead of deep package paths; consume pyxcp/pya2l/asammdf/objutils only through their adapters.

  • CLI/config: use asamint.cmdline.finalize_daq_csv for DAQ CSV → CSV/HDF5 finalization; configuration is traitlets-based (asamint.config) with Path and configure_logging defaults.

  • Fixtures stay under tests/ (A2L/HEX/MSRSW, DAQ CSV/HDF5); external-facing formats (CDF/MDF/HDF5) remain compatible, with new helpers added behind existing facades.

  • When migrating older code, update imports, replace direct adapter usage, and validate with poetry run pytest plus poetry run ruff check ..

API Stability & Deprecation

  • The stable public surface is exported from asamint.api. Prefer these names in application code.

  • Renamed or removed API names are kept as deprecated aliases in asamint.api and emit DeprecationWarning when accessed.

  • Deprecated aliases include a removal version in asamint.api._DEPRECATED_ALIASES; remove legacy usage before that version.

  • If you need a new alias for migration, add it to asamint.api._DEPRECATED_ALIASES and cover it with a small test.

Please refer to examples directory.

Measurement Formats & Registry

  • CSV, HDF5, and MDF handling lives under asamint.measurement.{csv,hdf5,mdf} and is registered in the measurement format registry; thin shims stay at asamint.hdf5/asamint.mdf for compatibility.

  • Custom backends can be registered without touching core code. Example (InfluxDB placeholder):

from pathlib import Path
from asamint.adapters.measurement import MeasurementFormat, register_measurement_format
from asamint import measurement

def persist_influx(*, data, units=None, project_meta=None, output_path: str | Path | None = None, **kwargs):
    return measurement.RunResult(
        mdf_path=None,
        csv_path=None,
        hdf5_path=str(output_path) if output_path else None,
        signals={},
        timebases=None,
    )

register_measurement_format(
    MeasurementFormat(
        name="INFLUX",
        persist=persist_influx,
        description="Persist measurements to InfluxDB",
        default_extension=".influx",
    )
)

Further Readings

Here’s a collection of some public accessible documents, if you want to dig deeper into the wonderworld of automotive measurement and calibration.

Miscellaneous

asamint includes some more or less useful tools.

Release files for asamint 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asamint 0.2.2
File Size Uploaded
asamint-0.2.2.tar.gz 352.7 kB Details

Release files / asamint-0.2.2.tar.gz

Download URL asamint-0.2.2.tar.gz
Size 352.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6f4172147aeb9670ff61048da49ba830149ea622e01a1524e449092104fa7b7d
BLAKE2b-256 checksum
How to use checksums
cd7963a533ba213499610930e5b3137546179ea83ab05f221da4d4ef2eaf93ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.2.2 This release

1 release file

0.1.5

1 release file

0.1.4

3 release files

0.1.3

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page