This project is a telemetry data processing pipeline. It ingests raw vehicle sensor data, processes it through multiple formats, and stores it in InfluxDB while also preparing it for replay visualization.
The pipeline transforms raw telemetry data through the following stages:
Raw Data Files CSV Files InfluxDB Format Database Storage
(.data) → (.csv) → (.line) → InfluxDB
↓
Rerun Format
(.rrd for replay)
- Upload: Raw
.datafiles are uploaded via flask appfsaelinux:6767 - Decode: Converts unknown
.dataformat to standard.csvusing CAN database definitions (.dbcfiles) - Time Conversion: Processes Unix timestamps in the data
- InfluxDB Export: Reformats CSV data for InfluxDB line protocol
- Database Storage: Writes data to InfluxDB for time-series analysis
- Replay Format: Converts CSV to Rerun format (
.rrd) for telemetry replay and visualization
- Docker and Docker Compose
- Python 3.x (for local development)
- CAN database files (
.dbc) for vehicle data decoding
# Install dependencies
pip install -r src/requirements.txt
# Run the Flask app
cd src
python -m app.appUsing Docker (Required locally):
docker-compose up --buildThis starts the Flask web server on port 6767.
- Open your browser to
http://localhost:6767 - Upload one or more
.datafiles from your vehicle - The system automatically processes them through the entire pipeline
- Track progress on the web UI
- Processed CSV files are saved to the
data/csvFiles/directory
This file is the 'map' used to convert from unknown to known
- Uses git submodule of DBCFiles from the Github
- Automatically updated on server through
watch_submodule.shscript - Located in
data/DBCFiles/
.data: Raw binary telemetry from vehicle sensors.csv: Main data format almost any data analysis tool uses.line: InfluxDB line protocol for upload.rrd: Rerun SDK format for telemetry replay and visualization