Ephemeris Record

- 0x10

(dle is first byte)

- 0x2A

(ephemeris record identifier)

- 0x74

(size of data)

- eph_type

(see description below)

- one byte chksum (the addition of bytes between the delimiters should equal 0)

- 0x10

(dle)

- 0x03

(etx)

typedef struct

/* ephemeris record */

 

{

 

 

 

 

char

 

svid;

/* Satellite number (0 - 31)

*/

int

wn;

/* week number (weeks)

*/

float

toc;

/* reference time of clock parameters (s)

*/

float

toe;

/* reference time of ephemeris parameters (s)

*/

float

af0;

/* clock correction coefcnt - group delay (s)

*/

float

af1;

/* clock correction coefficient (s/s)

*/

float

af2;

/* clock correction coefficient (s/s/s)

*/

float

ura;

/* user range accuracy (m)

*/

double

e;

/* eccentricity (-)

*/

double

sqrta;

/* square root of semi-major axis (a) (m**1/2)

*/

double

dn;

/* mean motion correction (r/s)

*/

double

m0;

/* mean anomaly at reference time (r)

*/

double

w;

/* argument of perigee (r)

*/

double

omg0;

/* right ascension (r)

*/

double

i0;

/* inclination angle at reference time (r)

*/

float

odot;

/* rate of right ascension (r/s)

*/

float

idot;

/* rate of inclination angle (r/s)

*/

float

cus;

/* argument of latitude correction, sine (r)

*/

float

cuc;

/* argument of latitude correction, cosine (r)

*/

float

cis;

/* inclination correction, sine (r)

*/

float

cic;

/* inclination correction, cosine (r)

*/

float

crs;

/* radius correction, sine (m)

*/

float

crc;

/* radius correction, cosine (m)

*/

byte

 

iod;

/* issue of data

*/

} eph_type;

To initiate an ephemeris download for all tracked satellites send the following bytes in sequence:

0x10, 0x0D, 0x04, 0x02, 0x0C, 0x0, 0x0, 0xE1, 0x10, 0x03

GPS25PM.DAT

Example data file entry:

35