26 #define INITIAL_PRINTF_BUFFSIZE 128
62 virtual size_t write(uint8_t c) = 0;
73 return write(
reinterpret_cast<const uint8_t*
>(
str), strlen(
str));
81 virtual size_t write(
const uint8_t* buffer,
size_t size);
88 size_t write(
const char* buffer,
size_t size)
90 return write((
const uint8_t*)buffer, size);
118 size_t print(
unsigned long num, uint8_t base =
DEC)
123 return printNumber(num, base);
127 template <
typename... Args>
size_t print(
unsigned long num, Args... args)
129 return printNumber(num, args...);
132 template <
typename... Args>
size_t print(
const unsigned long long& num, Args... args)
134 return printNumber(num, args...);
142 return printNumber(num, base);
146 template <
typename... Args>
size_t print(
long num, Args... args)
148 return printNumber(num, args...);
151 template <
typename... Args>
size_t print(
const long long& num, Args... args)
153 return printNumber(num, args...);
156 template <
typename... Args>
size_t print(
unsigned int num, Args... args)
158 return print((
unsigned long)num, args...);
161 template <
typename... Args>
size_t print(
unsigned char num, Args... args)
163 return print((
unsigned long)num, args...);
166 template <
typename... Args>
size_t print(
int num, Args... args)
168 return printNumber((
long)num, args...);
177 size_t print(
double num,
int digits = 2)
179 return printFloat(num, digits);
189 template <
typename C>
static uint8_t
test(decltype(&C::printTo));
190 template <
typename C>
static uint32_t
test(...);
200 template <
typename T>
typename std::enable_if<has_printTo<T>::value,
size_t>::type
print(
const T& obj)
202 return obj.printTo(*
this);
217 template <
typename E>
218 typename std::enable_if<std::is_enum<E>::value && !std::is_convertible<E, int>::value,
size_t>::type
print(E value)
229 return write(
"\r\n", 2);
235 template <
typename... Args>
size_t println(
const Args&... args)
246 size_t printf(
const char* fmt, ...) __attribute__((format(
printf, 2, 3)));
250 size_t printNumber(
unsigned long num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
251 size_t printNumber(const
unsigned long long& num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
252 size_t printNumber(
long num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
253 size_t printNumber(const
long long& num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
254 size_t printFloat(
double num, uint8_t digits);
269 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:193
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:218
size_t print(double num, int digits=2)
Print a floating-point number to output stream.
Definition: Print.h:177
size_t print(long num, Args... args)
Definition: Print.h:146
size_t print(const String &s)
Prints a String to output stream.
Definition: Print.h:209
size_t print(unsigned long num, Args... args)
Definition: Print.h:127
size_t print(long num, uint8_t base=DEC)
Definition: Print.h:137
void setWriteError(int err=1)
Definition: Print.h:257
std::enable_if< has_printTo< T >::value, size_t >::type print(const T &obj)
Prints a Printable object to output stream.
Definition: Print.h:200
size_t print(const char str[])
Prints a c-string to output stream.
Definition: Print.h:106
size_t print(unsigned int num, Args... args)
Definition: Print.h:156
size_t write(const char *str)
Writes a c-string to output stream.
Definition: Print.h:68
size_t print(unsigned long num, uint8_t base=DEC)
Definition: Print.h:118
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:151
size_t print(int num, Args... args)
Definition: Print.h:166
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:46
size_t println()
Prints a newline to output stream.
Definition: Print.h:227
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:161
virtual ~Print()
Definition: Print.h:39
size_t write(const char *buffer, size_t size)
Writes characters from a buffer to output stream.
Definition: Print.h:88
size_t print(const unsigned long long &num, Args... args)
Definition: Print.h:132
void clearWriteError()
Clears the last write error.
Definition: Print.h:53
size_t print(char c)
Prints a single character to output stream.
Definition: Print.h:97
size_t println(const Args &... args)
Print value plus newline to output stream.
Definition: Print.h:235
The String class.
Definition: WString.h:137
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:616
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:243
EndLineCode
Definition: Print.h:279
Print & operator<<(Print &p, const char value[])
Definition: Print.h:263
@ endl
Definition: Print.h:279
Definition: testrunner.h:74
#define str(s)
Definition: testrunner.h:124