33 size_t Print::write(
const uint8_t *buffer,
size_t size)
37 n += write(*buffer++);
42 size_t Print::print(
const __FlashStringHelper *ifsh)
44 const char *p = (
const char *)ifsh;
47 unsigned char c = pgm_read_byte(p++);
54 size_t Print::print(
const String &s)
57 for (uint16_t i = 0; i < s.length(); i++) {
63 size_t Print::print(
const char str[])
68 size_t Print::print(
char c)
73 size_t Print::print(
unsigned char b,
int base)
75 return print((
unsigned long) b, base);
78 size_t Print::print(
int n,
int base)
80 return print((
long) n, base);
83 size_t Print::print(
unsigned int n,
int base)
85 return print((
unsigned long) n, base);
88 size_t Print::print(
long n,
int base)
92 }
else if (base == 10) {
96 return printNumber(n, 10) + t;
98 return printNumber(n, 10);
100 return printNumber(n, base);
104 size_t Print::print(
unsigned long n,
int base)
106 if (base == 0)
return write(n);
107 else return printNumber(n, base);
110 size_t Print::print(
double n,
int digits)
112 return printFloat(n, digits);
115 size_t Print::println(
const __FlashStringHelper *ifsh)
117 size_t n = print(ifsh);
124 return x.printTo(*
this);
127 size_t Print::println(
void)
129 size_t n = print(
'\r');
134 size_t Print::println(
const String &s)
141 size_t Print::println(
const char c[])
148 size_t Print::println(
char c)
155 size_t Print::println(
unsigned char b,
int base)
157 size_t n = print(b, base);
162 size_t Print::println(
int num,
int base)
164 size_t n = print(num, base);
169 size_t Print::println(
unsigned int num,
int base)
171 size_t n = print(num, base);
176 size_t Print::println(
long num,
int base)
178 size_t n = print(num, base);
183 size_t Print::println(
unsigned long num,
int base)
185 size_t n = print(num, base);
190 size_t Print::println(
double num,
int digits)
192 size_t n = print(num, digits);
206 size_t Print::printNumber(
unsigned long n, uint8_t base) {
207 char buf[8 *
sizeof(long) + 1];
208 char *str = &buf[
sizeof(buf) - 1];
213 if (base < 2) base = 10;
218 char c = m - base * n;
219 *--str = c < 10 ? c +
'0' : c +
'A' - 10;
225 size_t Print::printFloat(
double number, uint8_t digits)
237 double rounding = 0.5;
238 for (uint8_t i=0; i<digits; ++i)
244 unsigned long int_part = (
unsigned long)number;
245 double remainder = number - (double)int_part;
246 n += print(int_part);
257 int toPrint = int(remainder);
259 remainder -= toPrint;