implementation.history - moduleus/urx GitHub Wiki

weak and shared pointer

All shared pointer must be stored and accessible from the root class Dataset.

Shared pointer must not be shared between multiple acquisition (for probe, excitation, group, super_group) or probe (for element_geometry and impulse_response).

The shared pointer of each weak pointer must be stored in the vector of shared pointer of its reference class.

Hardware config

The support of long double / std::vector<long double> and __int128 / std::vector<__int128> is not planned.

Hardware config can't be shared between object. If a part of Hardware config is meant to be used / duplicated / shared among several instances of the same class (ie: AFE setting in Event::HwConfig) then this part should be moved in the owner/higher class (ie: Group::HwConfig instead of Event::HwConfig). If one subclass wants to override this setting, it can define it in its own HwConfig. The lower HwConfig will prevail over the higher setting.

Acquisition class

authors is a string, not a vector of string.

MATLAB

Objets are duplicated between C++ (URX / UAC objets) and MATLAB implementation (MATLAB classes).

MATLAB and C++ object are synchronized on the fly.

When a field of a MATLAB object is modified (operator =), the same field is updated in C++ (PostSet event).

When a field of a MATLAB object is read (operator .), the data is updated from C++ (PreGet event).

Rejected features

Utils

Don't implement operator for Vector2D/Vector3D (+-/* dot norm cross ...) neither in Vector*D classes nor in utils folder. It's not possible to know which features is neededed to implement.

⚠️ **GitHub.com Fallback** ⚠️