ASAM ODS EXD API implementation to read external data from MDF4 files.
Project description
ASAM ODS EXD-API MDF4 plugin
This repository contains a ASAM ODS EXD-API plugin that uses asammdf to read the ASAM MDF4 files.
It is built on the ods-exd-api-box helper library which provides the gRPC server infrastructure and proto stubs.
Content
Implementation
- external_data_file.py
Implements theExdFileInterfacefromods-exd-api-boxto access MDF4 files using asammdf. Also contains the entry point to run the gRPC service.
Tests
- test_exd_api.py
Some basic tests on example files indatafolder. - example_access_exd_api_mdf4.ipynb
jupyter notebook the shows communication done by ASAM ODS server or Importer using the EXD-API plugin.
Development
Setup
Install uv and then install the project with dev dependencies:
uv sync --group dev
Run Tests
uv run python -m unittest discover tests
Run Plugin Locally
Use an explicit IPv4 bind address on Windows to avoid IPv6 bind issues:
uv run asam-ods-exd-api-mdf4 --bind-address 127.0.0.1 --port 50051
Stop the server with Ctrl+C. A non-zero exit code after interruption is expected.
Run Plugin With uvx
Run the latest published package without installing it into the current project environment:
uvx asam-ods-exd-api-mdf4 --bind-address 127.0.0.1 --port 50051
Code Quality
uv sync --group dev # 1. Install all dependencies
uv run ruff format . # 2. Format code
uv run ruff check --fix . # 3. Fix lint violations
uv run mypy external_data_file.py # 4. Type check
uv run python -m unittest discover tests # 5. Run tests
Docker
Docker Image Details
The Docker image for this project is available at:
ghcr.io/peak-solution/asam-ods-exd-api-mdf4:latest
This image is automatically built and pushed via a GitHub Actions workflow. To pull and run the image:
docker pull ghcr.io/peak-solution/asam-ods-exd-api-mdf4:latest
docker run -v /path/to/local/data:/data -p 50051:50051 ghcr.io/peak-solution/asam-ods-exd-api-mdf4:latest
Using the Docker Container
To build the Docker image locally:
docker build -t asam-ods-exd-api-mdf4 .
To start the Docker container:
docker run -v /path/to/local/data:/data -p 50051:50051 asam-ods-exd-api-mdf4
have a look at start options to figure out how to customize the behavior of the EXD-API plugin.
Architecture and Usage in ODS Server
sequenceDiagram
actor CLIENT as Client
participant PDTT as 🛠️Importer
participant PODS as 🗃️ASAM ODS server
participant PLUGIN as 📊EXD-API plugin
participant FILE as 🗂️File Storage
autonumber
opt Import phase
FILE ->>+ PDTT: New file shows up
PDTT ->>+ PLUGIN : Get Structure
PLUGIN -> FILE: Extract content information
PLUGIN ->> PLUGIN: Create Structure
PLUGIN ->>- PDTT: Return Structure
PDTT ->> PODS: Import ODS structure
Note right of PDTT: Create hierarchy<br/>AoTest,AoMeasurement,...
PDTT ->>- PODS: Add External Data info
Note right of PDTT: Attach AoFile ... for external data<br/>AoFile,AoSubmatrix,AoLocalColumn,...
end
Note over CLIENT, FILE: Now we can work with the imported files
loop Runtime phase
CLIENT ->> PODS: Establish ODS session
CLIENT ->> PODS: Work with meta data imported from structure
CLIENT ->> PODS: Access external channel in preview
PODS ->> PLUGIN: GetValues
PLUGIN ->> FILE: Get Channel values
PLUGIN ->> PODS: Return values of channels
PODS ->> CLIENT: Return values needed for plot
end
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 asam_ods_exd_api_mdf4-1.2.2.tar.gz.
File metadata
- Download URL: asam_ods_exd_api_mdf4-1.2.2.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36d9900b3753f51b5bf0435f1e40a938ac1945b7cf679c0e07bd557bcbe31346
|
|
| MD5 |
bb290d5b7b57479e45650cada5ebbb78
|
|
| BLAKE2b-256 |
e654becd173fcb2ea81d40cf02c365b9c6bf838f12f37346e48e3fd2c5a2b890
|
File details
Details for the file asam_ods_exd_api_mdf4-1.2.2-py3-none-any.whl.
File metadata
- Download URL: asam_ods_exd_api_mdf4-1.2.2-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9dd60509ed45fcdf503fb1973a9f040d9e3863e7f3440099b89307db9fa987d
|
|
| MD5 |
7f49334298e17faccbaf94678c37d92a
|
|
| BLAKE2b-256 |
56727437fbdabca3bd5286a0194098667d9a334071d55af814c573d200f5c00f
|