summaryrefslogtreecommitdiff
path: root/src/serial.hpp
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-02-15 12:33:52 +0100
committerHampusM <hampus@hampusmat.com>2022-02-15 12:33:52 +0100
commitbcdce9633dc351d3bc7f347a165348b8fab87cd9 (patch)
tree88c2f5d8f0c5fac2bca28e4b543e5209f3bc98fb /src/serial.hpp
parent917adc6a2b6b166e37fc3d4f94b41488f0c245a5 (diff)
refactor: reorganize files & improve classes
Diffstat (limited to 'src/serial.hpp')
-rw-r--r--src/serial.hpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/serial.hpp b/src/serial.hpp
new file mode 100644
index 0000000..9a9488d
--- /dev/null
+++ b/src/serial.hpp
@@ -0,0 +1,29 @@
+#pragma once
+
+#include "std/smart_string.hpp"
+
+#include <USBAPI.h>
+
+class SerialStream
+{
+public:
+ SerialStream(Serial_ serial, uint64_t baud_rate);
+
+ SerialStream &operator<<(const char *str);
+ SerialStream &operator<<(const SmartString &str);
+ SerialStream &operator<<(const double &num);
+ SerialStream &operator<<(const int &num);
+ SerialStream &operator<<(const unsigned int &num);
+ SerialStream &operator<<(const unsigned long &num);
+
+ SerialStream &operator<<(void (*manipulator)(SerialStream *));
+
+ void write(const char *str);
+
+ void flush();
+
+private:
+ Serial_ _serial;
+};
+
+void endl(SerialStream *serial_stream);