Experiment of serial command protocol
Dependencies: RingBuffer SerialInterfaceProtocol duinotech_16x2_LCD mbed
You can edit this area
buffer.h
- Committer:
- rba90
- Date:
- 2016-06-04
- Revision:
- 0:2ba6a9f316b6
File content as of revision 0:2ba6a9f316b6:
#ifndef BUFFER_H_ #define BUFFER_H_ #define DEFAULT_MAX_BUFFER_SZ 64 #include "stdint.h" template <typename T> class CircularBuffer { private: const uint32_t buffer_size; uint32_t read_ptr; uint32_t write_ptr; uint32_t count; // mutex lock bool mux; // overflow bool is_over_flow; // container T *data; public: CircularBuffer(const uint32_t size=DEFAULT_MAX_BUFFER_SZ); ~CircularBuffer(); // psudo mutex bool isLocked(); void lock(); void unlock(); // enqueue and dequeue void enqueue(T in); T dequeue(); // pointer operation uint32_t getReadPtr(); uint32_t getWritePtr(); uint32_t getCounter(); // overflow bool getOverFlow(); void clearOverFlow(); // operation T first(); T last(); // random access T operator[](uint32_t idx); }; #endif