WORD SERIAL_COM_Process(WORD _Port)
{
static BYTE Temp[8];
BYTE *pData;
WORD_VAL wvTemp;
#if defined(DEBUG_MODEM)
if(_Port == COM1 || _Port == COM2 || _Port == COM5){
if( UART_RxGetNumberBytes(COM1) >= 1 ){
UART_GetData(COM1, Temp, 1);
UART_PutData(COM2, Temp, 1);
}
if( UART_RxGetNumberBytes(COM2) >= 1 ){
UART_GetData(COM2, Temp, 1);
UART_PutData(COM1, Temp, 1);
}
#else
if( !Packet.ValidateDataReceive ) {
if(!UART_HeaderComplete(_Port, Temp)){
wvTemp.byte.HB = Temp[6];
wvTemp.byte.LB = Temp[7];
if( UART_RxGetNumberBytes(_Port) < wvTemp.Val ) return ERR_OK;
UART_PacketComplete(_Port);
pData = Packet.bData;
UART_GetData(_Port, pData, wvTemp.Val);
Packet.Sender.byte.HB = Temp[0];
Packet.Sender.byte.LB = Temp[1];
Packet.Receiver.byte.HB = Temp[2];
Packet.Receiver.byte.LB = Temp[3];
Packet.Command.byte.HB = Temp[4];
Packet.Command.byte.LB = Temp[5];
Packet.DataLength.byte.HB = Temp[6];
Packet.DataLength.byte.LB = Temp[7];
Packet.ValidateDataReceive = 1;
}
#endif
}
return ERR_OK;
}