3636size_t Print::write (const uint8_t *buffer, size_t size)
3737{
3838 size_t n = 0 ;
39- while (size--) {
40- if (write (*buffer++)) n++;
41- else break ;
39+
40+ while (size--)
41+ {
42+ if (write (*buffer++))
43+ n++;
44+ else
45+ break ;
4246 }
47+
4348 return n;
4449}
4550
@@ -80,46 +85,64 @@ size_t Print::print(unsigned int n, int base)
8085
8186size_t Print::print (long n, int base)
8287{
83- if (base == 0 ) {
88+ if (base == 0 )
89+ {
8490 return write (n);
85- } else if (base == 10 ) {
86- if (n < 0 ) {
91+ }
92+ else if (base == 10 )
93+ {
94+ if (n < 0 )
95+ {
8796 int t = print (' -' );
8897 n = -n;
8998 return printNumber (n, 10 ) + t;
9099 }
100+
91101 return printNumber (n, 10 );
92- } else {
102+ }
103+ else
104+ {
93105 return printNumber (n, base);
94106 }
95107}
96108
97109size_t Print::print (unsigned long n, int base)
98110{
99- if (base == 0 ) return write (n);
100- else return printNumber (n, base);
111+ if (base == 0 )
112+ return write (n);
113+ else
114+ return printNumber (n, base);
101115}
102116
103117size_t Print::print (long long n, int base)
104118{
105- if (base == 0 ) {
119+ if (base == 0 )
120+ {
106121 return write (n);
107- } else if (base == 10 ) {
108- if (n < 0 ) {
122+ }
123+ else if (base == 10 )
124+ {
125+ if (n < 0 )
126+ {
109127 int t = print (' -' );
110128 n = -n;
111129 return printULLNumber (n, 10 ) + t;
112130 }
131+
113132 return printULLNumber (n, 10 );
114- } else {
133+ }
134+ else
135+ {
115136 return printULLNumber (n, base);
116137 }
117138}
118139
119140size_t Print::print (unsigned long long n, int base)
120141{
121- if (base == 0 ) return write (n);
122- else return printULLNumber (n, base);
142+ if (base == 0 )
143+ return write (n);
144+ else
145+ return printULLNumber (n, base);
123146}
124147
125148size_t Print::print (double n, int digits)
@@ -253,38 +276,40 @@ size_t Print::printNumber(unsigned long n, uint8_t base)
253276 *str = ' \0 ' ;
254277
255278 // prevent crash if called with base == 1
256- if (base < 2 ) base = 10 ;
279+ if (base < 2 )
280+ base = 10 ;
257281
258- do {
282+ do
283+ {
259284 char c = n % base;
260285 n /= base;
261286
262287 *--str = c < 10 ? c + ' 0' : c + ' A' - 10 ;
263- } while (n);
288+ } while (n);
264289
265290 return write (str);
266291}
267292
268293// REFERENCE IMPLEMENTATION FOR ULL
269294// size_t Print::printULLNumber(unsigned long long n, uint8_t base)
270295// {
271- // // if limited to base 10 and 16 the bufsize can be smaller
272- // char buf[65];
273- // char *str = &buf[64];
296+ // // if limited to base 10 and 16 the bufsize can be smaller
297+ // char buf[65];
298+ // char *str = &buf[64];
274299
275- // *str = '\0';
300+ // *str = '\0';
276301
277- // // prevent crash if called with base == 1
278- // if (base < 2) base = 10;
302+ // // prevent crash if called with base == 1
303+ // if (base < 2) base = 10;
279304
280- // do {
281- // unsigned long long t = n / base;
282- // char c = n - t * base; // faster than c = n%base;
283- // n = t;
284- // *--str = c < 10 ? c + '0' : c + 'A' - 10;
285- // } while(n);
305+ // do {
306+ // unsigned long long t = n / base;
307+ // char c = n - t * base; // faster than c = n%base;
308+ // n = t;
309+ // *--str = c < 10 ? c + '0' : c + 'A' - 10;
310+ // } while(n);
286311
287- // return write(str);
312+ // return write(str);
288313// }
289314
290315// FAST IMPLEMENTATION FOR ULL
@@ -296,11 +321,13 @@ size_t Print::printULLNumber(unsigned long long n64, uint8_t base)
296321 uint8_t innerLoops = 0 ;
297322
298323 // prevent crash if called with base == 1
299- if (base < 2 ) base = 10 ;
324+ if (base < 2 )
325+ base = 10 ;
300326
301327 // process chunks that fit in "16 bit math".
302328 uint16_t top = 0xFFFF / base;
303329 uint16_t th16 = 1 ;
330+
304331 while (th16 < top)
305332 {
306333 th16 *= base;
@@ -311,31 +338,33 @@ size_t Print::printULLNumber(unsigned long long n64, uint8_t base)
311338 {
312339 // 64 bit math part
313340 uint64_t q = n64 / th16;
314- uint16_t r = n64 - q* th16;
341+ uint16_t r = n64 - q * th16;
315342 n64 = q;
316343
317344 // 16 bit math loop to do remainder. (note buffer is filled reverse)
318- for (uint8_t j= 0 ; j < innerLoops; j++)
345+ for (uint8_t j = 0 ; j < innerLoops; j++)
319346 {
320- uint16_t qq = r/ base;
321- buf[i++] = r - qq* base;
347+ uint16_t qq = r / base;
348+ buf[i++] = r - qq * base;
322349 r = qq;
323350 }
324351 }
325352
326353 uint16_t n16 = n64;
354+
327355 while (n16 > 0 )
328356 {
329- uint16_t qq = n16/ base;
330- buf[i++] = n16 - qq* base;
357+ uint16_t qq = n16 / base;
358+ buf[i++] = n16 - qq * base;
331359 n16 = qq;
332360 }
333361
334362 size_t bytes = i;
363+
335364 for (; i > 0 ; i--)
336365 write ((char ) (buf[i - 1 ] < 10 ?
337- ' 0' + buf[i - 1 ] :
338- ' A' + buf[i - 1 ] - 10 ));
366+ ' 0' + buf[i - 1 ] :
367+ ' A' + buf[i - 1 ] - 10 ));
339368
340369 return bytes;
341370}
@@ -347,21 +376,29 @@ size_t Print::printFloat(double number, int digits)
347376
348377 size_t n = 0 ;
349378
350- if (isnan (number)) return print (" nan" );
351- if (isinf (number)) return print (" inf" );
352- if (number > 4294967040.0 ) return print (" ovf" ); // constant determined empirically
353- if (number <-4294967040.0 ) return print (" ovf" ); // constant determined empirically
379+ if (isnan (number))
380+ return print (" nan" );
381+
382+ if (isinf (number))
383+ return print (" inf" );
384+
385+ if (number > 4294967040.0 )
386+ return print (" ovf" ); // constant determined empirically
387+
388+ if (number < -4294967040.0 )
389+ return print (" ovf" ); // constant determined empirically
354390
355391 // Handle negative numbers
356392 if (number < 0.0 )
357393 {
358- n += print (' -' );
359- number = -number;
394+ n += print (' -' );
395+ number = -number;
360396 }
361397
362398 // Round correctly so that print(1.999, 2) prints as "2.00"
363399 double rounding = 0.5 ;
364- for (uint8_t i=0 ; i<digits; ++i)
400+
401+ for (uint8_t i = 0 ; i < digits; ++i)
365402 rounding /= 10.0 ;
366403
367404 number += rounding;
@@ -372,7 +409,8 @@ size_t Print::printFloat(double number, int digits)
372409 n += print (int_part);
373410
374411 // Print the decimal point, but only if there are digits beyond
375- if (digits > 0 ) {
412+ if (digits > 0 )
413+ {
376414 n += print (" ." );
377415 }
378416
@@ -390,31 +428,39 @@ size_t Print::printFloat(double number, int digits)
390428
391429size_t Print::printBuffer (uint8_t const buffer[], int len, char delim, int byteline)
392430{
393- if (buffer == NULL || len == 0 ) return 0 ;
431+ if (buffer == NULL || len == 0 )
432+ return 0 ;
394433
395- for (int i= 0 ; i< len; i++)
434+ for (int i = 0 ; i < len; i++)
396435 {
397- if ( i != 0 ) print (delim);
398- if ( byteline && (i%byteline == 0 ) ) println ();
436+ if ( i != 0 )
437+ print (delim);
438+
439+ if ( byteline && (i % byteline == 0 ) )
440+ println ();
399441
400442 this ->printf (" %02X" , buffer[i]);
401443 }
402444
403- return (len* 3 - 1 );
445+ return (len * 3 - 1 );
404446}
405447
406448size_t Print::printBufferReverse (uint8_t const buffer[], int len, char delim, int byteline)
407449{
408- if (buffer == NULL || len == 0 ) return 0 ;
450+ if (buffer == NULL || len == 0 )
451+ return 0 ;
409452
410- for (int i= 0 ; i< len; i++)
453+ for (int i = 0 ; i < len; i++)
411454 {
412- if (i != 0 ) print (delim);
413- if ( byteline && (i%byteline == 0 ) ) println ();
455+ if (i != 0 )
456+ print (delim);
457+
458+ if ( byteline && (i % byteline == 0 ) )
459+ println ();
414460
415- this ->printf (" %02X" , buffer[len- 1 - i]);
461+ this ->printf (" %02X" , buffer[len - 1 - i]);
416462 }
417463
418- return (len* 3 - 1 );
464+ return (len * 3 - 1 );
419465}
420466
0 commit comments