Acts a USB HID keyboard, and socket server. Forwards characters from TCP ip socket to keyboard

Dependencies:   mbed EthernetNetIf

Committer:
henryeherman
Date:
Fri Dec 14 01:15:44 2018 +0000
Revision:
1:d866a9d23e49
Parent:
0:beb124b81ef5
init

Who changed what in which revision?

UserRevisionLine numberNew contents of line
henryeherman 0:beb124b81ef5 1 /* usbdc.h */
henryeherman 0:beb124b81ef5 2 /* USB device controller */
henryeherman 0:beb124b81ef5 3 /* Copyright (c) Phil Wright 2008 */
henryeherman 0:beb124b81ef5 4
henryeherman 0:beb124b81ef5 5 #ifndef USBDC_H
henryeherman 0:beb124b81ef5 6 #define USBDC_H
henryeherman 0:beb124b81ef5 7
henryeherman 0:beb124b81ef5 8 /* Endpoints */
henryeherman 0:beb124b81ef5 9 #define EP0OUT (0) /* Control */
henryeherman 0:beb124b81ef5 10 #define EP0IN (1) /* Control */
henryeherman 0:beb124b81ef5 11 #define EP1OUT (2) /* Interrupt */
henryeherman 0:beb124b81ef5 12 #define EP1IN (3) /* Interrupt */
henryeherman 0:beb124b81ef5 13 #define EP2OUT (4) /* Bulk */
henryeherman 0:beb124b81ef5 14 #define EP2IN (5) /* Bulk */
henryeherman 0:beb124b81ef5 15
henryeherman 0:beb124b81ef5 16 #include "mbed.h"
henryeherman 0:beb124b81ef5 17
henryeherman 0:beb124b81ef5 18 class usbdc : public Base
henryeherman 0:beb124b81ef5 19 {
henryeherman 0:beb124b81ef5 20 public:
henryeherman 0:beb124b81ef5 21 usbdc();
henryeherman 0:beb124b81ef5 22 void connect(void);
henryeherman 0:beb124b81ef5 23 void disconnect(void);
henryeherman 0:beb124b81ef5 24 protected:
henryeherman 0:beb124b81ef5 25 void setAddress(unsigned char address);
henryeherman 0:beb124b81ef5 26 void realiseEndpoint(unsigned char endpoint, unsigned long maxPacket);
henryeherman 0:beb124b81ef5 27 void enableEndpointEvent(unsigned char endpoint);
henryeherman 0:beb124b81ef5 28 void disableEndpointEvent(unsigned char endpoint);
henryeherman 0:beb124b81ef5 29 void stallEndpoint(unsigned char endpoint);
henryeherman 0:beb124b81ef5 30 void unstallEndpoint(unsigned char endpoint);
henryeherman 0:beb124b81ef5 31 bool getEndpointStallState(unsigned char endpoint);
henryeherman 0:beb124b81ef5 32 void configureDevice(void);
henryeherman 0:beb124b81ef5 33 void unconfigureDevice(void);
henryeherman 0:beb124b81ef5 34 unsigned long endpointRead(unsigned char endpoint, unsigned char *buffer);
henryeherman 0:beb124b81ef5 35 void endpointWrite(unsigned char endpoint, unsigned char *buffer, unsigned long size);
henryeherman 0:beb124b81ef5 36 void enableEvents(void);
henryeherman 0:beb124b81ef5 37 void disableEvents(void);
henryeherman 0:beb124b81ef5 38 virtual void deviceEventReset(void);
henryeherman 0:beb124b81ef5 39 virtual void deviceEventFrame(void);
henryeherman 0:beb124b81ef5 40 virtual void endpointEventEP0Setup(void);
henryeherman 0:beb124b81ef5 41 virtual void endpointEventEP0In(void);
henryeherman 0:beb124b81ef5 42 virtual void endpointEventEP0Out(void);
henryeherman 0:beb124b81ef5 43 virtual void endpointEventEP1In(void);
henryeherman 0:beb124b81ef5 44 virtual void endpointEventEP1Out(void);
henryeherman 0:beb124b81ef5 45 virtual void endpointEventEP2In(void);
henryeherman 0:beb124b81ef5 46 virtual void endpointEventEP2Out(void);
henryeherman 0:beb124b81ef5 47 private:
henryeherman 0:beb124b81ef5 48 void SIECommand(unsigned long command);
henryeherman 0:beb124b81ef5 49 void SIEWriteData(unsigned char data);
henryeherman 0:beb124b81ef5 50 unsigned char SIEReadData(unsigned long command);
henryeherman 0:beb124b81ef5 51 void setDeviceStatus(unsigned char status);
henryeherman 0:beb124b81ef5 52 void setEndpointStatus(unsigned char endpoint, unsigned char status);
henryeherman 0:beb124b81ef5 53 unsigned char getDeviceStatus(void);
henryeherman 0:beb124b81ef5 54 unsigned char selectEndpoint(unsigned char endpoint);
henryeherman 0:beb124b81ef5 55 unsigned char selectEndpointClearInterrupt(unsigned char endpoint);
henryeherman 0:beb124b81ef5 56 unsigned char clearBuffer(void);
henryeherman 0:beb124b81ef5 57 void validateBuffer(void);
henryeherman 0:beb124b81ef5 58 void usbisr(void);
henryeherman 0:beb124b81ef5 59 unsigned long endpointStallState;
henryeherman 0:beb124b81ef5 60 static void _usbisr(void);
henryeherman 0:beb124b81ef5 61 static usbdc *instance;
henryeherman 0:beb124b81ef5 62 };
henryeherman 0:beb124b81ef5 63
henryeherman 0:beb124b81ef5 64
henryeherman 0:beb124b81ef5 65 #endif