Passa al contenuto principale

File di esempio

File di esempio OSF​

La directory examples/ nel repository contiene due tipi di file con cui è possibile imparare il formato e verificare un reader passo dopo passo: file di riferimento generati (sintetici, una caratteristica per file) e campioni dal campo (registrazioni reali di dispositivi di misura optiMEAS).

File di riferimento generati​

I file in examples/generated/ vengono prodotti dall'implementazione di riferimento Delphi (riproducibili in modo non interattivo con OSFGeneratorCLI). Ogni file è mirato a una caratteristica ed esiste sia nella variante OSF4 (header XML) sia nella variante OSF5 (header JSON):

File (OSF4 / OSF5)Mostra
osf4_equidistant.osf / osf5_equidistant.osfCanale equidistante (frequenza di campionamento fissa)
osf4_scalar_numeric.osf / osf5_scalar_numeric.osfCanali scalari in virgola mobile con timestamp
osf4_scalar_int64.osf / osf5_scalar_int64.osfCanale intero a 64 bit con segno
osf4_scalar_unsigned.osf / osf5_scalar_unsigned.osfCanali interi senza segno
osf4_gpslocation.osf / osf5_gpslocation.osfCanale di posizione GPS
osf4_timestamped_string.osf / osf5_timestamped_string.osfDati utili string con timestamp
osf4_timestamped_binary.osf / osf5_timestamped_binary.osfBlob binary con timestamp
osf4_mixed.osf / osf5_mixed.osfPiù tipi di canale in un unico file
— / osf5_mixed_extended.osfFile OSF5 misto esteso

In totale 17 file (8 OSF4 + 9 OSF5). Un reader corretto deve elaborarli tutti senza errori. Questi file sono le fixture di lettura valide per tutti i linguaggi; l'abbinamento OSF4/OSF5 verifica al tempo stesso le regole deterministiche in base alla versione — ad esempio la terminazione null dei dati utili string/binary (OSF4 con, OSF5 senza 0x00 finale).

Campioni dal campo — registrazioni reali​

Dati reali provenienti da dispositivi optiMEAS. Coprono ciò che i file sintetici non possono: grandi numeri di canali, pattern reali di timestamp e flussi che terminano bruscamente. Un reader deve leggerli senza arresti anomali e restituire i dati presenti.

PercorsoFormatoDescrizione
motorbike.osfOSF481 canali di telemetria motociclistica — velocità, temperature, GPS, stato del sistema
steam_loco.osf (+ .csv)OSF4123 canali da una registrazione di una locomotiva a vapore (.csv è un'esportazione di riferimento degli stessi dati)
weather_station.osfzOSF4, gzip28 canali, OSFZ compresso con gzip — verifica la decompressione trasparente in lettura
Testdata Motorbike/OSFZRegistrazioni motociclistiche di più giorni in sottocartelle giornaliere (YYYYMMDD/…) — test di robustezza/lettura di massa

Aprire un file​

Il modo più rapido è il pacchetto Python 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)

I file possono essere aperti anche con l'implementazione Rust (cargo run --example inspect -- <pfad>), con quella C++ o con quella Delphi (osftool info). Un'introduzione al formato è fornita dal capitolo Formato OSF.

Questo documento è distribuito con licenza CC BY 4.0. Attribuzione: optiMEAS GmbH e optiMEAS Switzerland GmbH.