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__ );
112 void connect(Stream& _stream,
const uint32_t baudRate=0);
132 virtual size_t write(
const uint8_t *buf,
size_t size);
196 int internalAvailableForWrite();
197 int internalStreamAvailableForWrite();
198 void writeDropMark();
199 size_t bytesToBeSent();
202 bool allOrNothingSetting;
203 uint8_t defaultBuffer[8];
204 unsigned long us_perByte;
206 HardwareSerial* serialPtr;
208 unsigned long sendTimerStart;
212 bool dropMarkWritten;
213 uint8_t lastCharWritten;
220 void rb_init(uint8_t* _buf,
size_t _size);
222 bool rb_clearSpace(
size_t len);
224 inline int rb_available() {
225 return rb_buffer_count;
229 size_t rb_write(uint8_t b);
230 size_t rb_write(
const uint8_t *buffer,
size_t size);
231 int rb_availableForWrite();
233 bool rb_lastBufferedByteProtect();
234 void rb_dump(Stream* streamPtr);
238 uint16_t rb_buffer_head;
239 uint16_t rb_buffer_tail;
240 uint16_t rb_buffer_count;
241 uint16_t rb_wrapBufferIdx(uint16_t idx);
242 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()