X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/89a32baf585c8881fa972a2cb1963fb67e70d642..ec537fd84d6ad3fd0dfa1b55efa2c2d554c1db48:/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h diff --git a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h index 53f65a1bd..3862805d6 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h +++ b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h @@ -3,7 +3,7 @@ Copyright (C) Dean Camera, 2010. dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ /* @@ -45,17 +45,20 @@ /* Macros: */ /** LED mask for the library LED driver, to indicate that the USB interface is not ready. */ - #define LEDMASK_USB_NOTREADY LEDS_LED1 + #define LEDMASK_USB_NOTREADY LEDS_LED1 /** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */ - #define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3) + #define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3) /** LED mask for the library LED driver, to indicate that the USB interface is ready. */ - #define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4) + #define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4) /** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */ - #define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3) + #define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3) + /** LED mask for the library LED driver, to indicate that the USB interface is busy. */ + #define LEDMASK_USB_BUSY LEDS_LED2 + #define Req_InitiateAbortBulkOut 0x01 #define Req_CheckAbortBulkOutStatus 0x02 #define Req_InitiateAbortBulkIn 0x03 @@ -65,18 +68,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,29 +93,65 @@ 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 + { + unsigned char LastMessageTransaction : 1; + unsigned char Reserved : 7; + + uint8_t Reserved2[3]; + } TMC_DevOUTMessageHeader_t; + + typedef struct + { + unsigned char TermCharEnabled : 1; + unsigned char Reserved : 7; + + uint8_t TermChar; + uint8_t Reserved2[2]; + } TMC_DevINMessageHeader_t; + + typedef struct + { + uint8_t MessageID; + uint8_t Tag; + uint8_t InverseTag; + uint8_t Reserved; + uint32_t TransferSize; + + union + { + TMC_DevOUTMessageHeader_t DeviceOUT; + TMC_DevINMessageHeader_t DeviceIN; + uint32_t VendorSpecific; + } MessageIDSpecific; + } TMC_MessageHeader_t; + /* Function Prototypes: */ void SetupHardware(void); void TMC_Task(void); + bool ReadTMCHeader(TMC_MessageHeader_t* const MessageHeader); + bool WriteTMCHeader(TMC_MessageHeader_t* const MessageHeader); void EVENT_USB_Device_Connect(void); void EVENT_USB_Device_Disconnect(void); void EVENT_USB_Device_ConfigurationChanged(void); - void EVENT_USB_Device_UnhandledControlRequest(void); + void EVENT_USB_Device_ControlRequest(void); uint8_t StreamCallback_AbortINOnRequest(void); uint8_t StreamCallback_AbortOUTOnRequest(void); #endif +