1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2025-12-13 05:53:06 +01:00

intermediate: actisense format on USB

This commit is contained in:
wellenvogel
2021-11-26 00:09:34 +01:00
parent dbadb6fb11
commit 284be741f5
6 changed files with 119 additions and 19 deletions

View File

@@ -2,7 +2,7 @@
void GwBuffer::lp(const char *fkt, int p)
{
LOG_DEBUG(GwLog::DEBUG + 1, "Buffer[%s]: buf=%p,wp=%d,rp=%d,used=%d,free=%d, p=%d",
LOG_DEBUG(GwLog::DEBUG+2 , "Buffer[%s]: buf=%p,wp=%d,rp=%d,used=%d,free=%d, p=%d",
fkt, buffer, offset(writePointer), offset(readPointer), usedSpace(), freeSpace(), p);
}
@@ -37,6 +37,19 @@ size_t GwBuffer::usedSpace()
return writePointer - readPointer;
return writePointer+bufferSize-readPointer;
}
int GwBuffer::read(){
if (! usedSpace()) return -1;
int rt=*readPointer;
readPointer++;
if (offset(readPointer) >= bufferSize)
readPointer -= bufferSize;
lp("read");
return rt;
}
int GwBuffer::peek(){
if (! usedSpace()) return -1;
return *readPointer;
}
size_t GwBuffer::addData(const uint8_t *data, size_t len, bool addPartial)
{
lp("addDataE", len);

View File

@@ -20,7 +20,7 @@ class GwBufferWriter{
class GwBuffer{
public:
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...
static const size_t RX_BUFFER_SIZE=400; // enough for 1 NMEA message or actisense message
typedef enum {
OK,
ERROR,
@@ -47,6 +47,8 @@ class GwBuffer{
size_t freeSpace();
size_t usedSpace();
size_t addData(const uint8_t *data,size_t len,bool addPartial=false);
int read();
int peek();
/**
* write some data to the buffer writer
* return an error if the buffer writer returned < 0