/**********************************************************
线程函数
bulk传输模式,从FIFO,同步传输。usb FIFO设置为4*512缓冲.想实现连续传输,并显示
***********************************************************/
UINT XferLoop( LPVOID params )
{
CSJCJVCDlg *dlg = (CSJCJVCDlg *) params;
dlg->InEndpt=dlg->USBDevice->BulkInEndPt;
bool success;
PUCHAR inData = new UCHAR[512];//接收数据缓冲区
ZeroMemory(inData,512);
dlg->InEndpt->TimeOut=2000;//1、传输等待时间?这个从参数是根据什么设置的
for(;dlg->blooping;)
{
LONG length=512;//2、定义数据长度,可以设置成1024或者2048,也就是调用一次XferData读取到2个包数据
success=dlg->InEndpt->XferData(inData,length);
if(success)//读取成功将数据写入文件
{
mFile.SeekToEnd();
mFile.Write(inData,length);
}
if(!success)
{
dlg->blooping=false;
}
}
delete [] inData;//释放对象
dlg->ReadThread = NULL;
dlg->USBDevice->Close();
mFile.Flush();
mFile.Close();
return true;
}
|