+ /* Indicate busy */\r
+ LEDs_SetAllLEDs(LEDMASK_USB_BUSY);\r
+ \r
+ switch (MessageHeader.MessageID)\r
+ {\r
+ case TMC_MESSAGEID_DEV_DEP_MSG_OUT:\r
+ BytesTransferred = 0;\r
+ while (Endpoint_Discard_Stream(MessageHeader.TransferSize, &BytesTransferred) ==\r
+ ENDPOINT_RWSTREAM_IncompleteTransfer)\r
+ {\r
+ if (IsTMCBulkOUTReset)\r
+ break;\r
+ }\r
+ LastTransferLength = BytesTransferred;\r
+ \r
+ Endpoint_ClearOUT();\r
+ break;\r
+ case TMC_MESSAGEID_DEV_DEP_MSG_IN:\r
+ Endpoint_ClearOUT();\r
+ \r
+ char MessageData[] = "TMC Class Test";\r
+\r
+ MessageHeader.TransferSize = strlen(MessageData);\r
+ MessageHeader.MessageIDSpecific.DeviceOUT.LastMessageTransaction = true;\r
+ WriteTMCHeader(&MessageHeader);\r
+\r
+ BytesTransferred = 0;\r
+ while (Endpoint_Write_Stream_LE(MessageData, MessageHeader.TransferSize, &BytesTransferred) ==\r
+ ENDPOINT_RWSTREAM_IncompleteTransfer)\r
+ {\r
+ if (IsTMCBulkINReset)\r
+ break;\r
+ }\r
+ LastTransferLength = BytesTransferred;\r
+\r
+ Endpoint_ClearIN();\r
+ break;\r
+ default:\r
+ Endpoint_StallTransaction();\r
+ break;\r
+ }\r
+\r
+ LEDs_SetAllLEDs(LEDMASK_USB_READY);\r