Sample c code – Garmin GPS 16x User Manual
Page 28

190-00228-08
GPS 16x Technical Specifications
Rev. B
Page 24
Sample C Code
DLE and ETX bytes:
Sample C code to receive the two records should filter DLE and ETX bytes as described below:
typedef enum
{
DAT,
DLE,
ETX
} rx_state_type;
/* Declare and initialize static variables */
static char
in_que[ 256 ];
static int
in_que_ptr = 0;
static rx_state_type rx_state = DAT;
.
.
.
void add_to_que( char data )
{
#define DLE_BYTE 0x10
#define ETX_BYTE 0x03
if ( rx_state == DAT )
{
if ( data == DLE_BYTE )
{
rx_state = DLE;
}
else
{
in_que[ in_que_ptr++ ] = data;
}
}
else if ( rx_state == DLE )
{
if ( data == ETX_BYTE )
{
rx_state = ETX;
}
else
{
rx_state = DAT;
in_que[ in_que_ptr++ ] = data;
}
}
else if ( rx_state == ETX )
{
if ( data == DLE_BYTE )
{
rx_state = DLE;
}
}
if ( in_que_ptr > 255 )
{
in_que_ptr = 0;
}
}
- GMR 406 (26 pages)
- 340c (2 pages)
- GHP 10 (48 pages)
- GMR 1204 (14 pages)
- GMR24 Hd (12 pages)
- 190-00864-01 (24 pages)
- GFS 10 (24 pages)
- GMR 40 (32 pages)
- GMI 10 (8 pages)
- GMI 10 (20 pages)
- 240 (50 pages)
- Hiking Equipment (2 pages)
- GHS 10i (10 pages)
- G2 (24 pages)
- 100 BLUE (50 pages)
- GSD-20 (12 pages)
- GTX 320 ATC (24 pages)
- 80 (2 pages)
- GMR 41 (32 pages)
- 160 BLUE (50 pages)
- 250C (1 page)
- VHF 200 (10 pages)
- GPSMAP 2008 (124 pages)
- GMR 41 (26 pages)
- 160 (50 pages)
- Gxm 51 (10 pages)
- 160C (32 pages)
- Nuvi 900 (16 pages)
- GSD22 (8 pages)
- 90/140 (32 pages)
- VHF 200 (2 pages)
- Ghc 10 (28 pages)
- GSD 22 (10 pages)
- GPSMAP 3010C (2 pages)
- GPSMAP 3010C (130 pages)
- GPSMAP 76CSx (64 pages)
- GPSMAP 76CSx (2 pages)
- GPSMAP 76S (76 pages)
- GPSMAP 76S (18 pages)
- GPSMAP 172C (110 pages)
- GPSMAP 3005C (124 pages)
- GPSMAP 3005C (2 pages)
- GPSMAP 276C (2 pages)
- GTX 328 (10 pages)
- GPSMAP 526s (84 pages)