![]() |
ImFusion C++ SDK 4.5.0
|
#include <ImFusion/USImgFormation/AcquisitionSequence.h>
Collection of frame acquisition parametrizations that form a sequence. More...
Collection of frame acquisition parametrizations that form a sequence.
This is the configuration used to program the ultrasound system. If there are multiple FrameAcquisitions, the order of execution of their individual events can be defined, if desired.
Classes | |
| struct | EventIndex |
| Identifies a specific event within a specific FrameAcquisition. More... | |
Public Types | |
| enum class | EnsembleMode : int { Individual , Frame } |
| Defines the temporal order of execution of PulseEchoEvents of an ensembled FrameAcquisition. More... | |
Public Member Functions | |
| AcquisitionSequence (std::vector< FrameAcquisition > acquisitions) | |
| Constructs an AcquisitionSequence from the given FrameAcquisitions, with all events executed in order. | |
| AcquisitionSequence (std::vector< FrameAcquisition > acquisitions, std::vector< int > ensembleSizes, std::vector< EnsembleMode > ensembleModes, std::vector< std::optional< double > > interEventDelays) | |
| Constructs an AcquisitionSequence from the given FrameAcquisitions, ensemble sizes and modes and optional inter event delays in seconds. | |
| AcquisitionSequence (std::vector< FrameAcquisition > acquisitions, std::vector< EventIndex > eventOrder, std::vector< std::optional< double > > interEventDelays) | |
| Constructs an AcquisitionSequence from a list of FrameAcquisitions with user-specified interleaving. | |
| AcquisitionSequence (Transducer transducer, std::vector< PulseEchoEvent > events, std::vector< int > eventToFrameMapping, std::vector< std::optional< double > > interEventDelays) | |
| Constructs a fully bespoke AcquisitionSequence from the given PulseEchoEvents, association to a logical frame acquisition and optional inter event delays in seconds. | |
| AcquisitionSequence () | |
| Default construction for an empty sequence. | |
| AcquisitionSequence (const AcquisitionSequence &other) | |
| AcquisitionSequence (AcquisitionSequence &&other) noexcept | |
| AcquisitionSequence & | operator= (const AcquisitionSequence &other) |
| AcquisitionSequence & | operator= (AcquisitionSequence &&other) noexcept |
| const std::vector< FrameAcquisition > & | frameAcquisitions () const |
| Returns the acquisitions. | |
| std::vector< FrameAcquisition > & | frameAcquisitions () |
| FrameAcquisition | effectiveFrameAcquisition (int acquisitionIndex) const |
| Returns the acquisition with the given index, with the events in the order and number of repeats they will be executed. | |
| const std::vector< EventIndex > & | eventOrder () const |
| Returns the event order as (acquisition index, event index) pairs. | |
| int | numFrameAcquisitions () const |
| Returns the number of FrameAcquisitions in the sequence. | |
| int | numEvents () const |
| Returns the total number of events in the sequence. | |
| std::vector< PulseEchoEvent > | eventsInExecutionOrder () const |
| Returns the events in the order and number of repeats they will be executed. | |
| std::vector< PulseEchoEvent > | frameAcquisitionEventsInExecutionOrder (int acquisitionIndex) const |
| Returns the events of one FrameAcquisition, in the order and number of repeats they will be executed. | |
| const std::vector< std::optional< double > > & | interEventDelays () const |
| Returns the desired inter event delays in seconds. | |
| std::vector< std::optional< double > > & | interEventDelays () |
| Returns the desired inter event delays in seconds. | |
| const Transducer & | transducer () const |
| bool | operator== (const AcquisitionSequence &other) const |
| bool | operator!= (const AcquisitionSequence &other) const |
| void | configure (const Properties *p) override |
| Configure this object instance by de-serializing the given Properties. | |
| void | configuration (Properties *p) const override |
| Serialize the current object configuration into the given Properties object. | |
| Public Member Functions inherited from ImFusion::Configurable | |
| virtual void | configureDefaults () |
| Retrieve the properties of this object, replaces values with their defaults and sets it again. | |
| void | registerParameter (ParameterBase *param) |
| Register the given Parameter or SubProperty, so that it will be configured during configure()/configuration(). | |
| void | unregisterParameter (const ParameterBase *param) |
| Remove the given Parameter or SubProperty from the list of registered parameters. | |
| Configurable (const Configurable &rhs) | |
| Configurable (Configurable &&rhs) noexcept | |
| Configurable & | operator= (const Configurable &) |
| Configurable & | operator= (Configurable &&) noexcept |
Additional Inherited Members | |
| Public Attributes inherited from ImFusion::Configurable | |
| Signal | signalParametersChanged |
| Emitted whenever one of the registered Parameters' or SubPropertys' signalValueChanged signal was emitted. | |
| Protected Attributes inherited from ImFusion::Configurable | |
| std::vector< Param > | m_params |
| List of all registered Parameter and SubProperty instances. | |
|
strong |
Defines the temporal order of execution of PulseEchoEvents of an ensembled FrameAcquisition.
|
explicit |
Constructs an AcquisitionSequence from the given FrameAcquisitions, with all events executed in order.
The individual events are executed in the order they appear in the FrameAcquisitions, one after the other.
| std::invalid_argument | if the acquisitions vector is empty. |
| ImFusion::US::AcquisitionSequence::AcquisitionSequence | ( | std::vector< FrameAcquisition > | acquisitions, |
| std::vector< int > | ensembleSizes, | ||
| std::vector< EnsembleMode > | ensembleModes, | ||
| std::vector< std::optional< double > > | interEventDelays ) |
Constructs an AcquisitionSequence from the given FrameAcquisitions, ensemble sizes and modes and optional inter event delays in seconds.
The individual events are executed in the order they appear in the FrameAcquisitions (considering the ensemble modes) and the frames one after the other.
So an AcquisitionSequence with two FrameAcquisitions, each with three events, and ensemble size 1 (no repeats) will execute the events in the order: [frame_a, frame_b] -> [a_0, a_1, a_2, b_0, b_1, b_2]
interEventDelays[i] specifies the delay after each event in the i-th FrameAcquisition before the next event is executed. If interEventDelays[i] is std::nullopt, the physical minimum delay between all events of the i-th FrameAcquisition is used, based on their parameters (e.g. depth, speed of sound) and system hardware limitations.
| std::invalid_argument | if the acquisitions vector is empty, if the ensembleSizes, ensembleModes or interEventDelays size does not match the acquisitions size, or if any ensemble size is less than 1 or any inter event delay is negative. |
| ImFusion::US::AcquisitionSequence::AcquisitionSequence | ( | std::vector< FrameAcquisition > | acquisitions, |
| std::vector< EventIndex > | eventOrder, | ||
| std::vector< std::optional< double > > | interEventDelays ) |
Constructs an AcquisitionSequence from a list of FrameAcquisitions with user-specified interleaving.
The individual events are executed in the order specified by the eventOrder vector, which contains pairs of (acquisition index, event index).
An AcquisitionSequence with two FrameAcquisitions [frame_a, frame_b], each with three events, and an event order of [ (0, 0), (1, 0), (0, 1), (0, 2), (1, 1), (1, 2) ] will execute the events in the order: [a_0, b_0, a_1, a_2, b_1, b_2]
Specifying multiple occurrences of the same event index allows to repeat events as needed, but all events of a FrameAcquisition must be covered by the eventOrder the same number of times. The number of repeats can differ between events of different FrameAcquisitions.
interEventDelays[i] specifies the delay after each event in the i-th FrameAcquisition before the next event is executed. If interEventDelays[i] is std::nullopt, the physical minimum delay between all events of the i-th FrameAcquisition is used, based on their parameters (e.g. depth, speed of sound) and system hardware limitations.
| std::invalid_argument | if the list of FrameAcquisitions is empty, if the eventOrder vector contains invalid indices, if the FrameAcquisition and interEventDelays sizes do not match, or if the eventOrder vector does not cover all events, or if the number of event occurrences does not match within each FrameAcquisition. |
| ImFusion::US::AcquisitionSequence::AcquisitionSequence | ( | Transducer | transducer, |
| std::vector< PulseEchoEvent > | events, | ||
| std::vector< int > | eventToFrameMapping, | ||
| std::vector< std::optional< double > > | interEventDelays ) |
Constructs a fully bespoke AcquisitionSequence from the given PulseEchoEvents, association to a logical frame acquisition and optional inter event delays in seconds.
The individual events are executed in the order they appear in the events vector.
interEventDelays[i] specifies the delay after events[i] before the next event is executed. If interEventDelays[i] is std::nullopt, the physical minimum delay for the given event is used, based on its parameters (e.g. depth, speed of sound) and system hardware limitations.
| std::invalid_argument | if the events vector is empty, if the eventToFrameMapping or interEventDelays size does not match the events size, or if any frame index in eventToFrameMapping or any inter event delay is negative. |
| ImFusion::US::AcquisitionSequence::AcquisitionSequence | ( | ) |
Default construction for an empty sequence.
This is useful for serialization and deserialization, but the sequence will be empty.
| FrameAcquisition ImFusion::US::AcquisitionSequence::effectiveFrameAcquisition | ( | int | acquisitionIndex | ) | const |
Returns the acquisition with the given index, with the events in the order and number of repeats they will be executed.
| std::out_of_range | if the index is out of range. |
|
overridevirtual |
Configure this object instance by de-serializing the given Properties.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from ImFusion::Configurable.
|
overridevirtual |
Serialize the current object configuration into the given Properties object.
The default implementation will do so automatically for all registered Parameter and SubProperty instances.
Reimplemented from ImFusion::Configurable.