For the application to read the data, the data should be committed to the endpoint buffer by the firmware. Please confirm the same.
You can use the synchronous Xferdata call, where you can specify the length of data that is to be read from the corresponding endpoint.
Refer to section "4.14.7 XferData( )" from the CyUSB.NET.pdf available in the FX3 SDK.
Thank you for reply.
"XferData( )" is a wonderful way.But I hope to receive data continuously by the asynchronous approach.
So is it possible to read dynamic length data with the dll ?
Please check the value in the len field of the FinishDataXfer after it is called. It is supposed to hold the length of the data actually transferred.
If the endpoint has data, then len field will be non zero. If it is zero, then please check the firmware if the data is actually committed to the endpoint.
Also, you can use the UsbdStatus and UsbdStatusString function to get the error from the last Xfer call by passing the return status.