5#if !defined(OSCR_HARDWARE_OUTPUTS_SERIAL_H_)
6# define OSCR_HARDWARE_OUTPUTS_SERIAL_H_
10# if defined(ENABLE_SERIAL_OUTPUT) || defined(ENABLE_UPDATER)
12# include "common/specializations.h"
16 constexpr char const ending =
'\n';
17 constexpr char const ending2 =
'\r';
18 constexpr uint8_t
const commandMax = 32;
19 constexpr uint8_t
const ansiEsc[2] = { 0x1B, 0x5B };
21 extern uint32_t
const baud;
23 extern char command[commandMax];
24 char const * getCommandPointer();
25 uint8_t
const * getCommandMaxPointer();
28 extern void begin(uint32_t b);
35 extern void printLine(
void);
38 extern void flushSync();
40 extern bool echo(
bool toggle);
43 extern bool getCommand();
47 extern int available();
48 extern int availableForWrite();
50 extern size_t write(uint8_t
const byte);
51 extern size_t write(
char const chr);
52 extern size_t write(uint8_t
const * buffer,
size_t size);
53 extern size_t write(
char const * buffer,
size_t size);
55 extern void printLine(
void);
58 OSCR::Util::enable_if_t<!(OSCR::Util::is_number<T>::value),
bool> Enable =
true,
59 OSCR::Util::enable_if_t<!(OSCR::Util::is_printable<T>::value),
bool> NonPrintable =
true>
60 extern void print(T
string);
63 OSCR::Util::enable_if_t<!(OSCR::Util::is_number<T>::value),
bool> Enable =
true,
64 OSCR::Util::enable_if_t<!(OSCR::Util::is_printable<T>::value),
bool> NonPrintable =
true>
65 extern void printLine(T
string);
67 template <
typename Tint,
68 OSCR::Util::enable_if_t<OSCR::Util::is_integer<Tint>::value,
bool> Enable =
true>
69 extern void print(Tint number,
int base = DEC);
71 template <
typename Tint,
72 OSCR::Util::enable_if_t<OSCR::Util::is_integer<Tint>::value,
bool> Enable =
true>
73 extern void printLine(Tint number,
int base = DEC);
75 extern void printLineSync(
void);
78 OSCR::Util::enable_if_t<!(OSCR::Util::is_number<T>::value),
bool> Enable =
true,
79 OSCR::Util::enable_if_t<!(OSCR::Util::is_printable<T>::value),
bool> NonPrintable =
true>
80 extern void printSync(T
string);
83 OSCR::Util::enable_if_t<!(OSCR::Util::is_number<T>::value),
bool> Enable =
true,
84 OSCR::Util::enable_if_t<!(OSCR::Util::is_printable<T>::value),
bool> NonPrintable =
true>
85 extern void printLineSync(T
string);
87 template <
typename Tint,
88 OSCR::Util::enable_if_t<OSCR::Util::is_integer<Tint>::value,
bool> Enable =
true>
89 extern void printSync(Tint number,
int base = DEC);
91 template <
typename Tint,
92 OSCR::Util::enable_if_t<OSCR::Util::is_integer<Tint>::value,
bool> Enable =
true>
93 extern void printLineSync(Tint number,
int base = DEC);
95 template <
bool prfx =
true,
97 OSCR::Util::if_is_any_unsigned_t<T> Enable =
true>
100 template <
bool prfx =
true,
102 OSCR::Util::if_is_any_unsigned_t<T> Enable =
true>
109# if defined(ENABLE_SERIAL_OUTPUT)
113 extern void printLine(
void);
115 template <
typename T,
116 OSCR::Util::enable_if_t<!(OSCR::Util::is_number<T>::value),
bool> Enable,
117 OSCR::Util::enable_if_t<!(OSCR::Util::is_printable<T>::value),
bool> NonPrintable>
118 extern void print(T
string);
120 template <
typename T,
121 OSCR::Util::enable_if_t<!(OSCR::Util::is_number<T>::value),
bool> Enable,
122 OSCR::Util::enable_if_t<!(OSCR::Util::is_printable<T>::value),
bool> NonPrintable>
123 extern void printLine(T
string);
125 template <
typename Tint,
126 OSCR::Util::enable_if_t<OSCR::Util::is_integer<Tint>::value,
bool> Enable>
127 extern void print(Tint number,
int base);
129 template <
typename Tint,
130 OSCR::Util::enable_if_t<OSCR::Util::is_integer<Tint>::value,
bool> Enable>
131 extern void printLine(Tint number,
int base);
void gotoLast()
Definition serial.cpp:83
void printHexLine(T number)
Definition interfaces.cpp:106
void printHex(T number)
Definition interfaces.cpp:93