mirror of
https://github.com/thooge/esp32-nmea2000-obp60.git
synced 2025-12-16 15:33:05 +01:00
streamline buffer handling
This commit is contained in:
@@ -8,6 +8,7 @@ class GwBufferWriter{
|
||||
public:
|
||||
int id=0; //can be set be users
|
||||
virtual int write(const uint8_t *buffer,size_t len)=0;
|
||||
virtual void done(){}
|
||||
virtual ~GwBufferWriter(){};
|
||||
};
|
||||
|
||||
@@ -18,7 +19,8 @@ class GwBufferWriter{
|
||||
*/
|
||||
class GwBuffer{
|
||||
public:
|
||||
static const size_t BUFFER_SIZE=1620; // app. 20 NMEA messages
|
||||
static const size_t TX_BUFFER_SIZE=1620; // app. 20 NMEA messages
|
||||
static const size_t RX_BUFFER_SIZE=200; // enough for 1 NMEA message...
|
||||
typedef enum {
|
||||
OK,
|
||||
ERROR,
|
||||
@@ -26,7 +28,6 @@ class GwBuffer{
|
||||
} WriteStatus;
|
||||
private:
|
||||
size_t bufferSize;
|
||||
bool rotate;
|
||||
uint8_t *buffer;
|
||||
uint8_t *writePointer;
|
||||
uint8_t *readPointer;
|
||||
@@ -40,12 +41,12 @@ class GwBuffer{
|
||||
*/
|
||||
int findChar(char x);
|
||||
public:
|
||||
GwBuffer(GwLog *logger,size_t bufferSize,bool rotate=true);
|
||||
GwBuffer(GwLog *logger,size_t bufferSize);
|
||||
~GwBuffer();
|
||||
void reset();
|
||||
size_t freeSpace();
|
||||
size_t usedSpace();
|
||||
size_t addData(const uint8_t *data,size_t len);
|
||||
size_t addData(const uint8_t *data,size_t len,bool addPartial=false);
|
||||
/**
|
||||
* write some data to the buffer writer
|
||||
* return an error if the buffer writer returned < 0
|
||||
|
||||
Reference in New Issue
Block a user