diff options
Diffstat (limited to 'Demos/Device/Incomplete')
3 files changed, 70 insertions, 42 deletions
diff --git a/Demos/Device/Incomplete/Sideshow/Descriptors.h b/Demos/Device/Incomplete/Sideshow/Descriptors.h index 4d672c0ce..f988a48f1 100644 --- a/Demos/Device/Incomplete/Sideshow/Descriptors.h +++ b/Demos/Device/Incomplete/Sideshow/Descriptors.h @@ -64,12 +64,12 @@ { uint8_t FirstInterfaceNumber; - uint8_t RESERVED; + uint8_t Reserved; uint8_t CompatibleID[8]; uint8_t SubCompatibleID[8]; - uint8_t RESERVED2[6]; + uint8_t Reserved2[6]; } USB_OSCompatibleSection_t; typedef struct @@ -79,7 +79,7 @@ uint16_t Index; uint8_t TotalSections; - uint8_t RESERVED[7]; + uint8_t Reserved[7]; USB_OSCompatibleSection_t SideshowCompatID; } USB_OSCompatibleIDDescriptor_t; diff --git a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c index d529302fc..e00254211 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c +++ b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.c @@ -36,7 +36,7 @@ */
TMC_Capabilities_t Capabilities =
{
- .Status = TMC_REQUEST_STATUS_SUCCESS,
+ .Status = TMC_STATUS_SUCCESS,
.TMCVersion = VERSION_BCD(1.00),
.Interface =
@@ -53,19 +53,16 @@ TMC_Capabilities_t Capabilities = };
/** Current TMC control request that is being processed */
-uint8_t RequestInProgess = 0;
+uint8_t RequestInProgess = 0;
/** Stream callback abort flag for bulk IN data */
-bool IsTMCBulkINReset = false;
+bool IsTMCBulkINReset = false;
/** Stream callback abort flag for bulk OUT data */
-bool IsTMCBulkOUTReset = false;
+bool IsTMCBulkOUTReset = false;
-/** Last used tag value for bulk IN transfers */
-uint8_t NextTransferINTag = 0;
-
-/** Last used tag value for bulk IN transfers */
-uint8_t NextTransferOUTTag = 0;
+/** Last used tag value for data transfers */
+uint8_t CurrentTransferTag = 0;
/** Main program entry point. This routine contains the overall program flow, including initial
@@ -145,7 +142,7 @@ void EVENT_USB_Device_ConfigurationChanged(void) */
void EVENT_USB_Device_UnhandledControlRequest(void)
{
- uint8_t TMCRequestStatus = TMC_REQUEST_STATUS_SUCCESS;
+ uint8_t TMCRequestStatus = TMC_STATUS_SUCCESS;
/* Process TMC specific control requests */
switch (USB_ControlRequest.bRequest)
@@ -155,14 +152,14 @@ void EVENT_USB_Device_UnhandledControlRequest(void) {
Endpoint_ClearSETUP();
- /* Check that no split transaction is already in progress and the data OUT transfer tag is valid */
+ /* Check that no split transaction is already in progress and the data transfer tag is valid */
if (RequestInProgess != 0)
{
- TMCRequestStatus = TMC_REQUEST_STATUS_SPLIT_IN_PROGRESS;
+ TMCRequestStatus = TMC_STATUS_SPLIT_IN_PROGRESS;
}
- else if (USB_ControlRequest.wValue != NextTransferOUTTag)
+ else if (USB_ControlRequest.wValue != CurrentTransferTag)
{
- TMCRequestStatus = TMC_REQUEST_STATUS_TRANSFER_NOT_IN_PROGRESS;
+ TMCRequestStatus = TMC_STATUS_TRANSFER_NOT_IN_PROGRESS;
}
else
{
@@ -188,9 +185,9 @@ void EVENT_USB_Device_UnhandledControlRequest(void) /* Check that an ABORT BULK OUT transaction has been requested and that the request has completed */
if (RequestInProgess != Req_InitiateAbortBulkOut)
- TMCRequestStatus = TMC_REQUEST_STATUS_SPLIT_NOT_IN_PROGRESS;
+ TMCRequestStatus = TMC_STATUS_SPLIT_NOT_IN_PROGRESS;
else if (IsTMCBulkOUTReset)
- TMCRequestStatus = TMC_REQUEST_STATUS_PENDING;
+ TMCRequestStatus = TMC_STATUS_PENDING;
else
RequestInProgess = 0;
@@ -209,14 +206,14 @@ void EVENT_USB_Device_UnhandledControlRequest(void) {
Endpoint_ClearSETUP();
- /* Check that no split transaction is already in progress and the data IN transfer tag is valid */
+ /* Check that no split transaction is already in progress and the data transfer tag is valid */
if (RequestInProgess != 0)
{
- TMCRequestStatus = TMC_REQUEST_STATUS_SPLIT_IN_PROGRESS;
+ TMCRequestStatus = TMC_STATUS_SPLIT_IN_PROGRESS;
}
- else if (USB_ControlRequest.wValue != NextTransferINTag)
+ else if (USB_ControlRequest.wValue != CurrentTransferTag)
{
- TMCRequestStatus = TMC_REQUEST_STATUS_TRANSFER_NOT_IN_PROGRESS;
+ TMCRequestStatus = TMC_STATUS_TRANSFER_NOT_IN_PROGRESS;
}
else
{
@@ -229,7 +226,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void) /* Write the request response bytes */
Endpoint_Write_Byte(TMCRequestStatus);
- Endpoint_Write_Byte(NextTransferINTag);
+ Endpoint_Write_Byte(CurrentTransferTag);
Endpoint_ClearIN();
Endpoint_ClearStatusStage();
@@ -243,9 +240,9 @@ void EVENT_USB_Device_UnhandledControlRequest(void) /* Check that an ABORT BULK IN transaction has been requested and that the request has completed */
if (RequestInProgess != Req_InitiateAbortBulkIn)
- TMCRequestStatus = TMC_REQUEST_STATUS_SPLIT_NOT_IN_PROGRESS;
+ TMCRequestStatus = TMC_STATUS_SPLIT_NOT_IN_PROGRESS;
else if (IsTMCBulkINReset)
- TMCRequestStatus = TMC_REQUEST_STATUS_PENDING;
+ TMCRequestStatus = TMC_STATUS_PENDING;
else
RequestInProgess = 0;
@@ -267,7 +264,7 @@ void EVENT_USB_Device_UnhandledControlRequest(void) /* Check that no split transaction is already in progress */
if (RequestInProgess != 0)
{
- Endpoint_Write_Byte(TMC_REQUEST_STATUS_SPLIT_IN_PROGRESS);
+ Endpoint_Write_Byte(TMC_STATUS_SPLIT_IN_PROGRESS);
}
else
{
@@ -294,9 +291,9 @@ void EVENT_USB_Device_UnhandledControlRequest(void) /* Check that a CLEAR transaction has been requested and that the request has completed */
if (RequestInProgess != Req_InitiateClear)
- TMCRequestStatus = TMC_REQUEST_STATUS_SPLIT_NOT_IN_PROGRESS;
+ TMCRequestStatus = TMC_STATUS_SPLIT_NOT_IN_PROGRESS;
else if (IsTMCBulkINReset || IsTMCBulkOUTReset)
- TMCRequestStatus = TMC_REQUEST_STATUS_PENDING;
+ TMCRequestStatus = TMC_STATUS_PENDING;
else
RequestInProgess = 0;
@@ -337,8 +334,26 @@ void TMC_Task(void) if (Endpoint_IsOUTReceived())
{
- // TEMP - Indicate data received
- LEDs_SetAllLEDs(LEDS_ALL_LEDS);
+ TMC_MessageHeader_t MessageHeader;
+
+ Endpoint_Read_Stream_LE(&MessageHeader, sizeof(MessageHeader), StreamCallback_AbortOUTOnRequest);
+ CurrentTransferTag = MessageHeader.Tag;
+
+ switch (MessageHeader.MessageID)
+ {
+ case TMC_MESSAGEID_DEV_DEP_MSG_OUT:
+
+ break;
+ case TMC_MESSAGEID_DEV_DEP_MSG_IN:
+
+ break;
+ case TMC_MESSAGEID_DEV_VENDOR_OUT:
+
+ break;
+ case TMC_MESSAGEID_DEV_VENDOR_IN:
+ break;
+ }
+
Endpoint_ClearOUT();
}
diff --git a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h index 53f65a1bd..2d5f82f46 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h +++ b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h @@ -65,18 +65,23 @@ #define Req_GetCapabilities 0x07
#define Req_IndicatorPulse 0x40
- #define TMC_REQUEST_STATUS_SUCCESS 0x01
- #define TMC_REQUEST_STATUS_PENDING 0x02
- #define TMC_REQUEST_STATUS_FAILED 0x80
- #define TMC_REQUEST_STATUS_TRANSFER_NOT_IN_PROGRESS 0x81
- #define TMC_REQUEST_STATUS_SPLIT_NOT_IN_PROGRESS 0x82
- #define TMC_REQUEST_STATUS_SPLIT_IN_PROGRESS 0x83
+ #define TMC_STATUS_SUCCESS 0x01
+ #define TMC_STATUS_PENDING 0x02
+ #define TMC_STATUS_FAILED 0x80
+ #define TMC_STATUS_TRANSFER_NOT_IN_PROGRESS 0x81
+ #define TMC_STATUS_SPLIT_NOT_IN_PROGRESS 0x82
+ #define TMC_STATUS_SPLIT_IN_PROGRESS 0x83
+
+ #define TMC_MESSAGEID_DEV_DEP_MSG_OUT 0x01
+ #define TMC_MESSAGEID_DEV_DEP_MSG_IN 0x02
+ #define TMC_MESSAGEID_DEV_VENDOR_OUT 0x7E
+ #define TMC_MESSAGEID_DEV_VENDOR_IN 0x7F
/* Type Defines */
typedef struct
{
uint8_t Status;
- uint8_t _RESERVED1;
+ uint8_t Reserved;
uint16_t TMCVersion;
@@ -85,18 +90,26 @@ unsigned char ListenOnly : 1;
unsigned char TalkOnly : 1;
unsigned char PulseIndicateSupported : 1;
- unsigned char _RESERVED : 5;
+ unsigned char Reserved : 5;
} Interface;
struct
{
unsigned char SupportsAbortINOnMatch : 1;
- unsigned char _RESERVED : 7;
+ unsigned char Reserved : 7;
} Device;
- uint8_t _RESERVED2[6];
- uint8_t _RESERVED3[12];
+ uint8_t Reserved2[6];
+ uint8_t Reserved3[12];
} TMC_Capabilities_t;
+
+ typedef struct
+ {
+ uint8_t MessageID;
+ uint8_t Tag;
+ uint8_t InverseTag;
+ uint8_t Reserved;
+ } TMC_MessageHeader_t;
/* Function Prototypes: */
void SetupHardware(void);
|