Device mode class driver callbacks are now fired before the control request status...
[pub/USBasp.git] / Projects / AVRISP-MKII / Lib / V2Protocol.h
index 97fea47..7ad896d 100644 (file)
 #define _V2_PROTOCOL_\r
 \r
        /* Includes: */\r
-               #include <LUFA/Drivers/USB/USB.h>\r
-               #include <LUFA/Drivers/Peripheral/SPI.h>\r
-               \r
-               #include "../Descriptors.h"\r
-               #include "V2ProtocolConstants.h"\r
-               #include "V2ProtocolParams.h"\r
-               #include "ISP/ISPProtocol.h"\r
-               #include "XPROG/XPROGProtocol.h"\r
+               #if !defined(__ASSEMBLER__)\r
+                       #include <LUFA/Drivers/USB/USB.h>\r
+                       #include <LUFA/Drivers/Peripheral/SPI.h>\r
+                       \r
+                       #include "../Descriptors.h"\r
+                       #include "V2ProtocolConstants.h"\r
+                       #include "V2ProtocolParams.h"\r
+                       #include "ISP/ISPProtocol.h"\r
+                       #include "XPROG/XPROGProtocol.h"\r
+               #endif\r
 \r
        /* Preprocessor Checks: */\r
                #if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))\r
                /** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */\r
                #define PROGRAMMER_ID              "AVRISP_MK2"\r
                \r
+               /** Timeout period for each issued command from the host before it is aborted */\r
+               #define COMMAND_TIMEOUT_MS         200\r
+               \r
+               /** Command timeout counter register, GPIOR for speed */\r
+               #define TimeoutMSRemaining         GPIOR0\r
+\r
                /** MUX mask for the VTARGET ADC channel number */\r
                #define VTARGET_ADC_CHANNEL_MASK   _GETADCMUXMASK(ADC_CHANNEL, VTARGET_ADC_CHANNEL)\r
+               \r
+               #if !defined(WIN_AVRDUDE_COMPAT)\r
+                       #define SELECT_DATA_OUT_ENDPOINT() Endpoint_SetEndpointDirection(ENDPOINT_DIR_OUT);\r
+               #else\r
+                       #define SELECT_DATA_OUT_ENDPOINT() Endpoint_SelectEndpoint();\r
+               #endif\r
 \r
        /* External Variables: */\r
-               extern uint32_t CurrentAddress;\r
-               extern bool     MustSetAddress;\r
+               #if !defined(__ASSEMBLER__)\r
+                       extern uint32_t CurrentAddress;\r
+                       extern bool     MustSetAddress;\r
+               #endif\r
 \r
        /* Function Prototypes: */\r
-               void V2Protocol_Init(void);\r
-               void V2Protocol_ProcessCommand(void);\r
-               \r
-               #if defined(INCLUDE_FROM_V2PROTOCOL_C)\r
-                       static void V2Protocol_UnknownCommand(const uint8_t V2Command);\r
-                       static void V2Protocol_SignOn(void);\r
-                       static void V2Protocol_GetSetParam(const uint8_t V2Command);\r
-                       static void V2Protocol_ResetProtection(void);\r
-                       static void V2Protocol_LoadAddress(void);\r
+               #if !defined(__ASSEMBLER__)\r
+                       void V2Protocol_Init(void);\r
+                       void V2Protocol_ProcessCommand(void);\r
+                       \r
+                       #if defined(INCLUDE_FROM_V2PROTOCOL_C)\r
+                               static void V2Protocol_UnknownCommand(const uint8_t V2Command);\r
+                               static void V2Protocol_SignOn(void);\r
+                               static void V2Protocol_GetSetParam(const uint8_t V2Command);\r
+                               static void V2Protocol_ResetProtection(void);\r
+                               static void V2Protocol_LoadAddress(void);\r
+                       #endif\r
                #endif\r
 \r
 #endif\r