#ifndef SERIAL_H #define SERIAL_H #define BAUD 38400 #define SERIAL_RX_BUFFER_SIZE 384 #define SERIAL_TX_BUFFER_SIZE 128 #include #include #include #include #include #include #include "ringbuffer.h" const bool serialFlowControl = false; class Serial { private: char _terminator = '\n'; Serial(); public: volatile RingBuffer rxBuffer; volatile RingBuffer txBuffer; bool stopped = false; volatile bool transmitting = false; static Serial* getInstance(); void putChar(const char c); void write(const char* in, const unsigned int length); void write(const char in[]); void write_p(const char in[]); //for flash space strigns void write(const int32_t in); unsigned int read( char* buffer, const unsigned int length ); bool dataIsWaiting(); char getChar(); unsigned int getString(char* buffer, const int bufferLength); void flush(); void setTerminator(const char terminator); }; #endif