This information is being provided for informational use only. It is not supported by GSSI
technical support and is only provided for those users who are already comfortable working in a C
programming environment.
struct tagRFDate
// File header date/time structure
{
unsigned sec2 : 5;
// second/2 (0-29)
unsigned min : 6;
// minute (0-59)
unsigned hour : 5;
// hour (0-23)
unsigned day : 5;
// day (1-31)
unsigned month: 4;
// month (1=Jan, 2=Feb, etc.)
unsigned year : 7;
// year-1980 (0-127 = 1980-2107)
};
struct tagRFCoords
// Start/End position
{
float
rh_fstart;
float
rh_fend;
};
struct RGPS
// GPS record/system time SYNC
{
char
RecordType[4];
// “GGA”
DWORD
TickCount;
// CPU tick count
double
PositionGPS[4];
// Latitude (positive if 'N'), Longitude (positive if ‘E’),
// Altitude, FIXUTC
};
// constants
const int MINHEADSIZE
=
1024;
const int PARAREASIZE
=
128;
const int GPSAREASIZE
=
2 * sizeof(RGPS);
const int INFOAREASIZE
(MINHEADSIZE - PARAREASIZE- GPSAREASIZE) ;
// structure member alignment macros
#define TYPEBYTE(x,n)
BYTE x##[n]
#define SHORTBYTE(x)
TYPEBYTE(x,2)
// short int (16 bit)
#define FLOATBYTE(x)
TYPEBYTE(x,4)
// float
#define RFDATEBYTE(x)
TYPEBYTE(x,4)
// tagRFDate
#define COORDBYTE(x)
TYPEBYTE(x,8)
// tagRFCoords