#pragma once #include "common/string.hpp" #include class SerialStream { public: SerialStream(Serial_ serial, const unsigned long &baud_rate); SerialStream &operator<<(const char *str); SerialStream &operator<<(const common::String &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 waitReady(); void write(const char *str); void flush(); private: Serial_ _serial; }; void endl(SerialStream *serial_stream);