MDF4 Lib
Function Library for Reading and Writing MDF3 and MDF4 Files

High-Performance Function Library for Reading and Writing MDF3 and MDF4 Files

MDF4 Lib is a powerful function library; in its base variant you can use it to validate and sort MDF files as well as read them into your own applications.

The new ASAM-standardized MDF4 is supported in addition to the widely used MDF3 format. Base variant can be expanded by adding an option that supports writing files, allowing users to create and read MDF files. The library offers a convenient interface, which you can use to access signal data and supplemental information in an MDF file, regardless of the specific MDF version (3.x/4.x).

Graphic MDF4 Lib
Function library MDF4 Lib integrates measurement data formats like MDF3 and MDF4 easily and quickly in your applications

Advantages

  • Easy to use function library for generating*, validating**, sorting** and reading MDF files
  • Version-independent access to MDF3 and MDF4 formats
  • Quick and memory-optimized opening of multiple MDF files
  • Efficient reading of signal data for sorted files
  • Easy generation of MDF objects and writing of signal data for the offline use case*
  • Convenient access to various types of MDF meta information
  • Seamless data transfer from Vector tools and data loggers, which offer MDF as an output or export format
  • Use of a tested and practice proven standard component reduces effort for training, development, testing and maintenance

* Functionality of optional available "write option"

** Functionality is currently available in Windows only

Highlights Version 1.7

  • A new interface enables convenient access to all library methods with the popular Python programming language (Windows and Linux, Python 3.4 and higher)
  • Easy conversion of an existing MDF 4.x file to an MDF 4.1 file with compressed or uncompressed signal data (zip/unzip)
  • To enable compact storage of nested structures with arrays as members, the function library now supports “arrays of structures.”
  • Read and write time synchronization information (name and class of time source)
  • Supports new flags and data types which will be introduced in ASAM MDF version 4.2 (release planned for mid-2019)
  • Performance optimizations for reading multiple physical signal values with just one call (MultiRead methods) if a linear conversion rule is used

Functions

  • Multiple MDF files may be opened or generated* starting from a central File Manager Object. Related sub-objects might also be read or written, depending on the desired information. The specific objects and their methods are accessed via interface pointers. This lets you evaluate the MDF features independent of the MDF version.
  • For quick access to signal values, the MDF files can be sorted** before opening. In writing*, the MDF4 Lib only supports generation of already sorted MDF files, i.e. only records for one sampling rate may be written at a time (offline use case).
  • MDF4 Lib can be used to validate MDF files, i.e. check them for possible format errors or inconsistencies, e.g. before being imported into an archiving system. The object orientation and hierarchical structuring of the interface (API) lets users quickly learn and intuitively apply the available functionality. A detailed online Help and sample projects with documented source code permit quick training without requiring detailed knowledge of the MDF format. IntelliSense - which is available in modern development environments such as MS Visual Studio - also supports you in quick and convenient coding.
  • The generation of objects "on demand" and their management by "reference counting" permit efficient and resource-economic implementations. In C++, when the supplied “smart pointer” class is used, it is even possible to omit an explicit release of the objects. This approach helps to avoid resource leaks. It also reduces the scope and complexity of your code, which generally improves its maintainability and readability.
  • All library calls are thread-safe. The library thus may be used in a multi-threading use case, e.g. to evaluate each MDF file in a separate thread. Additional optimizations may be enabled for this case.
  • For diagnostics, the logging capabilities of MDF4 Lib can be used to log any error and warning messages or optionally all library calls. In addition to logging these messages to a file, they alternatively may be a collected by a callback routine, e.g. for custom evaluation or display.
  • If the writing* of an MDF file is terminated unexpectedly, e.g. due to power off or a tool crash, it might no longer be possible to properly finalize the file. The MDF4 Lib marks such an MDF file as "unfinalized" according to ASAM COMMON MDF 4.1.1. During read-in, the MDF4 Lib recognizes MDF files that are marked as unfinalized. MDF4 Lib might be able to finalize** such a file at a later time, depending on the tool that generated it or the type of finalization steps that are missing.
  • The MDF4 Lib is available both as unicode and as multi-byte string (MBCS) veriant. You can use the variant that matches your project settings to avoid time-consuming and cumbersome string conversions.

* Functionality of optional available "write option"

** Functionality is currently available in Windows only

Variants

The base variant can be extended by a “write option” that makes it possible not only to read, but also to generate MDF files. As is the case with reading, all MDF versions are also supported in writing.

Product Descriptions

Fact Sheet:

Product Information:

 

Show more

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#)
  • 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
Show more