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;

}

}

190-00228-08

GPS 16x Technical Specifications

Rev. A

 

Page 24