X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/cd39c38d5f39d89da989859afd72576b4c1532aa..77a9df36a77d2523dd2bc24fa17f9f04c6c175c5:/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h?ds=sidebyside diff --git a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h index 2d5f82f46..53f32a2ae 100644 --- a/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h +++ b/Demos/Device/Incomplete/TestAndMeasurement/TestAndMeasurement.h @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2010. + Copyright (C) Dean Camera, 2011. dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ /* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -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 @@ -87,40 +90,65 @@ struct { - unsigned char ListenOnly : 1; - unsigned char TalkOnly : 1; - unsigned char PulseIndicateSupported : 1; - unsigned char Reserved : 5; + unsigned ListenOnly : 1; + unsigned TalkOnly : 1; + unsigned PulseIndicateSupported : 1; + unsigned Reserved : 5; } Interface; struct { - unsigned char SupportsAbortINOnMatch : 1; - unsigned char Reserved : 7; + unsigned SupportsAbortINOnMatch : 1; + unsigned Reserved : 7; } Device; uint8_t Reserved2[6]; uint8_t Reserved3[12]; } TMC_Capabilities_t; + + typedef struct + { + unsigned LastMessageTransaction : 1; + unsigned Reserved : 7; + + uint8_t Reserved2[3]; + } TMC_DevOUTMessageHeader_t; typedef struct { - uint8_t MessageID; - uint8_t Tag; - uint8_t InverseTag; - uint8_t Reserved; + unsigned TermCharEnabled : 1; + unsigned 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); - - uint8_t StreamCallback_AbortINOnRequest(void); - uint8_t StreamCallback_AbortOUTOnRequest(void); + void EVENT_USB_Device_ControlRequest(void); #endif +