Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / Demos / Device / Incomplete / TestAndMeasurement / TestAndMeasurement.c
index 3c5cf47..08c50c7 100644 (file)
@@ -53,19 +53,19 @@ TMC_Capabilities_t Capabilities =
        };\r
 \r
 /** Current TMC control request that is being processed */\r
-uint8_t RequestInProgress = 0;\r
+static uint8_t RequestInProgress = 0;\r
 \r
 /** Stream callback abort flag for bulk IN data */\r
-bool IsTMCBulkINReset = false;\r
+static bool IsTMCBulkINReset = false;\r
 \r
 /** Stream callback abort flag for bulk OUT data */\r
-bool IsTMCBulkOUTReset = false;\r
+static bool IsTMCBulkOUTReset = false;\r
 \r
 /** Last used tag value for data transfers */\r
-uint8_t CurrentTransferTag = 0;\r
+static uint8_t CurrentTransferTag = 0;\r
 \r
-/** Length of last data transfer, for reporting to the host in case an in-progress tranfer is aborted */\r
-uint32_t LastTransferLength = 0;\r
+/** Length of last data transfer, for reporting to the host in case an in-progress transfer is aborted */\r
+static uint32_t LastTransferLength = 0;\r
 \r
 /** Main program entry point. This routine contains the overall program flow, including initial\r
  *  setup of all components and the main program loop.\r
@@ -169,7 +169,7 @@ void EVENT_USB_Device_ControlRequest(void)
                                Endpoint_ClearSETUP();\r
                                \r
                                /* Write the request response byte */\r
-                               Endpoint_Write_Byte(TMCRequestStatus);\r
+                               Endpoint_Write_8(TMCRequestStatus);\r
 \r
                                Endpoint_ClearIN();\r
                                Endpoint_ClearStatusStage();\r
@@ -190,9 +190,9 @@ void EVENT_USB_Device_ControlRequest(void)
                                Endpoint_ClearSETUP();\r
                                                                \r
                                /* Write the request response bytes */\r
-                               Endpoint_Write_Byte(TMCRequestStatus);\r
-                               Endpoint_Write_Word_LE(0);\r
-                               Endpoint_Write_DWord_LE(LastTransferLength);\r
+                               Endpoint_Write_8(TMCRequestStatus);\r
+                               Endpoint_Write_16_LE(0);\r
+                               Endpoint_Write_32_LE(LastTransferLength);\r
 \r
                                Endpoint_ClearIN();\r
                                Endpoint_ClearStatusStage();                            \r
@@ -223,8 +223,8 @@ void EVENT_USB_Device_ControlRequest(void)
                                Endpoint_ClearSETUP();\r
                                \r
                                /* Write the request response bytes */\r
-                               Endpoint_Write_Byte(TMCRequestStatus);\r
-                               Endpoint_Write_Byte(CurrentTransferTag);\r
+                               Endpoint_Write_8(TMCRequestStatus);\r
+                               Endpoint_Write_8(CurrentTransferTag);\r
 \r
                                Endpoint_ClearIN();\r
                                Endpoint_ClearStatusStage();\r
@@ -245,9 +245,9 @@ void EVENT_USB_Device_ControlRequest(void)
                                Endpoint_ClearSETUP();\r
                                                                \r
                                /* Write the request response bytes */\r
-                               Endpoint_Write_Byte(TMCRequestStatus);\r
-                               Endpoint_Write_Word_LE(0);\r
-                               Endpoint_Write_DWord_LE(LastTransferLength);\r
+                               Endpoint_Write_8(TMCRequestStatus);\r
+                               Endpoint_Write_16_LE(0);\r
+                               Endpoint_Write_32_LE(LastTransferLength);\r
 \r
                                Endpoint_ClearIN();\r
                                Endpoint_ClearStatusStage();\r
@@ -260,7 +260,7 @@ void EVENT_USB_Device_ControlRequest(void)
                                /* Check that no split transaction is already in progress */\r
                                if (RequestInProgress != 0)\r
                                {\r
-                                       Endpoint_Write_Byte(TMC_STATUS_SPLIT_IN_PROGRESS);                              \r
+                                       Endpoint_Write_8(TMC_STATUS_SPLIT_IN_PROGRESS);                         \r
                                }\r
                                else\r
                                {\r
@@ -275,7 +275,7 @@ void EVENT_USB_Device_ControlRequest(void)
                                Endpoint_ClearSETUP();\r
                                \r
                                /* Write the request response byte */\r
-                               Endpoint_Write_Byte(TMCRequestStatus);\r
+                               Endpoint_Write_8(TMCRequestStatus);\r
 \r
                                Endpoint_ClearIN();\r
                                Endpoint_ClearStatusStage();\r
@@ -296,8 +296,8 @@ void EVENT_USB_Device_ControlRequest(void)
                                Endpoint_ClearSETUP();\r
 \r
                                /* Write the request response bytes */\r
-                               Endpoint_Write_Byte(TMCRequestStatus);\r
-                               Endpoint_Write_Byte(0);\r
+                               Endpoint_Write_8(TMCRequestStatus);\r
+                               Endpoint_Write_8(0);\r
                                \r
                                Endpoint_ClearIN();\r
                                Endpoint_ClearStatusStage();                            \r
@@ -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