ImFusion C++ SDK 4.5.0
ImFusion::US::AcquisitionSequence Class Reference

#include <ImFusion/USImgFormation/AcquisitionSequence.h>

Collection of frame acquisition parametrizations that form a sequence. More...

Inheritance diagram for ImFusion::US::AcquisitionSequence:

Detailed Description

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
AcquisitionSequenceoperator= (const AcquisitionSequence &other)
AcquisitionSequenceoperator= (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< PulseEchoEventeventsInExecutionOrder () const
 Returns the events in the order and number of repeats they will be executed.
std::vector< PulseEchoEventframeAcquisitionEventsInExecutionOrder (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 Transducertransducer () 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< Paramm_params
 List of all registered Parameter and SubProperty instances.

Member Enumeration Documentation

◆ EnsembleMode

Defines the temporal order of execution of PulseEchoEvents of an ensembled FrameAcquisition.

Enumerator
Individual 

Each event is repeated the designated number of times before moving to the next event. [e0, e0, e0, e1, e1, e1, ...].

Frame 

All events are executed in order, then repeated the designated number of times. [e0, e1, e2, ..., e0, e1, e2, ...].

Constructor & Destructor Documentation

◆ AcquisitionSequence() [1/5]

ImFusion::US::AcquisitionSequence::AcquisitionSequence ( std::vector< FrameAcquisition > acquisitions)
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.

Exceptions
std::invalid_argumentif the acquisitions vector is empty.

◆ AcquisitionSequence() [2/5]

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.

Exceptions
std::invalid_argumentif 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.

◆ AcquisitionSequence() [3/5]

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.

Exceptions
std::invalid_argumentif 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.

◆ AcquisitionSequence() [4/5]

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.

Exceptions
std::invalid_argumentif 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.

◆ AcquisitionSequence() [5/5]

ImFusion::US::AcquisitionSequence::AcquisitionSequence ( )

Default construction for an empty sequence.

This is useful for serialization and deserialization, but the sequence will be empty.

Member Function Documentation

◆ effectiveFrameAcquisition()

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.

Exceptions
std::out_of_rangeif the index is out of range.

◆ configure()

void ImFusion::US::AcquisitionSequence::configure ( const Properties * p)
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.

See also
configuration() for the inverse functionality

Reimplemented from ImFusion::Configurable.

◆ configuration()

void ImFusion::US::AcquisitionSequence::configuration ( Properties * p) const
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.

See also
configure() for the inverse functionality

Reimplemented from ImFusion::Configurable.


The documentation for this class was generated from the following file:
  • ImFusion/USImgFormation/AcquisitionSequence.h
Search Tab / S to search, Esc to close