1#ifndef PACEMAKER_INCA_SESSION_HPP_
2#define PACEMAKER_INCA_SESSION_HPP_
62 [[nodiscard]]
static auto connect(
const std::function<IDispatch *(
void)> &factory) ->
Session;
126 auto set_param(
const std::string &name,
double value) -> void;
165 std::unique_ptr<Impl> pimpl;
167 explicit Session(
const std::function<IDispatch *(
void)> &factory);
175 static constexpr std::chrono::milliseconds k_flush_delay{40};
Top-level session object that owns the connection to a running INCA instance.
Session(Session &&)=delete
Move construction is deleted; the session has a unique identity.
~Session()
Destructor; triggers disconnection from INCA via IncaProxy.
static auto connect(const std::function< IDispatch *(void)> &factory) -> Session
Factory function that connects to a running INCA instance and returns an initialised Session.
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.
Session & operator=(const Session &)=delete
Copying assignment is deleted; the COM connection must not be duplicated.
static auto connect() -> Session
Factory function that connects to a running INCA instance and returns an initialised Session.
auto reset() -> void
Resets all registered parameters to their reference-page values and clears the internal parameter tab...
Session & operator=(Session &&)=delete
Move assignment is deleted; the session has a unique identity.
auto stop_recording(const std::filesystem::path &filename) -> void
Stops the recording, saves the measurement data, and resets all registered parameters.
Session(const Session &)=delete
Copying is deleted; the COM connection must not be duplicated.