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 | */ | |
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