Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: STM32F103C8T6_WebUSBDFU STM32F103C8T6_USBDFU STM32F103C8T6_USBDFU dfu_usb_stm32f103
Fork of USBDevice_STM32F103 by
Revision 25:7c72828865f3, committed 2014-06-03
- Comitter:
- mbed_official
- Date:
- Tue Jun 03 11:30:32 2014 +0100
- Parent:
- 24:33920e3786aa
- Child:
- 26:8ef73dd868a0
- Commit message:
- Synchronized with git revision bcacbb9fbf3432829227430830cca4315b57c1b9
Full URL: https://github.com/mbedmicro/mbed/commit/bcacbb9fbf3432829227430830cca4315b57c1b9/
Changed in this revision
--- a/USBAudio/USBAudio.h Fri May 16 09:00:39 2014 +0100
+++ b/USBAudio/USBAudio.h Tue Jun 03 11:30:32 2014 +0100
@@ -50,7 +50,7 @@
*
* int main() {
* int16_t buf[AUDIO_LENGTH_PACKET/2];
-*
+*
* while (1) {
* // read an audio packet
* audio.read((uint8_t *)buf);
@@ -88,7 +88,7 @@
* @returns volume
*/
float getVolume();
-
+
/**
* Read an audio packet. During a frame, only a single reading (you can't write and read an audio packet during the same frame)can be done using this method. Warning: Blocking
*
@@ -97,7 +97,7 @@
* @returns true if successfull
*/
bool read(uint8_t * buf);
-
+
/**
* Try to read an audio packet. During a frame, only a single reading (you can't write and read an audio packet during the same frame)can be done using this method. Warning: Non Blocking
*
@@ -106,7 +106,7 @@
* @returns true if successfull
*/
bool readNB(uint8_t * buf);
-
+
/**
* Write an audio packet. During a frame, only a single writing (you can't write and read an audio packet during the same frame)can be done using this method.
*
@@ -114,7 +114,7 @@
* @returns true if successful
*/
bool write(uint8_t * buf);
-
+
/**
* Write and read an audio packet at the same time (on the same frame)
*
@@ -123,7 +123,7 @@
* @returns true if successful
*/
bool readWrite(uint8_t * buf_read, uint8_t * buf_write);
-
+
/** attach a handler to update the volume
*
@@ -212,12 +212,12 @@
* Callback called on each Start of Frame event
*/
virtual void SOF(int frameNumber);
-
+
/*
* Callback called when a packet is received
*/
virtual bool EP3_OUT_callback();
-
+
/*
* Callback called when a packet has been sent
*/
@@ -227,13 +227,13 @@
// stream available ?
volatile bool available;
-
+
// interrupt OUT has been received
volatile bool interruptOUT;
-
+
// interrupt IN has been received
volatile bool interruptIN;
-
+
// audio packet has been written
volatile bool writeIN;
@@ -248,7 +248,7 @@
// mono, stereo,...
uint8_t channel_nb_in;
uint8_t channel_nb_out;
-
+
// channel config: master, left, right
uint8_t channel_config_in;
uint8_t channel_config_out;
@@ -270,16 +270,16 @@
// Buffer containing one audio packet (to be read)
volatile uint8_t * buf_stream_in;
-
+
// Buffer containing one audio packet (to be written)
volatile uint8_t * buf_stream_out;
-
+
// callback to update volume
FunctionPointer updateVol;
-
+
// boolean showing that the SOF handler has been called. Useful for readNB.
volatile bool SOF_handler;
-
+
volatile float volume;
};
--- a/USBDevice/USBDescriptor.h Fri May 16 09:00:39 2014 +0100 +++ b/USBDevice/USBDescriptor.h Tue Jun 03 11:30:32 2014 +0100 @@ -32,7 +32,7 @@ /*string offset*/ -#define STRING_OFFSET_LANGID (0) +#define STRING_OFFSET_LANGID (0) #define STRING_OFFSET_IMANUFACTURER (1) #define STRING_OFFSET_IPRODUCT (2) #define STRING_OFFSET_ISERIAL (3)
--- a/USBDevice/USBDevice.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBDevice.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -106,7 +106,7 @@
transfer.ptr = stringImanufacturerDesc();
transfer.direction = DEVICE_TO_HOST;
success = true;
- break;
+ break;
case STRING_OFFSET_IPRODUCT:
#ifdef DEBUG
printf("3\r\n");
@@ -115,7 +115,7 @@
transfer.ptr = stringIproductDesc();
transfer.direction = DEVICE_TO_HOST;
success = true;
- break;
+ break;
case STRING_OFFSET_ISERIAL:
#ifdef DEBUG
printf("4\r\n");
@@ -124,7 +124,7 @@
transfer.ptr = stringIserialDesc();
transfer.direction = DEVICE_TO_HOST;
success = true;
- break;
+ break;
case STRING_OFFSET_ICONFIGURATION:
#ifdef DEBUG
printf("5\r\n");
@@ -133,7 +133,7 @@
transfer.ptr = stringIConfigurationDesc();
transfer.direction = DEVICE_TO_HOST;
success = true;
- break;
+ break;
case STRING_OFFSET_IINTERFACE:
#ifdef DEBUG
printf("6\r\n");
@@ -142,7 +142,7 @@
transfer.ptr = stringIinterfaceDesc();
transfer.direction = DEVICE_TO_HOST;
success = true;
- break;
+ break;
}
break;
case INTERFACE_DESCRIPTOR:
@@ -357,7 +357,7 @@
{
success = true;
currentInterface = transfer.setup.wIndex;
- currentAlternate = transfer.setup.wValue;
+ currentAlternate = transfer.setup.wValue;
}
return success;
}
@@ -473,12 +473,12 @@
if (success)
{
- /* Send the status */
+ /* Send the status */
transfer.ptr = (uint8_t *)&status; /* Assumes little endian */
transfer.remaining = sizeof(status);
transfer.direction = DEVICE_TO_HOST;
}
-
+
return success;
}
@@ -546,7 +546,7 @@
transfer.direction = 0;
transfer.zlp = false;
transfer.notify = false;
-
+
#ifdef DEBUG
printf("dataTransferDirection: %d\r\nType: %d\r\nRecipient: %d\r\nbRequest: %d\r\nwValue: %d\r\nwIndex: %d\r\nwLength: %d\r\n",transfer.setup.bmRequestType.dataTransferDirection,
transfer.setup.bmRequestType.Type,
@@ -593,7 +593,7 @@
}
else
{
-
+
/* OUT data stage is required */
if (transfer.direction != HOST_TO_DEVICE)
{
@@ -707,7 +707,7 @@
{
/* Connect device */
USBHAL::connect();
-
+
if (blocking) {
/* Block if not configured */
while (!configured());
@@ -793,8 +793,8 @@
USBDevice::USBDevice(uint16_t vendor_id, uint16_t product_id, uint16_t product_release){
- VENDOR_ID = vendor_id;
- PRODUCT_ID = product_id;
+ VENDOR_ID = vendor_id;
+ PRODUCT_ID = product_id;
PRODUCT_RELEASE = product_release;
/* Set initial device state */
@@ -818,12 +818,12 @@
{
return false;
}
-
-
+
+
if(!configured()) {
return false;
}
-
+
/* Send report */
result = endpointWrite(endpoint, buffer, size);
@@ -849,7 +849,7 @@
{
return false;
}
-
+
if(!configured()) {
return false;
}
@@ -872,7 +872,7 @@
bool USBDevice::readEP(uint8_t endpoint, uint8_t * buffer, uint32_t * size, uint32_t maxSize)
{
EP_STATUS result;
-
+
if(!configured()) {
return false;
}
@@ -889,13 +889,13 @@
bool USBDevice::readEP_NB(uint8_t endpoint, uint8_t * buffer, uint32_t * size, uint32_t maxSize)
{
EP_STATUS result;
-
+
if(!configured()) {
return false;
}
result = endpointReadResult(endpoint, buffer, size);
-
+
return (result == EP_COMPLETED);
}
--- a/USBDevice/USBDevice.h Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBDevice.h Tue Jun 03 11:30:32 2014 +0100
@@ -27,26 +27,26 @@
{
public:
USBDevice(uint16_t vendor_id, uint16_t product_id, uint16_t product_release);
-
+
/*
* Check if the device is configured
*
* @returns true if configured, false otherwise
*/
bool configured(void);
-
+
/*
* Connect a device
- *
+ *
* @param blocking: block if not configured
*/
void connect(bool blocking = true);
-
+
/*
* Disconnect a device
*/
void disconnect(void);
-
+
/*
* Add an endpoint
*
@@ -65,7 +65,7 @@
* @return true if successful
*/
bool readStart(uint8_t endpoint, uint32_t maxSize);
-
+
/*
* Read a certain endpoint. Before calling this function, USBUSBDevice_readStart
* must be called.
@@ -79,20 +79,20 @@
* @returns true if successful
*/
bool readEP(uint8_t endpoint, uint8_t * buffer, uint32_t * size, uint32_t maxSize);
-
+
/*
* Read a certain endpoint.
*
* Warning: non blocking
*
* @param endpoint endpoint which will be read
- * @param buffer buffer will be filled with the data received (if data are available)
+ * @param buffer buffer will be filled with the data received (if data are available)
* @param size the number of bytes read will be stored in *size
* @param maxSize the maximum length that can be read
* @returns true if successful
*/
bool readEP_NB(uint8_t endpoint, uint8_t * buffer, uint32_t * size, uint32_t maxSize);
-
+
/*
* Write a certain endpoint.
*
@@ -104,8 +104,8 @@
* @param maxSize the maximum length that can be written on this endpoint
*/
bool write(uint8_t endpoint, uint8_t * buffer, uint32_t size, uint32_t maxSize);
-
-
+
+
/*
* Write a certain endpoint.
*
@@ -118,14 +118,14 @@
*/
bool writeNB(uint8_t endpoint, uint8_t * buffer, uint32_t size, uint32_t maxSize);
-
+
/*
* Called by USBDevice layer on bus reset. Warning: Called in ISR context
*
* May be used to reset state
*/
virtual void USBCallback_busReset(void) {};
-
+
/*
* Called by USBDevice on Endpoint0 request. Warning: Called in ISR context
* This is used to handle extensions to standard requests
@@ -133,8 +133,8 @@
*
* @returns true if class handles this request
*/
- virtual bool USBCallback_request() { return false; };
-
+ virtual bool USBCallback_request() { return false; };
+
/*
* Called by USBDevice on Endpoint0 request completion
* if the 'notify' flag has been set to true. Warning: Called in ISR context
@@ -146,7 +146,7 @@
* @param length length of this buffer
*/
virtual void USBCallback_requestCompleted(uint8_t * buf, uint32_t length) {};
-
+
/*
* Called by USBDevice layer. Set configuration of the device.
* For instance, you can add all endpoints that you need on this function.
@@ -154,7 +154,7 @@
* @param configuration Number of the configuration
*/
virtual bool USBCallback_setConfiguration(uint8_t configuration) { return false; };
-
+
/*
* Called by USBDevice layer. Set interface/alternate of the device.
*
@@ -170,63 +170,63 @@
* @returns pointer to the device descriptor
*/
virtual uint8_t * deviceDesc();
-
+
/*
* Get configuration descriptor
*
* @returns pointer to the configuration descriptor
*/
virtual uint8_t * configurationDesc(){return NULL;};
-
+
/*
* Get string lang id descriptor
*
* @return pointer to the string lang id descriptor
*/
virtual uint8_t * stringLangidDesc();
-
+
/*
* Get string manufacturer descriptor
*
* @returns pointer to the string manufacturer descriptor
*/
virtual uint8_t * stringImanufacturerDesc();
-
+
/*
* Get string product descriptor
*
* @returns pointer to the string product descriptor
*/
virtual uint8_t * stringIproductDesc();
-
+
/*
* Get string serial descriptor
*
* @returns pointer to the string serial descriptor
*/
virtual uint8_t * stringIserialDesc();
-
+
/*
* Get string configuration descriptor
*
* @returns pointer to the string configuration descriptor
*/
virtual uint8_t * stringIConfigurationDesc();
-
+
/*
* Get string interface descriptor
*
* @returns pointer to the string interface descriptor
*/
virtual uint8_t * stringIinterfaceDesc();
-
+
/*
* Get the length of the report descriptor
*
* @returns length of the report descriptor
*/
virtual uint16_t reportDescLength() { return 0; };
-
+
protected:
@@ -238,7 +238,7 @@
virtual void suspendStateChanged(unsigned int suspended);
uint8_t * findDescriptor(uint8_t descriptorType);
CONTROL_TRANSFER * getTransferPtr(void);
-
+
uint16_t VENDOR_ID;
uint16_t PRODUCT_ID;
uint16_t PRODUCT_RELEASE;
@@ -262,7 +262,7 @@
CONTROL_TRANSFER transfer;
USB_DEVICE device;
-
+
uint16_t currentInterface;
uint8_t currentAlternate;
};
--- a/USBDevice/USBEndpoints_KL25Z.h Fri May 16 09:00:39 2014 +0100 +++ b/USBDevice/USBEndpoints_KL25Z.h Tue Jun 03 11:30:32 2014 +0100 @@ -23,38 +23,38 @@ /* Endpoint No. */ /* ---------------- */ -#define EP0OUT (0) -#define EP0IN (1) -#define EP1OUT (2) -#define EP1IN (3) -#define EP2OUT (4) -#define EP2IN (5) -#define EP3OUT (6) -#define EP3IN (7) -#define EP4OUT (8) -#define EP4IN (9) -#define EP5OUT (10) -#define EP5IN (11) -#define EP6OUT (12) -#define EP6IN (13) -#define EP7OUT (14) -#define EP7IN (15) -#define EP8OUT (16) -#define EP8IN (17) -#define EP9OUT (18) -#define EP9IN (19) -#define EP10OUT (20) -#define EP10IN (21) -#define EP11OUT (22) -#define EP11IN (23) -#define EP12OUT (24) -#define EP12IN (25) -#define EP13OUT (26) -#define EP13IN (27) -#define EP14OUT (28) -#define EP14IN (29) -#define EP15OUT (30) -#define EP15IN (31) +#define EP0OUT (0) +#define EP0IN (1) +#define EP1OUT (2) +#define EP1IN (3) +#define EP2OUT (4) +#define EP2IN (5) +#define EP3OUT (6) +#define EP3IN (7) +#define EP4OUT (8) +#define EP4IN (9) +#define EP5OUT (10) +#define EP5IN (11) +#define EP6OUT (12) +#define EP6IN (13) +#define EP7OUT (14) +#define EP7IN (15) +#define EP8OUT (16) +#define EP8IN (17) +#define EP9OUT (18) +#define EP9IN (19) +#define EP10OUT (20) +#define EP10IN (21) +#define EP11OUT (22) +#define EP11IN (23) +#define EP12OUT (24) +#define EP12IN (25) +#define EP13OUT (26) +#define EP13IN (27) +#define EP14OUT (28) +#define EP14IN (29) +#define EP15OUT (30) +#define EP15IN (31) /* Maximum Packet sizes */
--- a/USBDevice/USBHAL.h Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBHAL.h Tue Jun 03 11:30:32 2014 +0100
@@ -58,7 +58,7 @@
bool realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t options);
bool getEndpointStallState(unsigned char endpoint);
uint32_t endpointReadcore(uint8_t endpoint, uint8_t *buffer);
-
+
protected:
virtual void busReset(void){};
virtual void EP0setupCallback(void){};
@@ -67,7 +67,7 @@
virtual void connectStateChanged(unsigned int connected){};
virtual void suspendStateChanged(unsigned int suspended){};
virtual void SOF(int frameNumber){};
-
+
virtual bool EP1_OUT_callback(){return false;};
virtual bool EP1_IN_callback(){return false;};
virtual bool EP2_OUT_callback(){return false;};
@@ -102,7 +102,7 @@
virtual bool EP15_IN_callback(){return false;};
#endif
#endif
-
+
private:
void usbisr(void);
static void _usbisr(void);
@@ -116,6 +116,6 @@
bool (USBHAL::*epCallback[32 - 2])(void);
#endif
-
+
};
#endif
--- a/USBDevice/USBHAL_LPC11U.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBHAL_LPC11U.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -134,7 +134,7 @@
USBHAL::USBHAL(void) {
NVIC_DisableIRQ(USB_IRQ);
-
+
// fill in callback array
epCallback[0] = &USBHAL::EP1_OUT_callback;
epCallback[1] = &USBHAL::EP1_IN_callback;
@@ -149,7 +149,7 @@
// USB_VBUS input with pull-down
LPC_IOCON->PIO0_3 = 0x00000009;
#endif
-
+
// nUSB_CONNECT output
LPC_IOCON->PIO0_6 = 0x00000001;
@@ -287,13 +287,13 @@
bf = 0;
}
}
-
+
// if isochronous endpoint, T = 1
if(endpointState[endpoint].options & ISOCHRONOUS)
{
flags |= CMDSTS_T;
}
-
+
//Active the endpoint for reading
ep[PHY_TO_LOG(endpoint)].out[bf] = CMDSTS_A | CMDSTS_NBYTES(maximumSize) \
| CMDSTS_ADDRESS_OFFSET((uint32_t)ct->out) | flags;
@@ -408,7 +408,7 @@
EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
uint32_t bf;
-
+
// Validate parameters
if (endpoint > LAST_PHYSICAL_ENDPOINT) {
return EP_INVALID;
@@ -680,7 +680,7 @@
// EP0IN ACK event (IN data sent)
EP0in();
}
-
+
for (uint8_t num = 2; num < 5*2; num++) {
if (LPC_USB->INTSTAT & EP(num)) {
LPC_USB->INTSTAT = EP(num);
--- a/USBDevice/USBHAL_LPC17.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBHAL_LPC17.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -279,7 +279,7 @@
SIEselectEndpoint(endpoint);
SIEclearBuffer();
}
-
+
return size;
}
@@ -327,7 +327,7 @@
USBHAL::USBHAL(void) {
// Disable IRQ
NVIC_DisableIRQ(USB_IRQn);
-
+
// fill in callback array
epCallback[0] = &USBHAL::EP1_OUT_callback;
epCallback[1] = &USBHAL::EP1_IN_callback;
@@ -466,7 +466,7 @@
if (!(epComplete & EP(endpoint)))
return EP_PENDING;
}
-
+
*bytesRead = endpointReadcore(endpoint, buffer);
epComplete &= ~EP(endpoint);
return EP_COMPLETED;
@@ -606,7 +606,7 @@
LPC_USB->USBDevIntClr = EP_SLOW;
EP0in();
}
-
+
for (uint8_t num = 2; num < 16*2; num++) {
if (LPC_USB->USBEpIntSt & EP(num)) {
selectEndpointClearInterrupt(num);
--- a/USBDevice/USBHAL_LPC40.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBHAL_LPC40.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -280,7 +280,7 @@
SIEselectEndpoint(endpoint);
SIEclearBuffer();
}
-
+
return size;
}
@@ -328,7 +328,7 @@
USBHAL::USBHAL(void) {
// Disable IRQ
NVIC_DisableIRQ(USB_IRQn);
-
+
// fill in callback array
epCallback[0] = &USBHAL::EP1_OUT_callback;
epCallback[1] = &USBHAL::EP1_IN_callback;
@@ -367,7 +367,7 @@
// Enable USB clocks
LPC_USB->USBClkCtrl |= DEV_CLK_EN | AHB_CLK_EN | PORT_CLK_EN;
while ((LPC_USB->USBClkSt & (DEV_CLK_EN | AHB_CLK_EN | PORT_CLK_EN)) != (DEV_CLK_ON | AHB_CLK_ON | PORT_CLK_EN));
-
+
// Select port USB2
LPC_USB->StCtrl |= 3;
@@ -375,13 +375,13 @@
// Configure pin P0.31 to be USB2
LPC_IOCON->P0_31 &= ~0x07;
LPC_IOCON->P0_31 |= 0x01;
-
+
// Disconnect USB device
SIEdisconnect();
// Configure pin P0.14 to be Connect
LPC_IOCON->P0_14 &= ~0x07;
- LPC_IOCON->P0_14 |= 0x03;
+ LPC_IOCON->P0_14 |= 0x03;
// Connect must be low for at least 2.5uS
wait(0.3);
@@ -471,7 +471,7 @@
if (!(epComplete & EP(endpoint)))
return EP_PENDING;
}
-
+
*bytesRead = endpointReadcore(endpoint, buffer);
epComplete &= ~EP(endpoint);
return EP_COMPLETED;
@@ -611,7 +611,7 @@
LPC_USB->DevIntClr = EP_SLOW;
EP0in();
}
-
+
for (uint8_t num = 2; num < 16*2; num++) {
if (LPC_USB->EpIntSt & EP(num)) {
selectEndpointClearInterrupt(num);
--- a/USBDevice/USBHAL_STM32F4.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBHAL_STM32F4.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -36,7 +36,7 @@
return 0;
}
-USBHAL::USBHAL(void) {
+USBHAL::USBHAL(void) {
NVIC_DisableIRQ(OTG_FS_IRQn);
epCallback[0] = &USBHAL::EP1_OUT_callback;
epCallback[1] = &USBHAL::EP1_IN_callback;
@@ -63,7 +63,7 @@
pin_mode(PA_9, OpenDrain);
RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;
-
+
// Enable interrupts
OTG_FS->GREGS.GAHBCFG |= (1 << 0);
@@ -116,21 +116,21 @@
uint32_t type;
switch (endpoint) {
- case EP0IN:
+ case EP0IN:
case EP0OUT:
type = 0;
- break;
+ break;
case EPISO_IN:
case EPISO_OUT:
- type = 1;
+ type = 1;
case EPBULK_IN:
case EPBULK_OUT:
- type = 2;
- break;
+ type = 2;
+ break;
case EPINT_IN:
case EPINT_OUT:
- type = 3;
- break;
+ type = 3;
+ break;
}
// Generic in or out EP controls
@@ -154,7 +154,7 @@
if (endpoint != EP0IN) {
control |= (1 << 28); // SD0PID
}
-
+
control |= (epIndex << 22) | // TxFIFO index
(1 << 27); // SNAK
OTG_FS->INEP_REGS[epIndex].DIEPCTL = control;
@@ -166,7 +166,7 @@
// Set the out EP specific control settings
control |= (1 << 26); // CNAK
OTG_FS->OUTEP_REGS[epIndex].DOEPCTL = control;
-
+
// Unmask the interrupt
OTG_FS->DREGS.DAINTMSK |= (1 << (epIndex + 16));
}
@@ -190,7 +190,7 @@
for (uint32_t i = 0; i < length; i += 4) {
buffer32[i >> 2] = OTG_FS->FIFO[0][0];
}
-
+
rxFifoCount = 0;
return length;
}
@@ -266,7 +266,7 @@
return EP_COMPLETED;
}
- return EP_PENDING;
+ return EP_PENDING;
}
void USBHAL::stallEndpoint(uint8_t endpoint) {
@@ -282,7 +282,7 @@
}
void USBHAL::unstallEndpoint(uint8_t endpoint) {
-
+
}
bool USBHAL::getEndpointStallState(uint8_t endpoint) {
--- a/USBDevice/USBRegs_STM32.h Fri May 16 09:00:39 2014 +0100
+++ b/USBDevice/USBRegs_STM32.h Tue Jun 03 11:30:32 2014 +0100
@@ -16,8 +16,8 @@
*
* http://www.st.com/software_license_agreement_liberty_v2
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
@@ -70,7 +70,7 @@
}
USB_OTG_DREGS;
-typedef struct
+typedef struct
{
__IO uint32_t DIEPCTL; /* dev IN Endpoint Control Reg 900h + (ep_num * 20h) + 00h*/
uint32_t Reserved04; /* Reserved 900h + (ep_num * 20h) + 04h*/
@@ -83,7 +83,7 @@
}
USB_OTG_INEPREGS;
-typedef struct
+typedef struct
{
__IO uint32_t DOEPCTL; /* dev OUT Endpoint Control Reg B00h + (ep_num * 20h) + 00h*/
uint32_t Reserved04; /* Reserved B00h + (ep_num * 20h) + 04h*/
@@ -117,7 +117,7 @@
}
USB_OTG_HC_REGS;
-typedef struct
+typedef struct
{
USB_OTG_GREGS GREGS;
uint32_t RESERVED0[188];
--- a/USBHID/USBHID.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBHID/USBHID.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -121,7 +121,7 @@
success = true;
}
break;
-
+
default:
break;
}
--- a/USBHID/USBHID.h Fri May 16 09:00:39 2014 +0100
+++ b/USBHID/USBHID.h Tue Jun 03 11:30:32 2014 +0100
@@ -70,8 +70,8 @@
* @returns true if successful
*/
bool send(HID_REPORT *report);
-
-
+
+
/**
* Send a Report. warning: non blocking
*
@@ -79,7 +79,7 @@
* @returns true if successful
*/
bool sendNB(HID_REPORT *report);
-
+
/**
* Read a report: blocking
*
@@ -87,7 +87,7 @@
* @returns true if successful
*/
bool read(HID_REPORT * report);
-
+
/**
* Read a report: non blocking
*
@@ -98,7 +98,7 @@
protected:
uint16_t reportLength;
-
+
/*
* Get the Report descriptor
*
@@ -119,14 +119,14 @@
* @returns pointer to the string product descriptor
*/
virtual uint8_t * stringIproductDesc();
-
+
/*
* Get string interface descriptor
*
* @returns pointer to the string interface descriptor
*/
virtual uint8_t * stringIinterfaceDesc();
-
+
/*
* Get configuration descriptor
*
--- a/USBHID/USBKeyboard.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBHID/USBKeyboard.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -183,7 +183,7 @@
{0x4a, 0}, /* HOME */
{0x4b, 0}, /* PAGE_UP */
{0x4e, 0}, /* PAGE_DOWN */
-
+
{0x4f, 0}, /* RIGHT_ARROW */
{0x50, 0}, /* LEFT_ARROW */
{0x51, 0}, /* DOWN_ARROW */
@@ -344,7 +344,7 @@
{0x4a, 0}, /* HOME */
{0x4b, 0}, /* PAGE_UP */
{0x4e, 0}, /* PAGE_DOWN */
-
+
{0x4f, 0}, /* RIGHT_ARROW */
{0x50, 0}, /* LEFT_ARROW */
{0x51, 0}, /* DOWN_ARROW */
@@ -424,10 +424,10 @@
uint32_t bytesRead = 0;
uint8_t led[65];
USBDevice::readEP(EPINT_OUT, led, &bytesRead, MAX_HID_REPORT_SIZE);
-
+
// we take led[1] because led[0] is the report ID
lock_status = led[1] & 0x07;
-
+
// We activate the endpoint to be able to recceive data
if (!readStart(EPINT_OUT, MAX_HID_REPORT_SIZE))
return false;
--- a/USBHID/USBKeyboard.h Fri May 16 09:00:39 2014 +0100
+++ b/USBHID/USBKeyboard.h Tue Jun 03 11:30:32 2014 +0100
@@ -53,7 +53,7 @@
KEY_F10, /* F10 key */
KEY_F11, /* F11 key */
KEY_F12, /* F12 key */
-
+
KEY_PRINT_SCREEN, /* Print Screen key */
KEY_SCROLL_LOCK, /* Scroll lock */
KEY_CAPS_LOCK, /* caps lock */
@@ -62,7 +62,7 @@
KEY_HOME, /* Home key */
KEY_PAGE_UP, /* Page Up key */
KEY_PAGE_DOWN, /* Page Down key */
-
+
RIGHT_ARROW, /* Right arrow */
LEFT_ARROW, /* Left arrow */
DOWN_ARROW, /* Down arrow */
--- a/USBHID/USBMouse.h Fri May 16 09:00:39 2014 +0100
+++ b/USBHID/USBMouse.h Tue Jun 03 11:30:32 2014 +0100
@@ -35,7 +35,7 @@
/* X and Y limits */
/* These values do not directly map to screen pixels */
/* Zero may be interpreted as meaning 'no movement' */
-#define X_MIN_ABS (1) /*!< Minimum value on x-axis */
+#define X_MIN_ABS (1) /*!< Minimum value on x-axis */
#define Y_MIN_ABS (1) /*!< Minimum value on y-axis */
#define X_MAX_ABS (0x7fff) /*!< Maximum value on x-axis */
#define Y_MAX_ABS (0x7fff) /*!< Maximum value on y-axis */
@@ -85,7 +85,7 @@
* uint16_t y_center = (Y_MAX_ABS - Y_MIN_ABS)/2;
* uint16_t x_screen = 0;
* uint16_t y_screen = 0;
- *
+ *
* uint32_t x_origin = x_center;
* uint32_t y_origin = y_center;
* uint32_t radius = 5000;
@@ -95,7 +95,7 @@
* {
* x_screen = x_origin + cos((double)angle*3.14/180.0)*radius;
* y_screen = y_origin + sin((double)angle*3.14/180.0)*radius;
- *
+ *
* mouse.move(x_screen, y_screen);
* angle += 3;
* wait(0.01);
@@ -107,7 +107,7 @@
class USBMouse: public USBHID
{
public:
-
+
/**
* Constructor
*
@@ -117,14 +117,14 @@
* @param product_release Your preoduct_release (default: 0x0001)
*
*/
- USBMouse(MOUSE_TYPE mouse_type = REL_MOUSE, uint16_t vendor_id = 0x1234, uint16_t product_id = 0x0001, uint16_t product_release = 0x0001):
+ USBMouse(MOUSE_TYPE mouse_type = REL_MOUSE, uint16_t vendor_id = 0x1234, uint16_t product_id = 0x0001, uint16_t product_release = 0x0001):
USBHID(0, 0, vendor_id, product_id, product_release, false)
- {
+ {
button = 0;
this->mouse_type = mouse_type;
connect();
};
-
+
/**
* Write a state of the mouse
*
@@ -135,8 +135,8 @@
* @returns true if there is no error, false otherwise
*/
bool update(int16_t x, int16_t y, uint8_t buttons, int8_t z);
-
-
+
+
/**
* Move the cursor to (x, y)
*
@@ -145,7 +145,7 @@
* @returns true if there is no error, false otherwise
*/
bool move(int16_t x, int16_t y);
-
+
/**
* Press one or several buttons
*
@@ -153,7 +153,7 @@
* @returns true if there is no error, false otherwise
*/
bool press(uint8_t button);
-
+
/**
* Release one or several buttons
*
@@ -161,22 +161,22 @@
* @returns true if there is no error, false otherwise
*/
bool release(uint8_t button);
-
+
/**
* Double click (MOUSE_LEFT)
*
* @returns true if there is no error, false otherwise
*/
bool doubleClick();
-
+
/**
* Click
*
* @param button state of the buttons ( ex: clic(MOUSE_LEFT))
* @returns true if there is no error, false otherwise
*/
- bool click(uint8_t button);
-
+ bool click(uint8_t button);
+
/**
* Scrolling
*
@@ -184,7 +184,7 @@
* @returns true if there is no error, false otherwise
*/
bool scroll(int8_t z);
-
+
/*
* To define the report descriptor. Warning: this method has to store the length of the report descriptor in reportLength.
*
@@ -199,7 +199,7 @@
* @returns pointer to the configuration descriptor
*/
virtual uint8_t * configurationDesc();
-
+
private:
MOUSE_TYPE mouse_type;
uint8_t button;
--- a/USBHID/USBMouseKeyboard.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBHID/USBMouseKeyboard.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -178,7 +178,7 @@
{0x4a, 0}, /* HOME */
{0x4b, 0}, /* PAGE_UP */
{0x4e, 0}, /* PAGE_DOWN */
-
+
{0x4f, 0}, /* RIGHT_ARROW */
{0x50, 0}, /* LEFT_ARROW */
{0x51, 0}, /* DOWN_ARROW */
@@ -339,7 +339,7 @@
{0x4a, 0}, /* HOME */
{0x4b, 0}, /* PAGE_UP */
{0x4e, 0}, /* PAGE_DOWN */
-
+
{0x4f, 0}, /* RIGHT_ARROW */
{0x50, 0}, /* LEFT_ARROW */
{0x51, 0}, /* DOWN_ARROW */
@@ -552,10 +552,10 @@
uint32_t bytesRead = 0;
uint8_t led[65];
USBDevice::readEP(EPINT_OUT, led, &bytesRead, MAX_HID_REPORT_SIZE);
-
+
// we take led[1] because led[0] is the report ID
lock_status = led[1] & 0x07;
-
+
// We activate the endpoint to be able to recceive data
if (!readStart(EPINT_OUT, MAX_HID_REPORT_SIZE))
return false;
@@ -696,7 +696,7 @@
report.length = 2;
send(&report);
-
+
report.data[0] = REPORT_ID_VOLUME;
report.data[1] = 0;
--- a/USBHID/USBMouseKeyboard.h Fri May 16 09:00:39 2014 +0100
+++ b/USBHID/USBMouseKeyboard.h Tue Jun 03 11:30:32 2014 +0100
@@ -28,7 +28,7 @@
#include "Stream.h"
#include "USBHID.h"
-/**
+/**
* USBMouseKeyboard example
* @code
*
@@ -70,7 +70,7 @@
class USBMouseKeyboard: public USBHID, public Stream
{
public:
-
+
/**
* Constructor
*
@@ -81,7 +81,7 @@
* @param product_release Your preoduct_release (default: 0x0001)
*
*/
- USBMouseKeyboard(MOUSE_TYPE mouse_type = REL_MOUSE, uint16_t vendor_id = 0x0021, uint16_t product_id = 0x0011, uint16_t product_release = 0x0001):
+ USBMouseKeyboard(MOUSE_TYPE mouse_type = REL_MOUSE, uint16_t vendor_id = 0x0021, uint16_t product_id = 0x0011, uint16_t product_release = 0x0001):
USBHID(0, 0, vendor_id, product_id, product_release, false)
{
lock_status = 0;
@@ -89,7 +89,7 @@
this->mouse_type = mouse_type;
connect();
};
-
+
/**
* Write a state of the mouse
*
@@ -100,8 +100,8 @@
* @returns true if there is no error, false otherwise
*/
bool update(int16_t x, int16_t y, uint8_t buttons, int8_t z);
-
-
+
+
/**
* Move the cursor to (x, y)
*
@@ -110,7 +110,7 @@
* @returns true if there is no error, false otherwise
*/
bool move(int16_t x, int16_t y);
-
+
/**
* Press one or several buttons
*
@@ -118,7 +118,7 @@
* @returns true if there is no error, false otherwise
*/
bool press(uint8_t button);
-
+
/**
* Release one or several buttons
*
@@ -126,22 +126,22 @@
* @returns true if there is no error, false otherwise
*/
bool release(uint8_t button);
-
+
/**
* Double click (MOUSE_LEFT)
*
* @returns true if there is no error, false otherwise
*/
bool doubleClick();
-
+
/**
* Click
*
* @param button state of the buttons ( ex: clic(MOUSE_LEFT))
* @returns true if there is no error, false otherwise
*/
- bool click(uint8_t button);
-
+ bool click(uint8_t button);
+
/**
* Scrolling
*
@@ -151,7 +151,7 @@
bool scroll(int8_t z);
/**
- * To send a character defined by a modifier(CTRL, SHIFT, ALT) and the key
+ * To send a character defined by a modifier(CTRL, SHIFT, ALT) and the key
*
* @code
* //To send CTRL + s (save)
@@ -163,7 +163,7 @@
* @returns true if there is no error, false otherwise
*/
bool keyCode(uint8_t key, uint8_t modifier = 0);
-
+
/**
* Send a character
*
@@ -171,7 +171,7 @@
* @returns true if there is no error, false otherwise
*/
virtual int _putc(int c);
-
+
/**
* Control media keys
*
@@ -179,7 +179,7 @@
* @returns true if there is no error, false otherwise
*/
bool mediaControl(MEDIA_KEY key);
-
+
/**
* Read status of lock keys. Useful to switch-on/off leds according to key pressed. Only the first three bits of the result is important:
* - First bit: NUM_LOCK
@@ -189,30 +189,30 @@
* @returns status of lock keys
*/
uint8_t lockStatus();
-
+
/*
* To define the report descriptor. Warning: this method has to store the length of the report descriptor in reportLength.
*
* @returns pointer to the report descriptor
*/
virtual uint8_t * reportDesc();
-
+
/*
* Called when a data is received on the OUT endpoint. Useful to switch on LED of LOCK keys
*
* @returns if handle by subclass, return true
*/
virtual bool EP1_OUT_callback();
-
-
+
+
private:
bool mouseWrite(int8_t x, int8_t y, uint8_t buttons, int8_t z);
MOUSE_TYPE mouse_type;
uint8_t button;
bool mouseSend(int8_t x, int8_t y, uint8_t buttons, int8_t z);
-
+
uint8_t lock_status;
-
+
//dummy otherwise it doesn't compile (we must define all methods of an abstract class)
virtual int _getc() { return -1;}
};
--- a/USBMIDI/MIDIMessage.h Fri May 16 09:00:39 2014 +0100
+++ b/USBMIDI/MIDIMessage.h Tue Jun 03 11:30:32 2014 +0100
@@ -22,7 +22,7 @@
#include "mbed.h"
// MIDI Message Format
-//
+//
// [ msg(4) | channel(4) ] [ 0 | n(7) ] [ 0 | m(7) ]
//
// MIDI Data Messages (Channel Specific)
@@ -43,15 +43,15 @@
class MIDIMessage {
public:
MIDIMessage() {}
-
+
MIDIMessage(uint8_t *buf) {
for (int i = 0; i < 4; i++)
data[i] = buf[i];
}
-
+
// create messages
-
- /** Create a NoteOff message
+
+ /** Create a NoteOff message
* @param key Key ID
* @param velocity Key velocity (0-127, default = 127)
* @param channel Key channel (0-15, default 0)
@@ -62,11 +62,11 @@
msg.data[0] = CABLE_NUM | 0x08;
msg.data[1] = 0x80 | (channel & 0x0F);
msg.data[2] = key & 0x7F;
- msg.data[3] = velocity & 0x7F;
+ msg.data[3] = velocity & 0x7F;
return msg;
}
-
- /** Create a NoteOn message
+
+ /** Create a NoteOn message
* @param key Key ID
* @param velocity Key velocity (0-127, default = 127)
* @param channel Key channel (0-15, default 0)
@@ -77,26 +77,26 @@
msg.data[0] = CABLE_NUM | 0x09;
msg.data[1] = 0x90 | (channel & 0x0F);
msg.data[2] = key & 0x7F;
- msg.data[3] = velocity & 0x7F;
+ msg.data[3] = velocity & 0x7F;
return msg;
}
-
- /** Create a PolyPhonic Aftertouch message
+
+ /** Create a PolyPhonic Aftertouch message
* @param key Key ID
* @param pressure Aftertouch pressure (0-127)
* @param channel Key channel (0-15, default 0)
* @returns A MIDIMessage
- */
+ */
static MIDIMessage PolyphonicAftertouch(int key, int pressure, int channel = 0) {
MIDIMessage msg;
msg.data[0] = CABLE_NUM | 0x0A;
msg.data[1] = 0xA0 | (channel & 0x0F);
msg.data[2] = key & 0x7F;
- msg.data[3] = pressure & 0x7F;
+ msg.data[3] = pressure & 0x7F;
return msg;
}
-
- /** Create a Control Change message
+
+ /** Create a Control Change message
* @param control Controller ID
* @param value Controller value (0-127)
* @param channel Controller channel (0-15, default 0)
@@ -107,63 +107,63 @@
msg.data[0] = CABLE_NUM | 0x0B;
msg.data[1] = 0xB0 | (channel & 0x0F);
msg.data[2] = control & 0x7F;
- msg.data[3] = value & 0x7F;
+ msg.data[3] = value & 0x7F;
return msg;
}
-
- /** Create a Program Change message
+
+ /** Create a Program Change message
* @param program Program ID
* @param channel Channel (0-15, default 0)
* @returns A MIDIMessage
- */
+ */
static MIDIMessage ProgramChange(int program, int channel = 0) {
MIDIMessage msg;
msg.data[0] = CABLE_NUM | 0x0C;
msg.data[1] = 0xC0 | (channel & 0x0F);
msg.data[2] = program & 0x7F;
- msg.data[3] = 0x00;
+ msg.data[3] = 0x00;
return msg;
}
-
- /** Create a Channel Aftertouch message
- * @param pressure Pressure
+
+ /** Create a Channel Aftertouch message
+ * @param pressure Pressure
* @param channel Key channel (0-15, default 0)
* @returns A MIDIMessage
- */
+ */
static MIDIMessage ChannelAftertouch(int pressure, int channel = 0) {
MIDIMessage msg;
msg.data[0] = CABLE_NUM | 0x0D;
msg.data[1] = 0xD0 | (channel & 0x0F);
msg.data[2] = pressure & 0x7F;
- msg.data[3] = 0x00;
+ msg.data[3] = 0x00;
return msg;
}
-
- /** Create a Pitch Wheel message
+
+ /** Create a Pitch Wheel message
* @param pitch Pitch (-8192 - 8191, default = 0)
* @param channel Channel (0-15, default 0)
* @returns A MIDIMessage
- */
+ */
static MIDIMessage PitchWheel(int pitch = 0, int channel = 0) {
MIDIMessage msg;
int p = pitch + 8192; // 0 - 16383, 8192 is center
msg.data[0] = CABLE_NUM | 0x0E;
msg.data[1] = 0xE0 | (channel & 0x0F);
msg.data[2] = p & 0x7F;
- msg.data[3] = (p >> 7) & 0x7F;
+ msg.data[3] = (p >> 7) & 0x7F;
return msg;
}
-
- /** Create an All Notes Off message
+
+ /** Create an All Notes Off message
* @param channel Channel (0-15, default 0)
* @returns A MIDIMessage
- */
+ */
static MIDIMessage AllNotesOff(int channel = 0) {
return ControlChange(123, 0, channel);
}
-
+
// decode messages
-
+
/** MIDI Message Types */
enum MIDIMessageType {
ErrorType,
@@ -176,16 +176,16 @@
PitchWheelType,
AllNotesOffType
};
-
+
/** Read the message type
* @returns MIDIMessageType
- */
+ */
MIDIMessageType type() {
switch((data[1] >> 4) & 0xF) {
case 0x8: return NoteOffType;
case 0x9: return NoteOnType;
case 0xA: return PolyphonicAftertouchType;
- case 0xB:
+ case 0xB:
if(controller() < 120) { // standard controllers
return ControlChangeType;
} else if(controller() == 123) {
@@ -200,51 +200,51 @@
}
}
- /** Read the channel number */
+ /** Read the channel number */
int channel() {
return (data[1] & 0x0F);
}
-
- /** Read the key ID */
+
+ /** Read the key ID */
int key() {
- return (data[2] & 0x7F);
+ return (data[2] & 0x7F);
}
-
- /** Read the velocity */
+
+ /** Read the velocity */
int velocity() {
- return (data[3] & 0x7F);
+ return (data[3] & 0x7F);
}
- /** Read the controller value */
+ /** Read the controller value */
int value() {
- return (data[3] & 0x7F);
+ return (data[3] & 0x7F);
}
-
- /** Read the aftertouch pressure */
+
+ /** Read the aftertouch pressure */
int pressure() {
if(type() == PolyphonicAftertouchType) {
- return (data[3] & 0x7F);
+ return (data[3] & 0x7F);
} else {
- return (data[2] & 0x7F);
+ return (data[2] & 0x7F);
}
}
- /** Read the controller number */
+ /** Read the controller number */
int controller() {
- return (data[2] & 0x7F);
+ return (data[2] & 0x7F);
}
- /** Read the program number */
+ /** Read the program number */
int program() {
- return (data[2] & 0x7F);
+ return (data[2] & 0x7F);
}
-
- /** Read the pitch value */
+
+ /** Read the pitch value */
int pitch() {
int p = ((data[3] & 0x7F) << 7) | (data[2] & 0x7F);
return p - 8192; // 0 - 16383, 8192 is center
}
-
+
uint8_t data[4];
};
--- a/USBMIDI/USBMIDI.h Fri May 16 09:00:39 2014 +0100
+++ b/USBMIDI/USBMIDI.h Tue Jun 03 11:30:32 2014 +0100
@@ -29,7 +29,7 @@
#define DEFAULT_CONFIGURATION (1)
-/**
+/**
* USBMIDI example
*
* @code
@@ -38,8 +38,8 @@
*
* USBMIDI midi;
*
-* int main() {
-* while (1) {
+* int main() {
+* while (1) {
* for(int i=48; i<83; i++) { // send some messages!
* midi.write(MIDIMessage::NoteOn(i));
* wait(0.25);
@@ -61,12 +61,12 @@
* @param product_release Your preoduct_release
*/
USBMIDI(uint16_t vendor_id = 0x0700, uint16_t product_id = 0x0101, uint16_t product_release = 0x0001);
-
+
/**
* Send a MIDIMessage
*
* @param m The MIDIMessage to send
- */
+ */
void write(MIDIMessage m);
/**
@@ -75,8 +75,8 @@
* @param fptr function pointer
*/
void attach(void (*fptr)(MIDIMessage));
-
-
+
+
protected:
virtual bool EP2_OUT_callback();
virtual bool USBCallback_setConfiguration(uint8_t configuration);
@@ -86,14 +86,14 @@
* @returns pointer to the string product descriptor
*/
virtual uint8_t * stringIproductDesc();
-
+
/*
* Get string interface descriptor
*
* @returns pointer to the string interface descriptor
*/
virtual uint8_t * stringIinterfaceDesc();
-
+
/*
* Get configuration descriptor
*
--- a/USBMSD/USBMSD.h Fri May 16 09:00:39 2014 +0100
+++ b/USBMSD/USBMSD.h Tue Jun 03 11:30:32 2014 +0100
@@ -79,7 +79,7 @@
* Disconnect the USB MSD device.
*/
void disconnect();
-
+
/**
* Destructor
*/
--- a/USBSerial/USBCDC.cpp Fri May 16 09:00:39 2014 +0100
+++ b/USBSerial/USBCDC.cpp Tue Jun 03 11:30:32 2014 +0100
@@ -73,15 +73,15 @@
if (length != 7) {
return;
}
-
+
CONTROL_TRANSFER * transfer = getTransferPtr();
-
+
/* Process class-specific requests */
if (transfer->setup.bmRequestType.Type == CLASS_TYPE) {
if (transfer->setup.bRequest == CDC_SET_LINE_CODING) {
if (memcmp(cdc_line_coding, buf, 7)) {
- memcpy(cdc_line_coding, buf, 7);
-
+ memcpy(cdc_line_coding, buf, 7);
+
int baud = buf[0] + (buf[1] << 8)
+ (buf[2] << 16) + (buf[3] << 24);
int stop = buf[4];
@@ -186,7 +186,7 @@
0, // iConfiguration
0x80, // bmAttributes
50, // bMaxPower
-
+
// IAD to associate the two CDC interfaces
0x08, // bLength
0x0b, // bDescriptorType
--- a/USBSerial/USBCDC.h Fri May 16 09:00:39 2014 +0100
+++ b/USBSerial/USBCDC.h Tue Jun 03 11:30:32 2014 +0100
@@ -40,35 +40,35 @@
USBCDC(uint16_t vendor_id, uint16_t product_id, uint16_t product_release, bool connect_blocking);
protected:
-
+
/*
* Get device descriptor. Warning: this method has to store the length of the report descriptor in reportLength.
*
* @returns pointer to the device descriptor
*/
virtual uint8_t * deviceDesc();
-
+
/*
* Get string product descriptor
*
* @returns pointer to the string product descriptor
*/
virtual uint8_t * stringIproductDesc();
-
+
/*
* Get string interface descriptor
*
* @returns pointer to the string interface descriptor
*/
virtual uint8_t * stringIinterfaceDesc();
-
+
/*
* Get configuration descriptor
*
* @returns pointer to the configuration descriptor
*/
virtual uint8_t * configurationDesc();
-
+
/*
* Send a buffer
*
@@ -78,7 +78,7 @@
* @returns true if successful
*/
bool send(uint8_t * buffer, uint32_t size);
-
+
/*
* Read a buffer from a certain endpoint. Warning: blocking
*
@@ -89,7 +89,7 @@
* @returns true if successful
*/
bool readEP(uint8_t * buffer, uint32_t * size);
-
+
/*
* Read a buffer from a certain endpoint. Warning: non blocking
*
@@ -111,7 +111,7 @@
* @param stop The number of stop bits (1 or 2)
*/
virtual void lineCodingChanged(int baud, int bits, int parity, int stop) {};
-
+
protected:
virtual bool USBCallback_request();
virtual void USBCallback_requestCompleted(uint8_t *buf, uint32_t length);
--- a/USBSerial/USBSerial.h Fri May 16 09:00:39 2014 +0100
+++ b/USBSerial/USBSerial.h Tue Jun 03 11:30:32 2014 +0100
@@ -68,20 +68,20 @@
* @returns true if there is no error, false otherwise
*/
virtual int _putc(int c);
-
+
/**
* Read a character: blocking
*
* @returns character read
*/
virtual int _getc();
-
+
/**
* Check the number of bytes available.
*
* @returns the number of bytes available
*/
- uint8_t available();
+ uint8_t available();
/** Determine if there is a character available to read
*
@@ -90,7 +90,7 @@
* 0 otherwise
*/
int readable() { return available() ? 1 : 0; }
-
+
/** Determine if there is space available to write a character
*
* @returns
@@ -98,9 +98,9 @@
* 0 otherwise
*/
int writeable() { return 1; } // always return 1, for write operation is blocking
-
+
/**
- * Write a block of data.
+ * Write a block of data.
*
* For more efficiency, a block of size 64 (maximum size of a bulk endpoint) has to be written.
*
@@ -112,7 +112,7 @@
bool writeBlock(uint8_t * buf, uint16_t size);
/**
- * Attach a member function to call when a packet is received.
+ * Attach a member function to call when a packet is received.
*
* @param tptr pointer to the object to call the member function on
* @param mptr pointer to the member function to be called
