MDF4 LibFunction Library for Reading and Writing MDF3 and MDF4 Files
Powerful function library for accessing MDF3 and MDF4 files.
The MDF4 Lib is a powerful and easy-to-use function library for validating, sorting, reading and writing MDF files. It provides a convenient interface to access signal
data and additional information in an MDF file, independent of the respective MDF version. It supports the ASAM standard MDF4 as well as the older format MDF3. The MDF4 Lib is available for C++, Python and .NET on Windows with also support for Linux.
- Easy-to-use function library for creating*, validating**, sorting and reading of MDF files
- Version-independent access to the formats MDF3 and MDF4
- Quick and memory optimized opening of multiple MDF files
- Efficient reading of signal data for sorted files
- Simple generation of MDF objects and writing of signal data in the offline use case*
- Convenient access to various MDF additional information
- Seamless data transfer from Vector Tools and data loggers that offer MDF as output or export format
- The use of a tested and field proven standard component reduces the effort for training, development, testing and maintenance
* functionality of the optional "write" option
** currently only available under Windows
Highlights Version 1.8
- Files with the new ASAM MDF 4.2 format can now be read and validated, especially with the new column oriented storage
- Nested structures with arrays as members can now also be created in any depth (keyword: “Arrays of Structures”)
- Unfinalized MDF files which were created by CANape from version 19.0 can also be finalized with MDF4 Lib
- Resetting signal data of a channel group is now easily possible so that it can be overwritten with data (e.g. for editing or appending samples)
- The performance of the “Seek method” especially on compressed signal data has been improved by using a new MDF 4.2 feature
- The functionality to finalize and sort MDF files is now available for Linux
- A new interface allows the use of the MDF4 Lib in a .NET Core application (only for Windows)
- Starting from a central File Manager object, several MDF files can be opened or created* simultaneously. The elements and data in the file are accessed via objects (Python, .NET) or interface pointers (C++) and their properties and methods. This allows MDF files to be evaluated independently of the MDF version without the need for case distinctions in the code.
- For quick access to signal values, MDF files can be sorted before opening. When writing* sorted files are always generated. Only one measurement grid is written at a time (offline use case).
- Validation or checking of MDF files for possible format errors is easily possible, e.g. before import into an archiving system.
- Thanks to the object orientation and hierarchical structuring of the interface (API), the available functionality can be quickly grasped and intuitively used.
- An extensive online help and sample projects with documented source code allow a quick familiarization without detailed knowledge of the MDF format. Intelli-Sense, which is available in modern development environments such as MS Visual Studio, also supports you in coding quickly and conveniently.
- The creation of objects “on demand” and their management by means of “reference counting” enable an efficient and resource saving implementation. To avoid resource leaks in C++ explicit sharing of objects can be omitted when using the supplied “smart pointer” class. This also reduces the size and complexity of your code, which usually improves maintainability and readability.
- All calls to the library are threadsafe. Additional optimizations can be enabled for the optional multi-threading use case. This allows parallel processing of tasks e.g. for evaluating each MDF file in a separate thread.
- For error diagnosis, any error and warning messages or optionally all library calls can be logged to a file using the logging options. Alternatively the messages can also be recorded via CallBack e.g. for your own evaluation or display.
The basic version of the MDF4 Lib can be extended by purchasing a “write option”, so that in addition to reading also the creation of MDF files is possible. As with reading, all MDF versions are supported for writing although when writing an older MDF version some features are not possible due to the format. In addition the MDF4 Lib currently only supports writing sorted MDF files (offline use case). On Windows the MDF4 Lib is available as both a 32-bit and 64-bit component. There is also a Unicode and a multi-byte string (MBCS) variant. On Linux it is only available as a 64-bit component with UTF-8 string support.
System Requirements for Windows:
- C++ Interface: Microsoft Visual C++ Version 6.0 or higher
- .NET Interface: Microsoft .NET 4.0 framework or higher and respective .NET language (e.g. Microsoft Visual C#)
- .NET Core Interface: Microsoft .NET Core 3.1 or higher and respective .NET language (e.g. Microsoft Visual C#)
- Python interface: Python 3.4 or higher, and NumPy in a version matching the Python version
- Windows 10/8.1/8/7
- For access to XML features with MDF4, in addition the Microsoft MSXML Parser V6 is required
System Requirements for Linux:
- C++ Interface: GNU Compiler GCC C/C++ Version 4.8.3 or higher
- Linux system with x86_64 architecture
- Required system libraries: libc6, libstdc++6, libpthread, libdl
- For access to XML features in MDF4, the XML Parser libxml2 is also required