26 #define INITIAL_PRINTF_BUFFSIZE 128
68 virtual size_t write(uint8_t c) = 0;
79 return write(
reinterpret_cast<const uint8_t*
>(
str), strlen(
str));
87 virtual size_t write(
const uint8_t* buffer,
size_t size);
94 size_t write(
const char* buffer,
size_t size)
96 return write(
reinterpret_cast<const uint8_t*
>(buffer), size);
124 size_t print(
unsigned long num, uint8_t base =
DEC)
129 return printNumber(num, base);
133 template <
typename... Args>
size_t print(
unsigned long num, Args... args)
135 return printNumber(num, args...);
138 template <
typename... Args>
size_t print(
const unsigned long long& num, Args... args)
140 return printNumber(num, args...);
148 return printNumber(num, base);
152 template <
typename... Args>
size_t print(
long num, Args... args)
154 return printNumber(num, args...);
157 template <
typename... Args>
size_t print(
const long long& num, Args... args)
159 return printNumber(num, args...);
162 template <
typename... Args>
size_t print(
unsigned int num, Args... args)
164 return print((
unsigned long)num, args...);
167 template <
typename... Args>
size_t print(
unsigned char num, Args... args)
169 return print((
unsigned long)num, args...);
172 template <
typename... Args>
size_t print(
int num, Args... args)
174 return printNumber((
long)num, args...);
183 size_t print(
double num,
int digits = 2)
185 return printFloat(num, digits);
195 template <
typename C>
static uint8_t
test(decltype(&C::printTo));
196 template <
typename C>
static uint32_t
test(...);
206 template <
typename T>
typename std::enable_if<has_printTo<T>::value,
size_t>::type
print(
const T& obj)
208 return obj.printTo(*
this);
223 template <
typename E>
224 typename std::enable_if<std::is_enum<E>::value && !std::is_convertible<E, int>::value,
size_t>::type
print(E value)
235 return write(
"\r\n", 2);
241 template <
typename... Args>
size_t println(
const Args&... args)
256 size_t printNumber(
unsigned long num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
257 size_t printNumber(const
unsigned long long& num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
258 size_t printNumber(
long num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
259 size_t printNumber(const
long long& num, uint8_t base =
DEC, uint8_t width = 0,
char pad = '0');
260 size_t printFloat(
double num, uint8_t digits);
275 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:199
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:224
size_t print(double num, int digits=2)
Print a floating-point number to output stream.
Definition: Print.h:183
Print & operator=(Print &&)=delete
size_t print(long num, Args... args)
Definition: Print.h:152
size_t print(const String &s)
Prints a String to output stream.
Definition: Print.h:215
size_t print(unsigned long num, Args... args)
Definition: Print.h:133
size_t print(long num, uint8_t base=DEC)
Definition: Print.h:143
Print(const Print &)=delete
void setWriteError(int err=1)
Definition: Print.h:263
std::enable_if< has_printTo< T >::value, size_t >::type print(const T &obj)
Prints a Printable object to output stream.
Definition: Print.h:206
size_t print(const char str[])
Prints a c-string to output stream.
Definition: Print.h:112
size_t print(unsigned int num, Args... args)
Definition: Print.h:162
size_t write(const char *str)
Writes a c-string to output stream.
Definition: Print.h:74
size_t print(unsigned long num, uint8_t base=DEC)
Definition: Print.h:124
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:157
size_t print(int num, Args... args)
Definition: Print.h:172
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:52
Print & operator=(const Print &)=delete
size_t println()
Prints a newline to output stream.
Definition: Print.h:233
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:167
size_t write(const char *buffer, size_t size)
Writes characters from a buffer to output stream.
Definition: Print.h:94
size_t print(const unsigned long long &num, Args... args)
Definition: Print.h:138
void clearWriteError()
Clears the last write error.
Definition: Print.h:59
size_t print(char c)
Prints a single character to output stream.
Definition: Print.h:103
size_t println(const Args &... args)
Print value plus newline to output stream.
Definition: Print.h:241
The String class.
Definition: WString.h:133
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:609
size_t length(void) const
Obtain the String length in characters, excluding NUL terminator.
Definition: WString.h:238
EndLineCode
Definition: Print.h:285
Print & operator<<(Print &p, const char value[])
Definition: Print.h:269
@ endl
Definition: Print.h:285
Definition: testrunner.h:74
#define str(s)
Definition: testrunner.h:124