1 #ifndef BufferedOutput_h
2 #define BufferedOutput_h
37 #include <Printable.h>
43 #define createBufferedOutput(name, size, ...) uint8_t name ## _OUTPUT_BUFFER[(size)+4]; BufferedOutput name(sizeof(name ## _OUTPUT_BUFFER),name ## _OUTPUT_BUFFER, __VA_ARGS__ );
114 void connect(Stream& _stream,
const uint32_t baudRate=0);
134 virtual size_t write(
const uint8_t *buf,
size_t size);
198 int internalAvailableForWrite();
199 int internalStreamAvailableForWrite();
200 void writeDropMark();
201 size_t bytesToBeSent();
204 bool allOrNothingSetting;
205 uint8_t defaultBuffer[8];
206 unsigned long us_perByte;
208 HardwareSerial* serialPtr;
210 unsigned long sendTimerStart;
214 bool dropMarkWritten;
215 uint8_t lastCharWritten;
216 volatile bool inNextByteOut;
223 void rb_init(uint8_t* _buf,
size_t _size);
225 bool rb_clearSpace(
size_t len);
227 inline int rb_available() {
228 return rb_buffer_count;
232 size_t rb_write(uint8_t b);
233 size_t rb_write(
const uint8_t *buffer,
size_t size);
234 int rb_availableForWrite();
236 bool rb_lastBufferedByteProtect();
237 void rb_dump(Stream* streamPtr);
241 uint16_t rb_buffer_head;
242 uint16_t rb_buffer_tail;
243 uint16_t rb_buffer_count;
244 uint16_t rb_wrapBufferIdx(uint16_t idx);
245 void rb_internalWrite(uint8_t b);
To create a BufferedOutput use the macro createBufferedOutput see the detailed description.
size_t terminateLastLine()
size_t terminateLastLine()
void protect()
void protect()
virtual int availableForWrite()
int availableForWrite()
size_t getSize()
size_t getSize();
void connect(Stream &_stream, const uint32_t baudRate=0)
void connect(Stream& _stream, const uint32_t baudRate); // the stream to write to and how fast to wri...
int clearSpace(size_t len)
int clearSpace(size_t len);
BufferedOutput(size_t _bufferSize, uint8_t *_buf, BufferedOutputMode mode, bool allOrNothing=true)
use createBufferedOutput(name, size, mode); instead BufferedOutput(size_t _bufferSize,...
virtual void flush()
void flush()
virtual size_t write(const uint8_t *buf, size_t size)
void connect(HardwareSerial &_serial)
void connect(HardwareSerial& _serial); // the output to write to, can also read from
virtual size_t write(uint8_t)
write(uint8_t b)
void nextByteOut()
void nextByteOut()