disable log in actisense mode

This commit is contained in:
wellenvogel 2022-01-07 12:37:20 +01:00
parent 34760d2fbe
commit 9878c90e7b
1 changed files with 40 additions and 28 deletions

View File

@ -4,39 +4,51 @@
#include "GwSocketServer.h" #include "GwSocketServer.h"
#include "GwSerial.h" #include "GwSerial.h"
#include "GwTcpClient.h" #include "GwTcpClient.h"
class GwSerialLog : public GwLogWriter{ class GwSerialLog : public GwLogWriter
static const size_t bufferSize=4096; {
char *logBuffer=NULL; static const size_t bufferSize = 4096;
int wp=0; char *logBuffer = NULL;
int wp = 0;
GwSerial *writer; GwSerial *writer;
public: bool disabled = false;
GwSerialLog(GwSerial *writer){
this->writer=writer; public:
logBuffer=new char[bufferSize]; GwSerialLog(GwSerial *writer, bool disabled)
wp=0; {
this->writer = writer;
this->disabled = disabled;
logBuffer = new char[bufferSize];
wp = 0;
} }
virtual ~GwSerialLog(){} virtual ~GwSerialLog() {}
virtual void write(const char *data){ virtual void write(const char *data)
int len=strlen(data); {
if ((wp+len) >= (bufferSize-1)) return; if (disabled)
strncpy(logBuffer+wp,data,len); return;
wp+=len; int len = strlen(data);
logBuffer[wp]=0; if ((wp + len) >= (bufferSize - 1))
return;
strncpy(logBuffer + wp, data, len);
wp += len;
logBuffer[wp] = 0;
} }
virtual void flush(){ virtual void flush()
size_t handled=0; {
while (handled < wp){ size_t handled = 0;
if (!disabled)
{
while (handled < wp)
{
writer->flush(); writer->flush();
size_t rt=writer->sendToClients(logBuffer+handled,-1,true); size_t rt = writer->sendToClients(logBuffer + handled, -1, true);
handled+=rt; handled += rt;
} }
wp=0;
logBuffer[0]=0;
} }
wp = 0;
logBuffer[0] = 0;
}
}; };
GwChannelList::GwChannelList(GwLog *logger, GwConfigHandler *config){ GwChannelList::GwChannelList(GwLog *logger, GwConfigHandler *config){
this->logger=logger; this->logger=logger;
this->config=config; this->config=config;
@ -53,7 +65,7 @@ void GwChannelList::begin(bool fallbackSerial){
if (! fallbackSerial){ if (! fallbackSerial){
GwSerial *usb=new GwSerial(NULL,0,USB_CHANNEL_ID); GwSerial *usb=new GwSerial(NULL,0,USB_CHANNEL_ID);
usb->setup(config->getInt(config->usbBaud),3,1); usb->setup(config->getInt(config->usbBaud),3,1);
logger->setWriter(new GwSerialLog(usb)); logger->setWriter(new GwSerialLog(usb,config->getBool(config->usbActisense)));
logger->prefix="GWSERIAL:"; logger->prefix="GWSERIAL:";
channel=new GwChannel(logger,"USB",USB_CHANNEL_ID); channel=new GwChannel(logger,"USB",USB_CHANNEL_ID);
channel->setImpl(usb); channel->setImpl(usb);