25#ifndef BufferedPrint_h
26#define BufferedPrint_h
69 char *str = buf +
sizeof(buf);
79 return write(str, buf +
sizeof(buf) - str);
86 size_t printField(
const __FlashStringHelper *fsh,
char term)
90 PGM_P
p =
reinterpret_cast<PGM_P
>(fsh);
92 while ((c = pgm_read_byte(
p++)))
103 char *str = buf +
sizeof(buf);
109 rtn +=
write(str, buf +
sizeof(buf) - str);
113 return printField(
reinterpret_cast<const char *
>(fsh), term);
123 size_t rtn =
write(str, strlen(str));
127 char *ptr = buf +
sizeof(buf);
133 rtn +=
write(ptr, buf +
sizeof(buf) - ptr);
146 char *str = buf +
sizeof(buf);
156 return write(str, buf +
sizeof(buf) - str);
166 return printField(
static_cast<double>(f), term, prec);
173 template <
typename Type>
size_t printField(Type n,
char term)
175 const uint8_t DIM =
sizeof(Type) <= 2 ? 8 : 13;
177 char *str = buf +
sizeof(buf);
187 Type
p = n < 0 ? -n : n;
188 if (
sizeof(Type) <= 2)
200 return write(str, buf +
sizeof(buf) - str);
210 return write(buf, 2);
217 size_t print(
double d, uint8_t prec = 2)
235 size_t print(
float f, uint8_t prec = 2)
237 return printField(
static_cast<double>(f), 0, prec);
246 return printField(
static_cast<double>(f),
'\n', prec);
252 template <
typename Type>
size_t print(Type v)
260 template <
typename Type>
size_t println(Type v)
285 size_t write(
const void *src,
size_t n)
293 if (n >=
sizeof(
m_buf))
295 return n ==
m_wr->write((
const uint8_t *)src, n) ? n : 0;
307 uint8_t
m_buf[BUF_DIM < 24 ? 24 : BUF_DIM];
char * fmtDouble(char *str, double num, uint8_t prec, bool altFmt)
Definition FmtNumber.cpp:262
static const float p[]
Definition FmtNumber.cpp:461
char * fmtBase10(char *str, uint16_t n)
Definition FmtNumber.cpp:163
Fast buffered print template.
Definition BufferedPrint.h:37
WriteClass * m_wr
Definition BufferedPrint.h:304
size_t println(Type v)
Definition BufferedPrint.h:260
void begin(WriteClass *wr)
Definition BufferedPrint.h:51
uint8_t m_in
Definition BufferedPrint.h:305
bool sync()
Definition BufferedPrint.h:268
BufferedPrint()
Definition BufferedPrint.h:39
void flush()
Definition BufferedPrint.h:57
size_t printField(double d, char term, uint8_t prec=2)
Definition BufferedPrint.h:143
size_t printField(char c, char term)
Definition BufferedPrint.h:66
size_t println()
Definition BufferedPrint.h:205
size_t printField(float f, char term, uint8_t prec=2)
Definition BufferedPrint.h:164
size_t print(double d, uint8_t prec=2)
Definition BufferedPrint.h:217
uint8_t m_buf[BUF_DIM< 24 ? 24 :BUF_DIM]
Definition BufferedPrint.h:307
size_t println(double d, uint8_t prec=2)
Definition BufferedPrint.h:226
size_t write(const void *src, size_t n)
Definition BufferedPrint.h:285
size_t printField(const __FlashStringHelper *fsh, char term)
Definition BufferedPrint.h:86
size_t printField(const char *str, char term)
Definition BufferedPrint.h:121
size_t print(Type v)
Definition BufferedPrint.h:252
size_t print(float f, uint8_t prec=2)
Definition BufferedPrint.h:235
size_t printField(Type n, char term)
Definition BufferedPrint.h:173
BufferedPrint(WriteClass *wr)
Definition BufferedPrint.h:45
size_t println(float f, uint8_t prec)
Definition BufferedPrint.h:244