샘플 데이터그램에는 각 "핑" 신호의 샘플 데이터가 저장됩니다. 이 데이터그램은 DataType 파라미터에 따라 다른 유형의 데이터가 저장되기 때문에 크기가 다를 수 있습니다.
설명
struct SampleDatagram
{
DatagramHeaderDgHeader; // "RAW3"
char ChannelID[128]; // Channel identification string
short Datatype;
// Bit0 = Power
// Bit1 = Angle
// Bit2 = ComplexFloat16
// Bit3 = ComplexFloat32
// Bit8-10: Number of Complex per Samples
char Spare[2];
long Offset; // First sample number
long Count; // Number of samples
byte Samples[]; // Received sample values
};
설명
이 구조에서 "//" 문자에 이어 나오는 정보는 해당 라인의 주석입니다.
Samples[] 값의 수는 Count 및 Datatype의 값에 따라 달라집니다.
예를 들어 DataType의 십진수 값이 1032라고 하면 Samples[]에는 ComplexFloat32 샘플이 저장되며, 각 샘플은 4개의 복소수(트랜스듀서 사분면 4개당 1개씩)로 구성됩니다. 이 경우 Samples[]은
32비트 부동 소수점의 4*2*Count 값으로 구성됩니다. 이는 샘플마다 4개의 복소수가 각각 실수 영역 1개와 허수 영역 1개로 구성되기 때문입니다. 샘플 값 S(i,n)은 다음과 같이 정렬됩니다.
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)), ...