19class Utf8TerminalDevice;
36 const Char*
Name()
const override {
return (
"TerminalDevice"); }
53 const Char*
Name()
const override {
return (
"Utf8TerminalDevice"); }
61 TerminalDevice self = TerminalDevice::The();
63 self.operator<<(
"\r");
68 Utf8TerminalDevice self = Utf8TerminalDevice::The();
70 self.operator<<(u8
"\r");
75 TerminalDevice self = TerminalDevice::The();
77 self.operator<<(
"\r");
82 TerminalDevice self = TerminalDevice::The();
84 self.operator<<(
"\t");
89inline TerminalDevice
bell() {
90 TerminalDevice self = TerminalDevice::The();
92 self.operator<<(
"\a");
98 UInt64 y = (x > 0 ? x : -x) / 10;
99 UInt64 h = (x > 0 ? x : -x) % 10;
109 if (y == ~0UL) y = -y;
111 const Char kNumbers[11] =
"0123456789";
114 buf[0] = kNumbers[h];
117 term.operator<<(buf);
122 UInt64 y = (x > 0 ? x : -x) / 16;
123 UInt64 h = (x > 0 ? x : -x) % 16;
133 if (y == ~0UL) y = -y;
135 const Char kNumbers[17] =
"0123456789ABCDEF";
138 buf[0] = kNumbers[h];
141 term.operator<<(buf);
147 TerminalDevice self = TerminalDevice::The();
156 TerminalDevice self = TerminalDevice::The();
164 TerminalDevice self = TerminalDevice::The();
189#define kout TerminalDevice::The()
195#define kendl end_line()
201#define kout8 Utf8TerminalDevice::The()
207#define kendl8 utf_end_line()
#define NE_COPY_DEFAULT(KLASS)
Definition Detail.h:17
#define NE_DEVICE
Definition DeviceMgr.h:27
Device contract interface, represents an HW device.
Definition DeviceMgr.h:42
~TerminalDevice() override
STATIC TerminalDevice The()
TerminalDevice(void(*print)(DeviceInterface *, const Char *), void(*gets)(DeviceInterface *, const Char *))
Definition DebugOutput.h:28
const Char * Name() const override
returns device name (terminal name)
Definition DebugOutput.h:36
STATIC Utf8TerminalDevice The()
const Char * Name() const override
returns device name (terminal name)
Definition DebugOutput.h:53
~Utf8TerminalDevice() override
Utf8TerminalDevice(void(*print)(DeviceInterface *, const Utf8Char *), void(*gets)(DeviceInterface *, const Utf8Char *))
Definition DebugOutput.h:45
TerminalDevice _write_number(const Long &x, TerminalDevice &term)
Definition DebugOutput.h:97
TerminalDevice _write_number_hex(const Long &x, TerminalDevice &term)
Definition DebugOutput.h:121
UPS inline definitions.
Definition Device.h:12
constexpr auto kDebugMagic
Definition DebugOutput.h:172
char Char
Definition Config.h:51
TerminalDevice bell()
emulate a terminal bell, like the VT100 does.
Definition DebugOutput.h:89
TerminalDevice carriage_return()
Definition DebugOutput.h:74
TerminalDevice get_console_in(Char *buf)
Definition DebugOutput.h:163
TerminalDevice tabulate()
Definition DebugOutput.h:81
__INT64_TYPE__ Long
Definition Config.h:45
constexpr SizeT kDebugCmdLen
Definition DebugOutput.h:175
__SIZE_TYPE__ SizeT
Definition Config.h:60
TerminalDevice number(const Long &x)
Definition DebugOutput.h:155
TerminalDevice end_line()
Definition DebugOutput.h:60
TerminalDevice & operator<<(TerminalDevice &src, const Long &num)
Definition DebugOutput.h:179
constexpr auto kDebugPort
Definition DebugOutput.h:171
Utf8TerminalDevice utf_end_line()
Definition DebugOutput.h:67
char8_t Utf8Char
Definition Config.h:75
TerminalDevice hex_number(const Long &x)
Definition DebugOutput.h:146
Char rt_debug_cmd[kDebugCmdLen]
Definition DebugOutput.h:177
constexpr auto kDebugVersion
Definition DebugOutput.h:173
__UINT64_TYPE__ UInt64
Definition Config.h:48