User Manual
© 2017 Inertial Sense, LLC
17
11/30/2017
GPGLL
–
NMEA geographic position, latitude / longitude and time (see NMEA GPGLL specification).
$GPGLL,3751.65,S,14507.36,E*77
$GPGLL,4916.45,N,12311.12,W,225444,A
Where:
4916.46,N Latitude 49 deg. 16.45 min. North
12311.12,W Longitude 123 deg. 11.12 min. West
225444 Fix taken at 22:54:44 UTC
A Data valid
$GPGLL,5133.81,N,00042.25,W*75
1 2 3 4 5
Where:
1 5133.81 Current latitude
2 N North/South
3 00042.25 Current longitude
4 W East/West
5 *75 checksum
$--GLL,lll.ll,a,yyyyy.yy,a,hhmmss.ss,A llll.ll = Latitude of position
Where:
a = N or S
yyyyy.yy = Longitude of position
a = E or W
hhmmss.ss = UTC of position
A = status: A = valid data
GPGSA
–
NMEA GPS DOP and active satellites (see NMEA GPGSP specification).
$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39
Where:
GSA Satellite status
A Auto selection of 2D or 3D fix (M = manual)
3 3D fix - values include: 1 = no fix
2 = 2D fix
3 = 3D fix
04,05... PRNs of satellites used for fix (space for 12)
2.5 PDOP (dilution of precision)
1.3 Horizontal dilution of precision (HDOP)
2.1 Vertical dilution of precision (VDOP)
5.3
C Binding
For pure C solutions such as embedded systems or situations where memory is limited, the C binding is provided.
The C binding contains an interface for communicating with the device using the binary protocol, as well as
updating firmware (discussed later).
5.3.1
Connecting to the Device
Communication with the device is done via serial port, so the first step in getting set up is to create a serial port
connection. Depending on the platform you are on, there may be some set up to implement the methods
necessary to open, read, write, and close the serial port. For Windows, Mac and Linux, this interface is provided for
you, but for other platforms you will need to implement this functionality.
SDK/src/serialPort.h defines the interface structure for serial port data. serialPortPlatform.c provides Windows,
Mac, and Linux implementations of a serial port for you.
To create and open a serial port, do the following:
serial_port_t
serialPort = { 0 }; // must be zeroed out fully
serialPortPlatformInit(&serialPort);
serialPortOpen(&serialPort,
"
COM4
"
, 3000000, 0); // 0 for non-blocking
If you need to write your own serial port code, you will need to provide the following functions to the serial_port_t
structure instead of calling serialPortPlatformInit: