Skip to main content

Integration package for ASAM related projects

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asamint-0.2.2.tar.gz (352.7 kB view details)

Uploaded Source

File details

Details for the file asamint-0.2.2.tar.gz.

File metadata

  • Download URL: asamint-0.2.2.tar.gz
  • Upload date:
  • Size: 352.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for asamint-0.2.2.tar.gz
Algorithm Hash digest
SHA256 6f4172147aeb9670ff61048da49ba830149ea622e01a1524e449092104fa7b7d
MD5 b1829688665267c7b8b1cf0f29e252b8
BLAKE2b-256 cd7963a533ba213499610930e5b3137546179ea83ab05f221da4d4ef2eaf93ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page