mirror of
https://github.com/esp8266/Arduino.git
synced 2025-04-19 23:22:16 +03:00
Merge pull request #1504 from Links2004/master
rename cbuf getSize to available, and add size function
This commit is contained in:
commit
aeb9597ccf
@ -643,7 +643,7 @@ int HardwareSerial::available(void) {
|
|||||||
|
|
||||||
if (_uart != NULL && _uart->rxEnabled) {
|
if (_uart != NULL && _uart->rxEnabled) {
|
||||||
InterruptLock il;
|
InterruptLock il;
|
||||||
result = static_cast<int>(_rx_buffer->getSize());
|
result = static_cast<int>(_rx_buffer->available());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
@ -696,7 +696,7 @@ void HardwareSerial::flush() {
|
|||||||
while(true) {
|
while(true) {
|
||||||
{
|
{
|
||||||
InterruptLock il;
|
InterruptLock il;
|
||||||
if(_tx_buffer->getSize() == 0 &&
|
if(_tx_buffer->available() == 0 &&
|
||||||
UART_GET_TX_FIFO_ROOM(uart_nr) >= UART_TX_FIFO_SIZE) {
|
UART_GET_TX_FIFO_ROOM(uart_nr) >= UART_TX_FIFO_SIZE) {
|
||||||
break;
|
break;
|
||||||
} else if(il.savedInterruptLevel() > 0) {
|
} else if(il.savedInterruptLevel() > 0) {
|
||||||
@ -750,7 +750,7 @@ void ICACHE_RAM_ATTR HardwareSerial::_rx_complete_irq(char c) {
|
|||||||
|
|
||||||
void ICACHE_RAM_ATTR HardwareSerial::_tx_empty_irq(void) {
|
void ICACHE_RAM_ATTR HardwareSerial::_tx_empty_irq(void) {
|
||||||
const int uart_nr = _uart->uart_nr;
|
const int uart_nr = _uart->uart_nr;
|
||||||
size_t queued = _tx_buffer->getSize();
|
size_t queued = _tx_buffer->available();
|
||||||
if(!queued) {
|
if(!queued) {
|
||||||
UART_DISARM_TX_INTERRUPT(uart_nr);
|
UART_DISARM_TX_INTERRUPT(uart_nr);
|
||||||
return;
|
return;
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "c_types.h"
|
#include "c_types.h"
|
||||||
|
|
||||||
cbuf::cbuf(size_t size) :
|
cbuf::cbuf(size_t size) :
|
||||||
_size(size), _buf(new char[size]), _bufend(_buf + size), _begin(_buf), _end(_begin) {
|
next(NULL), _size(size), _buf(new char[size]), _bufend(_buf + size), _begin(_buf), _end(_begin) {
|
||||||
}
|
}
|
||||||
|
|
||||||
cbuf::~cbuf() {
|
cbuf::~cbuf() {
|
||||||
@ -35,11 +35,11 @@ size_t cbuf::resizeAdd(size_t addSize) {
|
|||||||
|
|
||||||
size_t cbuf::resize(size_t newSize) {
|
size_t cbuf::resize(size_t newSize) {
|
||||||
|
|
||||||
size_t available = getSize();
|
size_t bytes_available = available();
|
||||||
|
|
||||||
// not lose any data
|
// not lose any data
|
||||||
// if data can be lost use remove or flush before resize
|
// if data can be lost use remove or flush before resize
|
||||||
if((newSize < available) || (newSize == _size)) {
|
if((newSize < bytes_available) || (newSize == _size)) {
|
||||||
return _size;
|
return _size;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,12 +51,12 @@ size_t cbuf::resize(size_t newSize) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(_buf) {
|
if(_buf) {
|
||||||
read(newbuf, available);
|
read(newbuf, bytes_available);
|
||||||
memset((newbuf + available), 0x00, (newSize - available));
|
memset((newbuf + bytes_available), 0x00, (newSize - bytes_available));
|
||||||
}
|
}
|
||||||
|
|
||||||
_begin = newbuf;
|
_begin = newbuf;
|
||||||
_end = newbuf + available;
|
_end = newbuf + bytes_available;
|
||||||
_bufend = newbuf + newSize;
|
_bufend = newbuf + newSize;
|
||||||
_size = newSize;
|
_size = newSize;
|
||||||
|
|
||||||
@ -66,13 +66,17 @@ size_t cbuf::resize(size_t newSize) {
|
|||||||
return _size;
|
return _size;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t ICACHE_RAM_ATTR cbuf::getSize() const {
|
size_t ICACHE_RAM_ATTR cbuf::available() const {
|
||||||
if(_end >= _begin) {
|
if(_end >= _begin) {
|
||||||
return _end - _begin;
|
return _end - _begin;
|
||||||
}
|
}
|
||||||
return _size - (_begin - _end);
|
return _size - (_begin - _end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t cbuf::size() {
|
||||||
|
return _size;
|
||||||
|
}
|
||||||
|
|
||||||
size_t cbuf::room() const {
|
size_t cbuf::room() const {
|
||||||
if(_end >= _begin) {
|
if(_end >= _begin) {
|
||||||
return _size - (_end - _begin) - 1;
|
return _size - (_end - _begin) - 1;
|
||||||
@ -88,7 +92,7 @@ int cbuf::peek() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t cbuf::peek(char *dst, size_t size) {
|
size_t cbuf::peek(char *dst, size_t size) {
|
||||||
size_t bytes_available = getSize();
|
size_t bytes_available = available();
|
||||||
size_t size_to_read = (size < bytes_available) ? size : bytes_available;
|
size_t size_to_read = (size < bytes_available) ? size : bytes_available;
|
||||||
size_t size_read = size_to_read;
|
size_t size_read = size_to_read;
|
||||||
char * begin = _begin;
|
char * begin = _begin;
|
||||||
@ -113,7 +117,7 @@ int ICACHE_RAM_ATTR cbuf::read() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t cbuf::read(char* dst, size_t size) {
|
size_t cbuf::read(char* dst, size_t size) {
|
||||||
size_t bytes_available = getSize();
|
size_t bytes_available = available();
|
||||||
size_t size_to_read = (size < bytes_available) ? size : bytes_available;
|
size_t size_to_read = (size < bytes_available) ? size : bytes_available;
|
||||||
size_t size_read = size_to_read;
|
size_t size_read = size_to_read;
|
||||||
if(_end < _begin && size_to_read > (size_t) (_bufend - _begin)) {
|
if(_end < _begin && size_to_read > (size_t) (_bufend - _begin)) {
|
||||||
@ -159,7 +163,7 @@ void cbuf::flush() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t cbuf::remove(size_t size) {
|
size_t cbuf::remove(size_t size) {
|
||||||
size_t bytes_available = getSize();
|
size_t bytes_available = available();
|
||||||
if(size >= bytes_available) {
|
if(size >= bytes_available) {
|
||||||
flush();
|
flush();
|
||||||
return 0;
|
return 0;
|
||||||
@ -171,5 +175,5 @@ size_t cbuf::remove(size_t size) {
|
|||||||
size_to_remove -= top_size;
|
size_to_remove -= top_size;
|
||||||
}
|
}
|
||||||
_begin = wrap_if_bufend(_begin + size_to_remove);
|
_begin = wrap_if_bufend(_begin + size_to_remove);
|
||||||
return getSize();
|
return available();
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,8 @@ class cbuf {
|
|||||||
|
|
||||||
size_t resizeAdd(size_t addSize);
|
size_t resizeAdd(size_t addSize);
|
||||||
size_t resize(size_t newSize);
|
size_t resize(size_t newSize);
|
||||||
size_t getSize() const;
|
size_t available() const;
|
||||||
|
size_t size();
|
||||||
|
|
||||||
size_t room() const;
|
size_t room() const;
|
||||||
|
|
||||||
@ -56,6 +57,8 @@ class cbuf {
|
|||||||
void flush();
|
void flush();
|
||||||
size_t remove(size_t size);
|
size_t remove(size_t size);
|
||||||
|
|
||||||
|
cbuf *next;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline char* wrap_if_bufend(char* ptr) const {
|
inline char* wrap_if_bufend(char* ptr) const {
|
||||||
return (ptr == _bufend) ? _buf : ptr;
|
return (ptr == _bufend) ? _buf : ptr;
|
||||||
@ -66,6 +69,7 @@ class cbuf {
|
|||||||
const char* _bufend;
|
const char* _bufend;
|
||||||
char* _begin;
|
char* _begin;
|
||||||
char* _end;
|
char* _end;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif//__cbuf_h
|
#endif//__cbuf_h
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
|
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
|
||||||
|
|
||||||
name=ESP8266 Modules
|
name=ESP8266 Modules
|
||||||
version=2.0.0
|
version=2.1.0
|
||||||
|
|
||||||
runtime.tools.xtensa-lx106-elf-gcc.path={runtime.platform.path}/tools/xtensa-lx106-elf
|
runtime.tools.xtensa-lx106-elf-gcc.path={runtime.platform.path}/tools/xtensa-lx106-elf
|
||||||
runtime.tools.esptool.path={runtime.platform.path}/tools/esptool
|
runtime.tools.esptool.path={runtime.platform.path}/tools/esptool
|
||||||
|
Loading…
x
Reference in New Issue
Block a user