Next, the unit will send the specified number of packets containing the ephemeris information. An example
packet is shown below. Each packet should be acknowledged as before (be sure to modify the ACK packet
to indicate what type of packet being acknowledged—for ephemeris data, the ID is 0x35).
RX Packet: Ephemeris Data
Byte Description
Delimiter
Ephemeris data ID
Number of bytes in data
Ephemeris data
.
.
.
Checksum calculation
Delimiter
End of packet
The data portion of each packet can then be parsed into an instance of the following structure. Each of these
structures represents data from a single satellite.
typedef struct
/* ephemeris data record for SPC
{
sint16
wn;
/* week number (weeks)
float
toc;
/* reference time of clock parameters (s)
float
toe;
/* reference time of ephemeris parameters (s)
float
af0;
/* clock correction coefficient - group delay
float
af1;
/* clock correction coefficient
float
af2;
/* clock correction coefficient
float
ura;
/* user range accuracy
double
e;
/* eccentricity
double
sqrta;
/* square root of semi-major axis (a)
double
dn;
/* mean motion correction
double
m0;
/* mean anomaly at reference time
double
w;
/* argument of perigee
double
omg0;
/* right ascension
double
i0;
/* inclination angle at reference time
float
odot;
/* rate of right ascension
float
idot;
/* rate of inclination angle
float
cus;
/* argument of latitude correction, sine
float
cuc;
/* argument of latitude correction, cosine
float
cis;
/* inclination correction, sine
float
cic;
/* inclination correction, cosine
float
crs;
/* radius correction, sine
float
crc;
/* radius correction, cosine
unsigned char
iod; /* issue of data
} SDM_spc_eph_type;
190-00228-20
Name
DLE
IOP_SPC_EPH_DATA
SIZE
DATA
.
.
.
CHKSUM
DLE
ETX
GPS 16/17 Technical Specifications
Page 31
HEX Value
0x10
0x35
0x78
----
.
.
.
----
0x10
0x03
*/
*/
*/
*/
(s)
*/
(s/s)
*/
(s/s/s)
*/
(m)
*/
(-)
*/
(m**1/2)
*/
(r/s)
*/
(r)
*/
(r)
*/
(r)
*/
(r)
*/
(r/s)
*/
(r/s)
*/
(r)
*/
(r)
*/
(r)
*/
(r)
*/
(m)
*/
(m)
*/
*/
Rev. C