class.transmit_setup - moduleus/urx GitHub Wiki
Transmit event (active probe elements, waves, excitations, etc.).
| UAC | URX | Parameter | Datatype | Description | 
|---|---|---|---|---|
| ✓ | ✓ | active_elements | Array of Array of uint32 | Indices of active probe.elementsin transmit (start at index 0). The index of the first dimension correponds to the index inexcitations. The second dimension stores the list ofprobe.elementsindices subject to the excitation.Stored as a vector of vector of uint32. | 
| ✓ | ✓ | delays | Array of double | Delays between the start of the transmit_setup and the begining of each excitation, in [s]. The n-th element of the array corresponds to the delay of the n-th excitation in excitations. | 
| ✓ | ✓ | excitations | Array of references to excitation | List the excitation used to transmit the wave. Stored as a vector of weak pointers from field excitations of acquisition. | 
| ✓ | hw_config | hw_config | Hardware configuration of the transmit_setup. Stored as a raw objet. | |
| ✓ | ✓ | probe | Reference to probe | Reference to the probe within the array of probes in acquisition. Stored as a weak pointer from field probes of acquisition. | 
| ✓ | ✓ | time_offset | double | Time from the start of the event to the start of the transmit_setup, in [s]. Default 0. | 
| ✓ | ✓ | probe_transform | transform | Probe transform in reference to the initial probe attitude defined in probe.transform.Stored as a raw objet. | 
| ✓ | ✓ | wave | wave | Description of the wave. Stored as a raw objet. | 
The following diagram shows the transmit_setup.time_offset signification. The time_offset is expressed in reference to the start of the event:
The transmit_setup.transform field defines the spatial transform of the ultrasound probe used for the transmit. The transmit_setup.transform is added to the initial transform of the probe defined by probe.transform:
- Let $T_1$ be the initial probe transform defined byprobe.transformin world reference frame.
- Let $T_2$ be the transmit setup transform defined bytransmit_setup.transformin probe reference frame.
- The global transform, in the world reference frame, is $T_g = T_1 \circ T_2$ 
The following diagram represents an example of a transmit_setup.transform applied to a probe. probe.transform, and 
| 
 |  | 
The purpose of the fields excitations, delays and active_elements is to handle cases where:
- the active elements used in transmit change between events
- any multiplexing scheme
- probe element subject to multiple excitation (ex: biasing + excitation)
The following example shows a linear array transmitting a plane-wave on 5 elements. Note that element 2 and 6 are transmitting a different excitation than elements 3, 4 and 5:
{width="40%" height="auto"}
The fields excitations, delays and active_elements share the same indexing:
transmit_setup : {
    excitations :     {  ex0,   ex1,   ex1,   ex1,    ex0},
    delays :          {20e-9, 40e-9, 60e-9, 80e-9, 100e-9},
    active_elements : {  {2},   {3},   {4},   {5},     {6}}
}
The structure can be read as:
- "The excitation ex0is delayed20nsand applied on probe element{2}"
- "The excitation ex1is delayed40nsand applied on probe element{3}"
- ...
The following example illustrates the use of the channel_mapping with CMUT RCA:
{width="70%" height="auto"}
transmit_setup : {
    excitations :     {   ex0,   ex1,   ex1},
    delays :          { 10e-9, 40e-9, 60e-9},
    active_elements : {{2, 3},   {2},    {3}}
}
The array delays defines the time delay between the start of the transmit_setup and the start of the excitation. The index in delays is the same as the index in excitations. The following diagram shows an example for a focused wave:
transmit_setup: {
    excitations :    { ex0, ex1, ex1, ex1, ex0},
    delays :         {   8,  15,  19,  13,   6},
    active_elements : {{ 0}, {1}, {2}, {3}, {4}}
}