MDF4 Lib
Funktionsbibliothek zum Einlesen und Schreiben von MDF3- und MDF4-Dateien

Die MDF4 Lib ist eine leistungsfähige und einfach anzuwendende Funktionsbibliothek, mit der Sie in der Basisvariante MDF-Dateien validieren, sortieren und in eigene Anwendungen einlesen können.

Neben dem weit verbreiteten MDF3-Format wird auch der neue ASAM-Standard MDF4 unterstützt. Die Basisvariante lässt sich durch den Erwerb einer „Schreib-Option“ erweitern, so dass auch das Erzeugen von MDF-Dateien möglich ist. Die Library bietet eine komfortable Schnittstelle mit der Sie auf Signaldaten und Zusatzinformationen in einer MDF-Datei zugreifen, unabhängig von der jeweiligen MDF-Version.

Vorteile

  • Einfach anzuwendende Funktionsbibliothek zum Erzeugen*, Validieren**, Sortieren** und Einlesen von MDF-Dateien
  • Versionsunabhängiger Zugriff auf die Formate MDF3 und MDF4
  • Schnelles und speicheroptimiertes Öffnen mehrerer MDF-Dateien
  • Effizientes Lesen von Signaldaten für sortierte Dateien
  • Einfaches Erzeugen von MDF-Objekten und Schreiben von Signaldaten im Offline Use Case*
  • Komfortabler Zugriff auf verschiedene MDF-Zusatzinformationen
  • Nahtlose Datenübernahme aus Vector Tools und Datenloggern, die MDF als Ausgabe- oder Export-Format anbieten
  • Der Einsatz einer geprüften und praxiserprobten Standardkomponente reduziert den Aufwand für Einarbeitung, Entwicklung, Test und Wartung

* Funktionalität der optionalen "Schreib-Option"

** derzeit nur unter Windows verfügbar

Highlights Version 1.6

  • Signaldaten mit Datentyp „Half-Precision Floating-Point" (Float16) lassen sich einlesen. Ab ASAM MDF-Version 4.2 (geplantes Release in 2018) wird dieser Typ unterstützt.
  • Um ungenützte Datenbereiche zu entfernen, können Sie die MDF-Datei neu schreiben, z.B. nach dem Löschen von Anhängen.
  • Effizienteres Lesen und Schreiben von Array-Signalen, indem bestimmte Bytes eines Records unabhängig vom Channel auf einmal gelesen bzw. geschrieben werden können.
  • Beim Lesen von mehreren Signalwerten mit nur einem Aufruf (MultiRead-Methoden) können nun optional bestimmte Warnungen ignoriert werden, wodurch sich die Verwendung der Methode vereinfacht.
  • Zusätzliche Optionen für das eingebaute Debug-Logging, die besonders für den Einsatz auf der MDF4 Lib in Server-Anwendungen sehr nützlich sind, bspw. zur Weiterschaltung der Log-Datei beim Tageswechsel oder zum automatischen Löschen von alten Log-Dateien.
  • Die nachträgliche Finalisierung von nicht abgeschlossenen MDF 4.x-Dateien, welche mit der MDF4 Lib geschrieben wurden, ist nun möglich, um bspw. die Datei nach vorzeitiger Beendigung der Hauptapplikation wiederherzustellen, etwa nach einem Stromausfall oder Systemabsturz.

