Zum Hauptinhalt springen

Datei-Beispiele

OSF-Beispieldateien

Das Verzeichnis examples/ im Repository enthält zwei Arten von Dateien, mit denen sich das Format erlernen und ein Reader stückweise prüfen lässt: generierte Referenzdateien (synthetisch, ein Merkmal pro Datei) und Feldproben (echte Aufnahmen von optiMEAS-Messgeräten).

Generierte Referenzdateien

Die Dateien unter examples/generated/ werden von der Delphi-Referenzimplementierung erzeugt (nicht-interaktiv mit OSFGeneratorCLI reproduzierbar). Jede Datei zielt auf ein Merkmal, und es gibt sie jeweils als OSF4-Variante (XML-Header) und OSF5-Variante (JSON-Header):

Datei (OSF4 / OSF5)Zeigt
osf4_equidistant.osf / osf5_equidistant.osfÄquidistanter Kanal (feste Abtastrate)
osf4_scalar_numeric.osf / osf5_scalar_numeric.osfZeitgestempelte Fließkomma-Skalarkanäle
osf4_scalar_int64.osf / osf5_scalar_int64.osfVorzeichenbehafteter 64-Bit-Ganzzahl-Kanal
osf4_scalar_unsigned.osf / osf5_scalar_unsigned.osfVorzeichenlose Ganzzahl-Kanäle
osf4_gpslocation.osf / osf5_gpslocation.osfGPS-Positions-Kanal
osf4_timestamped_string.osf / osf5_timestamped_string.osfZeitgestempelte string-Nutzdaten
osf4_timestamped_binary.osf / osf5_timestamped_binary.osfZeitgestempelte binary-Blobs
osf4_mixed.osf / osf5_mixed.osfMehrere Kanaltypen in einer Datei
— / osf5_mixed_extended.osfErweiterte gemischte OSF5-Datei

Insgesamt 17 Dateien (8 OSF4 + 9 OSF5). Ein korrekter Reader muss alle fehlerfrei verarbeiten. Diese Dateien sind die sprachübergreifenden Lese-Fixtures; die OSF4/OSF5-Paarung prüft zugleich die versions­deterministischen Regeln — etwa die Null-Terminierung von string-/binary-Nutzdaten (OSF4 mit, OSF5 ohne abschließendes 0x00).

Feldproben — echte Aufnahmen

Echte Daten von optiMEAS-Geräten. Sie decken ab, was synthetische Dateien nicht können: große Kanalzahlen, reale Zeitstempel-Muster und abrupt endende Ströme. Ein Reader soll sie ohne Absturz lesen und die vorhandenen Daten zurückliefern.

PfadFormatBeschreibung
motorbike.osfOSF481 Kanäle Motorrad-Telemetrie — Geschwindigkeiten, Temperaturen, GPS, Systemstatus
steam_loco.osf (+ .csv)OSF4123 Kanäle aus einer Dampflok-Aufnahme (.csv ist ein Referenz-Export derselben Daten)
weather_station.osfzOSF4, gzip28 Kanäle, gzip-komprimiertes OSFZ — prüft die transparente Dekompression beim Lesen
Testdata Motorbike/OSFZMehrtägige Motorrad-Aufnahmen in Tages-Unterordnern (YYYYMMDD/…) — Robustheits-/Massen-Lesetests

Eine Datei öffnen

Am schnellsten geht das mit dem Python-Paket osfdata:

import osf

mgr = osf.load("examples/steam_loco.osf")
print(f"{len(mgr)} Kanäle")
for ch in mgr.channels:
print(ch.name, ch.data_type, ch.sample_count)

Ebenso lassen sich die Dateien mit der Rust- (cargo run --example inspect -- <pfad>), der C++- oder der Delphi-Implementierung (osftool info) öffnen. Eine Format-Einführung gibt das Kapitel OSF-Format.