dle_byte 0x10 etx_byte 0x03

dle and etx bytes:

Software written to receive the two records should filter dle and etx bytes as described below:

typedef enum

 

{

 

dat,

 

dle,

 

etx

 

} rx_state_type;

 

char

in_que[256];

int

in_que_ptr = 0;

rx_state_type

rx_state = dat;

void add_to_que( char data )

{

#define

#define

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;

}

}

31