FX3 SuperSpeed Explorer Kit

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
adki_3154446
Level 1
Level 1
5 replies posted 5 questions asked First reply posted

Hi,

we using the streamer SDK and we want to understand the meanings of the following failures  :

pastedImage_0.png

we want to distinguish between the failure types that marked in yellow and red.

we can see that the failure that mark in yellow is depended on the each pkts.Status but what actually the "packet status" means?

also with the failure that marked with red, we tried to understand the FinishDataXfer function and what is failure criteria? what this function actually does? 

0 Likes
1 Solution
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

When an Isoc transfer is performed, the data buffer passed to XferData or BeginDataXfer is logically partitioned, by the driver, into multiple packets of data. The driver returns status and length information for each of those packets. FinishDataXfer method of CCyUSBEndPoint accept an optional parameter that is a pointer to an array of CCyIsoPktInfo objects. If this parameter is not NULL, the array will be filled with the packet status and length information returned by the driver.

The CCyIsoPktInfo class is defined as:

class CCyIsoPktInfo

{

public: LONG Status;

           LONG Length;

};

If the value returned in the Status is 0, then all the data in the packet is valid otherwise it is not valid. Also, the value returned in the Length should not be greater than the endpoints Max Packet Size. If any of these conditions are violated, then the data will not be valid and hence the Failure will be incremented. This is what was marked in yellow in the snapshot that you shared.

Also, if the FinishDataXfer method of CCyUSBEndPoint  returned false, then the Failures will be incremented. This is what was marked in red in the snapshot that you shared.

For understanding more about FinishDataXfer, please refer to page 62 of the document whose link is provided below:

https://www.cypress.com/file/53106/download

Best Regards,

Jayakrishna

Best Regards,
Jayakrishna

View solution in original post

0 Likes
1 Reply
JayakrishnaT_76
Moderator
Moderator
Moderator
First question asked 1000 replies posted 750 replies posted

Hello,

When an Isoc transfer is performed, the data buffer passed to XferData or BeginDataXfer is logically partitioned, by the driver, into multiple packets of data. The driver returns status and length information for each of those packets. FinishDataXfer method of CCyUSBEndPoint accept an optional parameter that is a pointer to an array of CCyIsoPktInfo objects. If this parameter is not NULL, the array will be filled with the packet status and length information returned by the driver.

The CCyIsoPktInfo class is defined as:

class CCyIsoPktInfo

{

public: LONG Status;

           LONG Length;

};

If the value returned in the Status is 0, then all the data in the packet is valid otherwise it is not valid. Also, the value returned in the Length should not be greater than the endpoints Max Packet Size. If any of these conditions are violated, then the data will not be valid and hence the Failure will be incremented. This is what was marked in yellow in the snapshot that you shared.

Also, if the FinishDataXfer method of CCyUSBEndPoint  returned false, then the Failures will be incremented. This is what was marked in red in the snapshot that you shared.

For understanding more about FinishDataXfer, please refer to page 62 of the document whose link is provided below:

https://www.cypress.com/file/53106/download

Best Regards,

Jayakrishna

Best Regards,
Jayakrishna
0 Likes