break;\r
case TMC_MESSAGEID_DEV_DEP_MSG_IN:\r
Endpoint_ClearOUT();\r
+ \r
+ char MessageData[] = "TMC Class Test";\r
\r
- MessageHeader.TransferSize = 3;\r
+ MessageHeader.TransferSize = strlen(MessageData);\r
MessageHeader.MessageIDSpecific.DeviceOUT.LastMessageTransaction = true;\r
WriteTMCHeader(&MessageHeader);\r
\r
BytesTransferred = 0;\r
- while (Endpoint_Write_Stream_LE("TMC", MessageHeader.TransferSize, &BytesTransferred) ==\r
+ while (Endpoint_Write_Stream_LE(MessageData, MessageHeader.TransferSize, &BytesTransferred) ==\r
ENDPOINT_RWSTREAM_IncompleteTransfer)\r
{\r
if (IsTMCBulkINReset)\r
bool ReadTMCHeader(TMC_MessageHeader_t* const MessageHeader)\r
{\r
uint16_t BytesTransferred;\r
+ uint8_t ErrorCode;\r
\r
/* Select the Data Out endpoint */\r
Endpoint_SelectEndpoint(TMC_OUT_EPNUM);\r
\r
/* Read in the header of the command from the host */\r
BytesTransferred = 0;\r
- while (Endpoint_Read_Stream_LE(MessageHeader, sizeof(TMC_MessageHeader_t), &BytesTransferred) ==\r
+ while ((ErrorCode = Endpoint_Read_Stream_LE(MessageHeader, sizeof(TMC_MessageHeader_t), &BytesTransferred)) ==\r
ENDPOINT_RWSTREAM_IncompleteTransfer)\r
{\r
if (IsTMCBulkOUTReset)\r
CurrentTransferTag = MessageHeader->Tag;\r
\r
/* Indicate if the command has been aborted or not */\r
- return !(IsTMCBulkOUTReset);\r
+ return (!(IsTMCBulkOUTReset) && (ErrorCode == ENDPOINT_RWSTREAM_NoError));\r
}\r
\r
bool WriteTMCHeader(TMC_MessageHeader_t* const MessageHeader)\r
{\r
uint16_t BytesTransferred;\r
+ uint8_t ErrorCode;\r
\r
/* Set the message tag of the command header */\r
MessageHeader->Tag = CurrentTransferTag;\r
\r
/* Send the command header to the host */\r
BytesTransferred = 0;\r
- while (Endpoint_Write_Stream_LE(MessageHeader, sizeof(TMC_MessageHeader_t), &BytesTransferred) ==\r
+ while ((ErrorCode = Endpoint_Write_Stream_LE(MessageHeader, sizeof(TMC_MessageHeader_t), &BytesTransferred)) ==\r
ENDPOINT_RWSTREAM_IncompleteTransfer)\r
{\r
if (IsTMCBulkINReset)\r
}\r
\r
/* Indicate if the command has been aborted or not */\r
- return !(IsTMCBulkINReset);\r
+ return (!(IsTMCBulkINReset) && (ErrorCode == ENDPOINT_RWSTREAM_NoError));\r
}\r