Icarus
Vehicle Simulation as a Transformable Computational Graph, built on Vulcan and Janus
Loading...
Searching...
No Matches
icarus::HDF5Recorder Class Reference

HDF5 recorder for Icarus simulations. More...

#include <HDF5Recorder.hpp>

Inheritance diagram for icarus::HDF5Recorder:
Collaboration diagram for icarus::HDF5Recorder:

Public Member Functions

 HDF5Recorder (const SignalRegistry< double > &registry, const RecordingConfig &config)
 Construct recorder from RecordingConfig.
void Open (const std::string &path) override
 Open recording file and initialize writer.
void Record (double time) override
 Record current signal values as a frame.
void Close () override
 Close recording file.
size_t FrameCount () const
 Get number of frames written.
void Flush ()
 Flush buffered data to disk.
const vulcan::io::TelemetrySchema & Schema () const
 Get the generated schema.
const std::vector< std::string > & RecordedSignals () const
 Get list of recorded signal names.
Public Member Functions inherited from icarus::Recorder
virtual ~Recorder ()=default

Detailed Description

HDF5 recorder for Icarus simulations.

Wraps Vulcan's telemetry system with automatic schema generation from the Icarus signal registry. Implements the Recorder interface.

Supports multiple modes:

  • "all" : Record all signals (outputs, inputs, params, config)
  • "outputs" : Record only output signals (default)
  • "signals" : Record signals matching include patterns

Example:

HDF5Recorder recorder(registry, config.recording);
recorder.Open("");
while (t < t_end) {
sim.Step(dt);
recorder.Record(sim.Time());
}
recorder.Close();
HDF5Recorder(const SignalRegistry< double > &registry, const RecordingConfig &config)
Construct recorder from RecordingConfig.
Definition HDF5Recorder.hpp:63

Constructor & Destructor Documentation

◆ HDF5Recorder()

icarus::HDF5Recorder::HDF5Recorder ( const SignalRegistry< double > & registry,
const RecordingConfig & config )
inline

Construct recorder from RecordingConfig.

Parameters
registryReference to signal registry (must outlive Recorder)
configRecording configuration from SimulatorConfig

Member Function Documentation

◆ Close()

void icarus::HDF5Recorder::Close ( )
inlineoverridevirtual

Close recording file.

If export_csv is enabled in config, exports data to CSV after closing HDF5.

Implements icarus::Recorder.

◆ Flush()

void icarus::HDF5Recorder::Flush ( )
inline

Flush buffered data to disk.

◆ FrameCount()

size_t icarus::HDF5Recorder::FrameCount ( ) const
inlinenodiscard

Get number of frames written.

◆ Open()

void icarus::HDF5Recorder::Open ( const std::string & path)
inlineoverridevirtual

Open recording file and initialize writer.

Parameters
pathOutput file path (overrides config.path if non-empty)

Implements icarus::Recorder.

◆ Record()

void icarus::HDF5Recorder::Record ( double time)
inlineoverridevirtual

Record current signal values as a frame.

Parameters
timeCurrent simulation time (MET)

Respects decimation setting: only writes every N frames.

Implements icarus::Recorder.

◆ RecordedSignals()

const std::vector< std::string > & icarus::HDF5Recorder::RecordedSignals ( ) const
inlinenodiscard

Get list of recorded signal names.

◆ Schema()

const vulcan::io::TelemetrySchema & icarus::HDF5Recorder::Schema ( ) const
inlinenodiscard

Get the generated schema.


The documentation for this class was generated from the following file: