41
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:
TIM time_of_week week_number
RCV svid snr (T)rack/(C)ycle_slip phase pseudo_range cycles
PVT time lat lon alt lat_vel lon_vel alt_vel epe eph epv
TIM 235537.99855650 794
RCV 18 50 T 120.2
19964528.44
2068193
RCV 29 50 T 133.2
20364313.25
1950557
RCV 28 45 T 176.5
21135153.13
2069992