/* insert license */ #ifndef __USB_CALLBACKS #define __USB_CALLBACKS #include "libmaple.h" #include "usb_lib.h" #include "usb_config.h" #define SET_LINE_CODING 0x20 #define GET_LINE_CODING 0x21 #define SET_COMM_FEATURE 0x02 #define SET_CONTROL_LINE_STATE 0x22 #define CONTROL_LINE_DTR (0x01) #define CONTROL_LINE_RTS (0x02) #if defined(__cplusplus) extern "C" { #endif typedef struct { uint32 bitrate; uint8 format; uint8 paritytype; uint8 datatype; } USB_Line_Coding; typedef enum { DTR_UNSET, DTR_HIGH, DTR_NEGEDGE, DTR_LOW } RESET_STATE; extern RESET_STATE reset_state; /* tracks DTR/RTS */ extern uint8 line_dtr_rts; extern volatile uint32 countTx; extern uint8 vcomBufferRx[VCOM_RX_BUFLEN]; /* no reason this has to be VCOM_RX_EPSIZE, could be bigger */ extern volatile uint32 recvBufIn; /* the FIFO in index to the recvbuffer */ extern volatile uint32 recvBufOut; /* the FIFO out index to the recvbuffer */ extern volatile uint32 maxNewBytes; extern volatile uint32 newBytes; void vcomDataTxCb(void); void vcomDataRxCb(void); void vcomManagementCb(void); uint8* vcomGetSetLineCoding(uint16 length); void vcomSetLineSate(void); void usbInit(void); /* internal functions (as per the usb_core pProperty structure) */ void usbInit(void); void usbReset(void); void usbStatusIn(void); void usbStatusOut(void); RESULT usbDataSetup(uint8 request); RESULT usbNoDataSetup(uint8 request); RESULT usbGetInterfaceSetting(uint8,uint8); uint8* usbGetDeviceDescriptor(uint16 length); uint8* usbGetConfigDescriptor(uint16 length); uint8* usbGetStringDescriptor(uint16 length); /* internal callbacks to respond to standard requests */ void usbSetConfiguration(void); void usbSetDeviceAddress(void); #if defined(__cplusplus) } #endif #endif