Datagramme binaire d’échantillon
Le datagramme échantillon contient des exemples de données de chaque « ping ». Le datagramme peut avoir différentes tailles et contenir différents types de données, en fonction du paramètre DataType. C'est un datagramme binaire. Le type est RAW3.
Description
struct SampleDatagram
  {
  DatagramHeaderDgHeader;
  char ChannelID[128];
  short Datatype;
  char Spare[2];
  long Offset;
  long Count;
  byte Samples[];
  };
Description
•  DatagramHeader DgHeader: C’est le datagramme binaire utilisé. Le type est RAW3.
•  ChannelID[128]: Ceci est l'identification du canal.
•  Datatype:
–  Bit 0 = Power
–  Bit 1 = Angle
–  Bit 2 = ComplexFloat16
–  Bit 3 = ComplexFloat32
–  Bit 8 - 10 = Number of Complex per Samples
•  Spare[2]: Ceci est un paramètre pour de futures expansions
•  Offset: C'est le premier numéro d'échantillon.
•  Count: C'est le nombre total d’échantillons.
•  Samples[]: Ce sont les valeurs d'échantillons reçues.
Le nombre de valeurs dans Samples[] dépend de la valeur de Count et du Datatype .
Les valeurs d'échantillon S (i,n) sont organisées comme suit :
Real(S(1,1)), Imag(S(1,1)),
Real(S(2,1)), Imag(S(2,1)),
Real(S(3,1)), Imag(S(3,1)),
Real(S(4,1)), Imag(S(4,1)),
Real(S(1,2)), Imag(S(1,2)), ...
Exemple
Nous avons une valeur décimale de 1032 DataType.
Nombre décimal 1032 = Hexadécimal 0408 = 0000 binaire  0100 0000 1000
•  Le bit 3 est défini sur « 1 », il s'agit de données Samples[].
•  Les bits 8 à 10 sont 100, ce qui signifie que nous avons quatre valeurs complexes par échantillon.
La valeur décimale de 1032 signifie que Samples[] contient des échantillons ComplexFloat32. Chaque échantillon est composé de quatre nombres complexes (l’un de chacun des quatre secteurs du transducteur). Dans ce cas, Samples[] est constitué de 4*2* valeurs de décompte de 32 bits. En effet, chaque échantillon est composé de quatre nombres complexes, chacun constitué d’une partie réelle et d’une partie imaginaire.