1#ifndef PACEMAKER_INCA_EXPERIMENT_HPP_
2#define PACEMAKER_INCA_EXPERIMENT_HPP_
6#include <unordered_map>
124 auto set_param(
const std::string &name,
double value) -> void;
145 std::unordered_map<std::string, std::size_t> m_map;
146 std::vector<pacemaker::inca::com::CalibrationScalarDataProxy> m_values;
154 static constexpr std::chrono::milliseconds k_flush_delay{40};
High-level manager for a single INCA measurement experiment run.
Experiment(pacemaker::inca::com::IncaOnlineExperimentProxy exp, pacemaker::inca::com::IncaExperimentViewProxy expview, pacemaker::inca::com::ExperimentDeviceProxy device)
Constructs an Experiment from its constituent COM proxies.
auto add_param(const std::string &name) -> void
Registers a calibration parameter for use during the experiment.
auto start_recording() -> void
Starts a new measurement recording in INCA.
auto set_param(const std::string &name, double value) -> void
Sets a registered calibration parameter to the given value.
auto stop_recording(const std::string &filename) -> void
Stops the recording, saves the data, and resets all parameters.
auto reset() -> void
Resets all registered parameters to their reference-page values and clears the internal parameter tab...
Experiment(Experiment &&)=default
Move constructor transfers ownership of all COM proxies.
Experiment & operator=(Experiment &&)=default
Move assignment transfers ownership of all COM proxies.
~Experiment()=default
Default Destructor; COM proxies are released via their own destructors.
Proxy for an INCA experiment device COM object.
Proxy for the INCA experiment-view COM object.
Proxy for the INCA online experiment COM object.