UDL Universal Data Logger
A tool which allows You to measure, display and change data in Your embedded system via USB or websocket connection.
Features
- Capturing of data from clients connected via USB or via websocket from the TSB Telemetry Server Backend project
- Live data is displayed in Text Boxes and y-t-plots
- Calibration data can be changed and is transferred back to the client
- Measurement data can be stored to .csv files incl. the option of a data reduction for long time measurements
- Comments can be added to specific ponts in time during running measurements
- Config file in .xlsx format is used to generate C-Code to package the desired data to the usb stream
Main Components
- UDL_UniversalDataLogger.py
- UDL_UniversalDataLogger_AUTOCODER.xlam
Programming languages
- Python
- vba
The software architecture is built around several processes to keep data acquisition reliable and the user interface responsive. One process handles the controls and plots, while another receives measurement data and writes it to disk. A separate worker merges user comments into completed measurement files, so this work does not interrupt the interface.
An alternative design concept using multithreading was tested, but did not achieve the desired performance because of Python’s Global Interpreter Lock (GIL) at that time. The GIL prevented multiple threads from executing Python code simultaneously within one process, limiting the benefit of using several CPU cores. Using separate processes allows these tasks to execute in parallel, while queues exchange commands and measurement data between them.
Data which is received either via websocket or a usb connection can be stored to a csv file. This emables detailed offline analysis and plotting.
Comments can be added within a running measurement to mark important events.