protected bool ReceiveData(
ENUM_CMD r_TxCmd,
ref byte[] r_btData
)
{
ENUM_CMD result = ENUM_CMD.NOTHING;
byte [] rdBuf = new byte[128];
Array.Clear(rdBuf, 0, rdBuf.Length);
//Reset Receive flow
ResetRxFlow(ENMU_PKT_TYPE.UPDATE_COMMON);
while (result != r_TxCmd)
{
result = this.Regular( ref rdBuf, true);
#if _TRACE_OUT_PUT
PrintMagToTxt("ReceiveData");
#endif
if (result == ENUM_CMD.TIME_OUT) //Timeout
{
#if _TRACE_OUT_PUT
PrintMagToTxt("TIME OUT ReceiveData");
#endif
//Try to connect the device again
clsPacket.TRANS_API_Close();
this.LinkDevice();
return false;
}
TimeBeginPeriod(1);
System.Threading.Thread.Sleep( 5 );
TimeEndPeriod(1);
}
//Data ~ Data over //only copy Data
int Length = ENMU_UPDATE_INDEX.PKT_CRC - ENMU_UPDATE_INDEX.PKT_DATA;
Array.Copy( rdBuf, (int)ENMU_UPDATE_INDEX.PKT_DATA,
r_btData, 0,
Length);
return true;
}