u16 M1_Beams; // number of beams in this section (always a multiple of 2)
u32 M1_reserved0; // reserved for future use
u32 M1_reserved1; // reserved for future use
struct
{
u16 magnitude; // values 0 to 65535 map non-linearly (due to TVG scaling and possible gain compression) to signal amplitude
} M1_Data[M1_Beams][M1_Samples]; // magnitude data (typical example: 256 beams each containing 36 two-byte structs, 16 kilobytes)
// section M2: 16-bit magnitude and phase data (present only during "magnitude and phase" water column data mode, many per ping, you assemble
them into
// complete ping data)
u16 M2_SectionName; // 'M2'
u16 M2_SectionSize; // [bytes] size of this entire section
u32 M2_PingNumber; // pings since power-up or reboot
f32 M2_ScalingFactor; // reserved for future use
u32 M2_TotalSamples; // range samples in entire ping, sample rate is H0_RxSampleRate
u32 M2_FirstSample; // first sample of this section
u16 M2_Samples; // number of samples in this section
u16 M2_TotalBeams; // beams (always a multiple of 2) (typically columns in your memory buffer)
u16 M2_FirstBeam; // first beam of this section (always a multiple of 2)
u16 M2_Beams; // number of beams in this section (always a multiple of 2)
u32 M2_reserved0; // reserved for future use
u32 M2_reserved1; // reserved for future use
struct
{
u16 magnitude; // values 0 to 65535 map non-linearly (due to TVG scaling and possible gain compression) to signal amplitude
s16 phase; // values -32768 to +32767 map non-linearly (due to complex transfer function) to target angle within the beamwidth
} M2_Data[M2_Beams][M2_Samples]; // magnitude and phase data (typical example: 256 beams each containing 36 four-byte structs, 36 kilobytes)
// *** END PACKET: WATER COLUMN (WC) DATA FORMAT 0 ***
Page 183 of 210
Version 5.0 Rev r002
Date 05-08-2014