26 #define INITIAL_PRINTF_BUFFSIZE 128
72 virtual size_t write(uint8_t c) = 0;
83 return write(
reinterpret_cast<const uint8_t*
>(
str), strlen(
str));
91 virtual size_t write(
const uint8_t* buffer,
size_t size);
98 size_t write(
const char* buffer,
size_t size)
100 return write(
reinterpret_cast<const uint8_t*
>(buffer), size);
128 size_t print(
unsigned long num, uint8_t base =
DEC)
133 return printNumber(num, base);
137 template <
typename... Args>
size_t print(
unsigned long num, Args... args)
139 return printNumber(num, args...);
142 template <
typename... Args>
size_t print(
const unsigned long long& num, Args... args)
144 return printNumber(num, args...);
152 return printNumber(num, base);
156 template <
typename... Args>
size_t print(
long num, Args... args)
158 return printNumber(num, args...);
161 template <
typename... Args>
size_t print(
const long long& num, Args... args)
163 return printNumber(num, args...);
166 template <
typename... Args>
size_t print(
unsigned int num, Args... args)
168 return print((
unsigned long)num, args...);
171 template <
typename... Args>
size_t print(
unsigned char num, Args... args)
173 return print((
unsigned long)num, args...);
176 template <
typename... Args>
size_t print(
int num, Args... args)
178 return printNumber((
long)num, args...);
187 size_t print(
double num,
int digits = 2)
189 return printFloat(num, digits);
199 template <
typename C>
static uint8_t
test(decltype(&C::printTo));
200 template <
typename C>
static uint32_t
test(...);
210 template <
typename T>
typename std::enable_if<has_printTo<T>::value,
size_t>::type
print(
const T& obj)
212 return obj.printTo(*
this);
227 template <
typename E>
228 typename std::enable_if<std::is_enum<E>::value && !std::is_convertible<E, int>::value,
size_t>::type
print(E value)
239 return write(
"\r\n", 2);
245 template <
typename... Args>
size_t println(
const Args&... args)
256 size_t printf(
const char* fmt, ...) __attribute__((format(
printf, 2, 3)));
260 size_t printNumber(
unsigned long num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
261 size_t printNumber(const
unsigned long long& num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
262 size_t printNumber(
long num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
263 size_t printNumber(const
long long& num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
264 size_t printFloat(
double num, uint8_t digits);
279 template <
typename T>
std::enable_if< std::is_integral< T >::value, String >::type toString(T value)
Definition: BitSet.h:481
#define DEC
Definition: WConstants.h:67
@ value
Definition: Print.h:203
Provides formatted output to stream.
Definition: Print.h:37
std::enable_if< std::is_enum< E >::value &&!std::is_convertible< E, int >::value, size_t >::type print(E value)
enums can be printed as strings provided they have a toString(E) implementation.
Definition: Print.h:228
size_t print(double num, int digits=2)
Print a floating-point number to output stream.
Definition: Print.h:187
Print()
Definition: Print.h:39
Print & operator=(Print &&)=delete
size_t print(long num, Args... args)
Definition: Print.h:156
size_t print(const String &s)
Prints a String to output stream.
Definition: Print.h:219
size_t print(unsigned long num, Args... args)
Definition: Print.h:137
size_t print(long num, uint8_t base=DEC)
Definition: Print.h:147
Print(const Print &)=delete
void setWriteError(int err=1)
Definition: Print.h:267
std::enable_if< has_printTo< T >::value, size_t >::type print(const T &obj)
Prints a Printable object to output stream.
Definition: Print.h:210
size_t print(const char str[])
Prints a c-string to output stream.
Definition: Print.h:116
size_t print(unsigned int num, Args... args)
Definition: Print.h:166
size_t write(const char *str)
Writes a c-string to output stream.
Definition: Print.h:78
size_t print(unsigned long num, uint8_t base=DEC)
Definition: Print.h:128
size_t printf(const char *fmt,...)
Prints a formatted c-string to output stream.
size_t print(const long long &num, Args... args)
Definition: Print.h:161
size_t print(int num, Args... args)
Definition: Print.h:176
virtual size_t write(const uint8_t *buffer, size_t size)
Writes characters from a buffer to output stream.
int getWriteError()
Gets last error.
Definition: Print.h:56
Print & operator=(const Print &)=delete
size_t println()
Prints a newline to output stream.
Definition: Print.h:237
virtual size_t write(uint8_t c)=0
Writes a single character to output stream.
size_t print(unsigned char num, Args... args)
Definition: Print.h:171
virtual ~Print()
Definition: Print.h:46
size_t write(const char *buffer, size_t size)
Writes characters from a buffer to output stream.
Definition: Print.h:98
size_t print(const unsigned long long &num, Args... args)
Definition: Print.h:142
void clearWriteError()
Clears the last write error.
Definition: Print.h:63
size_t print(char c)
Prints a single character to output stream.
Definition: Print.h:107
size_t println(const Args &... args)
Print value plus newline to output stream.
Definition: Print.h:245
The String class.
Definition: WString.h:137
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:617
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:244
EndLineCode
Definition: Print.h:289
Print & operator<<(Print &p, const char value[])
Definition: Print.h:273
@ endl
Definition: Print.h:289
Definition: testrunner.h:74
#define str(s)
Definition: testrunner.h:124