Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / Demos / Device / Incomplete / TestAndMeasurement / TestAndMeasurement.c
index 0767127..08c50c7 100644 (file)
@@ -350,13 +350,15 @@ void TMC_Task(void)
                                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
@@ -388,6 +390,7 @@ void TMC_Task(void)
 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
@@ -398,7 +401,7 @@ bool ReadTMCHeader(TMC_MessageHeader_t* const MessageHeader)
        \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
@@ -409,12 +412,13 @@ bool ReadTMCHeader(TMC_MessageHeader_t* const MessageHeader)
        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
@@ -425,7 +429,7 @@ bool WriteTMCHeader(TMC_MessageHeader_t* const MessageHeader)
 \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
@@ -433,5 +437,5 @@ bool WriteTMCHeader(TMC_MessageHeader_t* const MessageHeader)
        }\r
 \r
        /* Indicate if the command has been aborted or not */\r
-       return !(IsTMCBulkINReset);\r
+       return (!(IsTMCBulkINReset) && (ErrorCode == ENDPOINT_RWSTREAM_NoError));\r
 }\r