Garmin GPS 17HVS Technical Specifications - Page 32

RX Packet: Ephemeris Data, Byte Description, HEX Value

Page 32 highlights

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 Name DLE IOP_SPC_EPH_DATA SIZE DATA . . . CHKSUM DLE ETX HEX Value 0x10 0x35 0x78 0x10 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; 190-00228-21 GPS 16/17 Technical Specifications Page 28 Rev. A

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

190-00228-21
GPS 16/17 Technical Specifications
Rev. A
Page 28
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;