beautypg.com

Rx packet: ephemeris data – Garmin GPS 16x User Manual

Page 31

background image

190-00228-08

GPS 16x Technical Specifications

Rev. B

Page 27

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

Name

HEX Value

Delimiter DLE 0x10
Ephemeris data ID

IOP_SPC_EPH_DATA

0x35

Number of bytes in data

SIZE

0x78

Ephemeris data

DATA

----

.

.

.

.

.

.

.

.

.

Checksum calculation

CHKSUM

----

Delimiter DLE 0x10
End of packet

ETX

0x03

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 (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)

*/

unsigned char iod; /* issue of data

*/

} SDM_spc_eph_type;