Interface Specification Document
6.3.10
Snippet Data Format
The processor outputs snippet data via UDP/IP (base port + 6). Each ping generates a burst of
Ethernet packets containing one SNP0 header followed by BeamCnt snippets (one snippet per
beam). Each snippet consists of one or more fragments. The processor packs fragments into
large efficient Ethernet packets. Each fragment consists of one SNP1 header followed by many
samples of unsigned short magnitude data. Every Ethernet packet begins with either a SNP0 or
SNP1 header.
Below are the C structures for the SNP0 and SNP1 headers. The SNP0 header is similar to a
bathymetry header. All integers are big-endian (MSB first). All structures are packed (no align-
ment gaps). Short has 16 bits. Long has 32 bits. GainStart and GainEnd are currently set to zero;
and reserved for future use.
6.3.10.1 Header
Formats:
/* ID values for the SNP0 and SNP1 headers */
#define SNIPPET_ID_SNP0 0x534E5030 /* 'SNP0' */
#define SNIPPET_ID_SNP1 0x534E5031 /* 'SNP1' */
struct SNP0 /* ping header (there are BEAMS snippets per ping) */
{
unsigned long ID; /* identifier code */
unsigned short HeaderSize; /* header size, bytes */
unsigned short DataSize; /* data size following header, bytes */
unsigned long PingNumber; /* sequential ping number */
unsigned long Seconds; /* time since since 00:00:00, 1-Jan-1970 */
unsigned long Millisec;
unsigned short Latency; /* time from ping to output (milliseconds) */
unsigned short SonarID[2]; /* least significant four bytes of Ethernet address */
unsigned short SonarModel; /* coded model number of sonar */
unsigned short Frequency; /* sonar frequency (kHz) */
unsigned short SSpeed; /* programmed sound velocity (m/sec) */
unsigned short SampleRate; /* A/D sample rate (samples/sec) */
unsigned short PingRate; /* pings per second, 0.001 Hz steps */
unsigned short Range; /* range setting (meters) */
unsigned short Power; /* power */
unsigned short Gain; /* gain (b15=auto, b14=TVG, b6..0=gain) */
unsigned short PulseWidth; /* transmit pulse width (microseconds) */
unsigned short Spread; /* TVG spreading, n*log(R), 0.25dB steps */
unsigned short Absorp; /* TVG absorption, dB/km, 1dB steps */
unsigned short Proj; /* b7 = steering, b4..0 = projector type */
unsigned short ProjWidth; /* transmit beam width along track, 0.1 deg steps */
unsigned short SpacingNum; /* receiver beam spacing, numerator, degrees */
unsigned short SpacingDen; /* receiver beam spacing, denominator */
short ProjAngle; /* projector steering, degrees*PKT_STEER_RES */
unsigned short MinRange; /* range filter settings */
unsigned short MaxRange;
unsigned short MinDepth; /* depth filter settings */
unsigned short MaxDepth;
unsigned short Filters; /* enabled filters: b1=depth, b0=range */
struct /* one byte containing eight status flags */
{
unsigned Spare : 12;
unsigned SnipMode : 3; /* menu item setting */
unsigned RollStab : 1; /* bit0: roll stabilization enabled */
} bFlags;
short HeadTemp; /* head temperature, 0.1C steps */
unsigned short BeamCnt; /* number of beams */
};
______________________________________________________________________
SeaBat 8101 Operator's Manual
6-33
(ISD Rev 1.23) Version 3.02