Partially complete work to bring SerialUSB to Arduino 1.0 API. Still need to write code for SerialUSB.flash and SerialUSB.peek

This commit is contained in:
Roger Clark 2014-12-04 08:08:49 +11:00
parent 79668ed667
commit e0179c57fa
4 changed files with 29 additions and 10 deletions

View File

@ -152,7 +152,7 @@ int HardwareSerial::available(void) {
int HardwareSerial::peek(void)
{
return usart_getc(this->usart_device);
return usart_peek(this->usart_device);
}
int HardwareSerial::availableForWrite(void)

View File

@ -127,10 +127,22 @@ size_t n = 0;
return n;
}
uint32 USBSerial::available(void) {
int USBSerial::available(void) {
return usb_cdcacm_data_available();
}
int USBSerial::peek(void)
{
#warning "TO DO!"
uint8 b;
return usb_cdcacm_peek(&b,1);
}
void USBSerial::flush(void)
{
#warning "TO DO!"
}
uint32 USBSerial::read(void *buf, uint32 len) {
if (!buf) {
return 0;
@ -145,7 +157,7 @@ uint32 USBSerial::read(void *buf, uint32 len) {
}
/* Blocks forever until 1 byte is received */
uint8 USBSerial::read(void) {
int USBSerial::read(void) {
uint8 b;
this->read(&b, 1);
return b;

View File

@ -31,13 +31,14 @@
#ifndef _WIRISH_USB_SERIAL_H_
#define _WIRISH_USB_SERIAL_H_
#include <Print.h>
#include <boards.h>
#include "Print.h"
#include "boards.h"
#include "stream.h"
/**
* @brief Virtual serial terminal.
*/
class USBSerial : public Print {
class USBSerial : public Stream {
public:
USBSerial(void);
@ -46,13 +47,19 @@ public:
// Roger Clark. Added dummy function so that existing Arduino sketches which specify baud rate will compile.
void begin(unsigned long);
void begin(unsigned long, uint8_t);
void end(void);
uint32 available(void);
virtual int available(void);// Changed to virtual
uint32 read(void *buf, uint32 len);
uint8 read(void);
// uint8 read(void);
// Roger Clark. added functions to support Arduino 1.0 API
virtual int peek(void);
virtual int read(void);
int availableForWrite(void);
virtual void flush(void);
size_t write(uint8);
size_t write(const char *str);