Zum Hauptinhalt springen

Delphi-Implementierung

Die Delphi-Implementierung ist die Referenz-Implementierung des Open Streaming Format: vollständiger Lese- und Schreibpfad für OSF4 und OSF5, ein Satz Demos, und die osftool-Kommandozeile. Sie erzeugt zugleich den Satz an Referenzdateien, gegen den die übrigen Implementierungen geprüft werden. Entwickelt mit RAD Studio 23.0 (Delphi 12).

Bibliothek

Die Library-Units liegen unter implementations/delphi/src/. Die wichtigsten öffentlichen Bausteine:

UnitInhalt
OSF.TypesDatentypen und Kanaltypen (TOSFDataType, TOSFVersion, TOSFGpsLocation) und Hilfsfunktionen
OSF.FilerTOSFFile — Streaming-Reader/Writer für OSF4 und OSF5; transparente OSFZ-Dekompression; OSF4-XML-Parsing über OmniXML (keine MSXML-Abhängigkeit)
OSF.Data.ManagerTOSFDataManager — High-Level-Lesen, füllt typisierte Kanäle; Zugriff per Name
OSF.Data.Channelstypisierte In-Memory-Kanäle inkl. äquidistanter Segmente (jedes bcStartData öffnet ein Segment)
OSF.Logprozessweiter Logging-/Fortschritts-Dispatcher (Logger: TOSFLog) mit Listener-Pattern (DECISIONS §22)
OSF.Export.CSV / OSF.Export.CSV.UnifiedCSV-Export — pro Kanal (XY) bzw. gemeinsame Zeitachse
OSF.Export.HDF5HDF5-Export (Windows; ein komprimiertes Compound-Dataset je Kanal)
OSF.MergerTOSFMerger — mehrere OSF-Dateien eines Zeitintervalls zu einer Ausgabedatei zusammenführen
OSF.Meta.CacheSidecar-.json-Cache je OSF-Datei (Zeitbereiche, Sample-Zahlen) für schnelle Metadaten

Ein no-Form-Programm OSFCompileCheck.dpr im Implementierungs-Wurzel­verzeichnis deckt per uses jede Library-Unit ab und gibt nach Refactorings ein sauberes Kompilier-Signal.

Logging-Architektur

Jede Library-Unit schreibt Log- und Fortschritts-Ereignisse an den globalen Logger: TOSFLog. Anwendungen registrieren einen TLoggerListener (mit eigenem MinLevel und Event-Callbacks); der Singleton übernimmt die Verteilung. Details in DECISIONS §22.

Demos

Unter implementations/delphi/demos/:

DemoZweck
osfviewer/OSF-Datei laden, Kanäle auflisten, einen Kanal als TeeChart darstellen (nur in der IDE)
osfgenerator/schreibt den 17-Datei-Referenzsatz; die Konsolen-Variante OSFGeneratorCLI erzeugt ihn nicht-interaktiv
osfcsvexport/Pipeline-Demo TOSFFileTOSFDataManager → CSV-Export
osfmerger/VCL-Oberfläche für TOSFMerger (Win64)

Kommandozeile: osftool

osftool ist das verb-basierte Kommandozeilenwerkzeug der Delphi-Implementierung (Win64) mit neun Verben — merge, export, info, channels, stat, cache, config, convert, verify.

Die vollständige Beschreibung steht im eigenen Kapitel osftool.

Bauen

Die Library und die meisten Demos werden mit dcc32 (Win32) bzw. dcc64 (Win64) aus dem jeweiligen Projektverzeichnis übersetzt — osfmerger und osftool als Win64. Beispiel (Compile-Check):

cd implementations\delphi
dcc32 -B -Q OSFCompileCheck.dpr

Der HDF5-Export benötigt zur Laufzeit hdf5.dll; die Bindung (src/hdf5/) ist eine eigenständige, OSF-unabhängige Delphi-Anbindung an die HDF5-C-Bibliothek.

Quellcode und weiterführende Informationen