LSH-Core
Deterministic firmware core for Controllino-based Labo Smart Home nodes
 
Loading...
Searching...
No Matches
va_print.hpp
Go to the documentation of this file.
1
21#ifndef LSH_CORE_UTIL_DEBUG_VA_PRINT_HPP
22#define LSH_CORE_UTIL_DEBUG_VA_PRINT_HPP
23
24#include <stdint.h>
25
27
28namespace VaPrint
29{
30extern uint8_t base;
31extern uint8_t prec;
32
33void setBase(uint8_t baseToSet); // Set the numeric base used for integral debug prints.
34void setPrec(uint8_t precisionToSet); // Set the decimal precision used for floating-point debug prints.
35void print(const String &text); // Print an Arduino `String` without appending a newline.
36void print(char character); // Print a single character without appending a newline.
37void print(char *text); // Print a mutable C string without appending a newline.
38void print(const char *text); // Print an immutable C string without appending a newline.
39void print(const __FlashStringHelper *text); // Print a PROGMEM string without appending a newline.
40void print(float value); // Print a `float` without appending a newline.
41void print(double value); // Print a `double` without appending a newline.
42void println(); // Print only a newline.
43
50template <typename T> static inline void print(T value)
51{
52 CONFIG_DEBUG_SERIAL->print(value, base);
53}
54
58template <typename T, typename... Rest> static inline void print(T value, Rest... rest)
59{
60 print(value);
61 print(rest...);
62}
63
67template <typename T, typename... Rest> __attribute__((always_inline)) static inline void println(T value, Rest... rest)
68{
69 print(value);
70 println(rest...);
71}
72
73} // namespace VaPrint
74
75#endif // LSH_CORE_UTIL_DEBUG_VA_PRINT_HPP
Internal bridge that imports static profile resources into the library's scope.
uint8_t prec
Decimal precision passed to HardwareSerial::print() when printing floating-point debug values.
Definition va_print.cpp:30
void setPrec(uint8_t precisionToSet)
Set the decimal precision used for floating-point debug output.
Definition va_print.cpp:47
void print(const String &text)
Print an Arduino String without appending a newline.
Definition va_print.cpp:57
uint8_t base
Numeric base passed to HardwareSerial::print() when printing integral debug values.
Definition va_print.cpp:28
void setBase(uint8_t baseToSet)
Set the numeric base used for integral debug output.
Definition va_print.cpp:37
void println()
Print only a newline.
Definition va_print.cpp:125