Funktionen

  • Ausgehend von einem zentralen File-Manager-Objekt können mehrere MDF-Dateien geöffnet oder erzeugt* werden. Je nach gewünschter Information können entsprechende Unterobjekte gelesen oder geschrieben werden. Der Zugriff auf die jeweiligen Objekte und deren Methoden erfolgt über Interface-Pointer. Damit werten Sie die MDF-Features unabhängig von der MDF-Version aus.
  • Für den schnellen Zugriff auf Signalwerte lassen sich die MDF-Dateien vor dem Öffnen sortieren**. Beim Schreiben* unterstützt die MDF4 Lib nur die Erzeugung von bereits sortierten MDF-Dateien, d.h. es kann immer nur ein Messraster zur gleichen Zeit geschrieben werden (Offline Use Case).
  • MDF-Dateien können mit der MDF4 Lib auch validiert, d.h. auf mögliche Formatfehler oder Inkonsistenzen überprüft werden z.B. vor dem Import in ein Archivierungs-System. Durch die Objektorientierung und hierarchische Strukturierung der Schnittstelle (API) ist die zur Verfügung stehende Funktionalität schnell erfassbar und intuitiv anwendbar. Eine ausführliche Online-Hilfe und Beispielprojekte mit dokumentiertem Quellcode erlauben eine schnelle Einarbeitung ohne Detailkenntnisse des MDF-Formats. Das in modernen Entwicklungsumgebungen wie MS Visual Studio verfügbare IntelliSense unterstützt Sie zudem bei der schnellen und bequemen Codierung.
  • Die Erzeugung der Objekte „on demand" und deren Verwaltung mittels „reference counting" ermöglichen eine effiziente und ressourcenschonende Implementierung. In C++ kann bei Verwendung der mitgelieferten „Smart-Pointer"-Klasse zudem auf eine explizite Freigabe der Objekte verzichtet werden. Dadurch lassen sich Resource-Leaks besser vermeiden. Außerdem verringern sich der Umfang und die Komplexität Ihres Codes, wodurch sich i.d.R. auch seine Wartbarkeit und Lesbarkeit verbessert.
  • Alle Aufrufe der Library sind thread-sicher. Für den optionalen Multi-Threading Use Case können zusätzlich Optimierungen aktiviert werden. Damit steht der parallelen Abarbeitung von Aufgaben nichts im Weg, z.B. für die Auswertung jeder MDF-Datei in einem eigenen Thread.
  • Zur Fehlerdiagnose lassen sich über die Logging-Möglichkeiten eventuelle Fehler- und Warnmeldungen oder optional alle Library-Aufrufe in eine Datei protokollieren. Alternativ können die Meldungen per CallBack zusätzlich auch selbst erfasst werden, z.B. zur eigenen Auswertung oder Anzeige.
  • Kommt es beim Schreiben* einer MDF-Datei zu einem unerwarteten Abbruch, z.B. durch Stromausfall oder Tool-Absturz, so kann die Datei u.U. nicht mehr korrekt abgeschlossen werden. Die MDF4 Lib kennzeichnet eine solche MDF-Datei als „unfinalisiert“ entsprechend ASAM COMMON MDF 4.1.1. Beim Einlesen erkennt die MDF4 Lib als unfinalisiert gekennzeichnete MDF-Dateien. Je nach erzeugendem Tool bzw. der Art der fehlenden Finalisierungsschritte lässt sich mit der MDF4 Lib eine solche Datei nachträglich finalisieren**.
  • Die MDF4 Lib steht sowohl als Unicode- als auch als Multi-Byte-String (MBCS) Variante zur Verfügung. Verwenden Sie die Variante entsprechend Ihrer Projekteinstellungen und sparen Sie sich dadurch zeitraubende und umständliche String-Konvertierungen.

* Funktionalität der optionalen "Schreib-Option"

** derzeit nur unter Windows verfügbar

Varianten

Die Basisvariante lässt sich durch eine „Schreib-Option“ erweitern, so dass auch das Erzeugen von MDF-Dateien möglich ist. Wie beim Lesen werden auch beim Schreiben alle MDF-Versionen unterstützt.

Produktbeschreibungen

Fact Sheet:

Produktinformation:

Mehr anzeigen

Systemvoraussetzungen für Windows:

  • C++ Interface: Microsoft Visual C++ ab Version 6.0
  • .NET Interface: Microsoft .NET 4.0 Framework oder höher und entsprechende .NET Sprache (z.B. Microsoft Visual C#)
  • Windows 10/8.1/8/7
  • Für den Zugriff auf XML-Features bei MDF4 ist zusätzlich der Microsoft MSXML Parser V6 erforderlich

Systemvoraussetzungen für Linux:

  • C++ Interface: GNU Compiler GCC C/C++ ab Version 4.8.3
  • Linux-System mit x86_64-Architektur
  • Benötigte System-Bibliotheken: libc6, libstdc++6, libpthread, libdl
  • Für den Zugriff auf XML-Features bei MDF4 ist zusätzlich der XML Parser libxml2 erforderlich
Mehr anzeigen

Downloads