Skip to content

Commit e52578b

Browse files
committed
Move AsyncServer inside AsyncBufferedTCPLogger
1 parent 89d53e2 commit e52578b

3 files changed

Lines changed: 28 additions & 6 deletions

File tree

src/asyncbufferedtcplogger.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
#include <WiFi.h>
2+
13
#include "asyncbufferedtcplogger.h"
24
#include "configuration.h"
35

4-
APB::AsyncBufferedTCPLogger::AsyncBufferedTCPLogger(AsyncServer & loggerServer) {
6+
APB::AsyncBufferedTCPLogger::AsyncBufferedTCPLogger(uint16_t port) : loggerServer{port} {
57
loggerServer.onClient([this](void *,AsyncClient *c){
68
this->client = c;
79
if(!this->backlog.empty()) {
@@ -15,6 +17,23 @@ APB::AsyncBufferedTCPLogger::AsyncBufferedTCPLogger(AsyncServer & loggerServer)
1517
}, nullptr);
1618
}
1719

20+
void APB::AsyncBufferedTCPLogger::setup() {
21+
WiFi.onEvent([this](arduino_event_id_t event, arduino_event_info_t info){
22+
switch (event) {
23+
case ARDUINO_EVENT_WIFI_STA_CONNECTED:
24+
case ARDUINO_EVENT_WIFI_AP_START:
25+
this->loggerServer.begin();
26+
break;
27+
case ARDUINO_EVENT_WIFI_STA_DISCONNECTED:
28+
case ARDUINO_EVENT_WIFI_AP_STOP:
29+
this->loggerServer.end();
30+
this->client = nullptr;
31+
default:
32+
break;
33+
}
34+
});
35+
}
36+
1837
#include "utils.h"
1938
size_t APB::AsyncBufferedTCPLogger::write(uint8_t c) {
2039
buffer[currentPosition++] = c;

src/asyncbufferedtcplogger.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
#include <Print.h>
33
#include <AsyncTCP.h>
44
#include <queue>
5+
#include <AsyncTCP.h>
56

67
namespace APB {
78
class AsyncBufferedTCPLogger: public Print {
89
public:
9-
AsyncBufferedTCPLogger(AsyncServer &loggerServer);
10+
AsyncBufferedTCPLogger(uint16_t port);
11+
void setup();
1012

1113
virtual size_t write(uint8_t c);
1214
private:
@@ -16,6 +18,7 @@ class AsyncBufferedTCPLogger: public Print {
1618
std::array<char, 1024> buffer = {0};
1719
std::queue<String> backlog;
1820
uint16_t currentPosition = 0;
21+
AsyncServer loggerServer;
1922
};
2023

2124
}

src/main.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,9 @@
2121
#include "influxdb.h"
2222

2323
Scheduler scheduler;
24-
AsyncServer loggerServer{9911};
2524

2625

27-
APB::AsyncBufferedTCPLogger bufferedLogger{loggerServer};
26+
APB::AsyncBufferedTCPLogger bufferedLogger{9911};
2827

2928
#ifdef ONEBUTTON_USER_BUTTON_1
3029
OneButton userButton;
@@ -49,10 +48,12 @@ void setup() {
4948
delay(BOOT_DELAY);
5049
#endif
5150

51+
bufferedLogger.setup();
5252
Log.begin(LOG_LEVEL_VERBOSE, &Serial, true);
53+
Log.addHandler(&bufferedLogger);
5354
Log.infoln(LOG_SCOPE "setup, core: %d", xPortGetCoreID());
5455

55-
Log.addHandler(&bufferedLogger);
56+
5657

5758
LittleFS.begin();
5859
APB::Settings::Instance.setup();
@@ -61,7 +62,6 @@ void setup() {
6162
APB::StatusLed::Instance.setup();
6263

6364
APB::WiFiManager::Instance.setup(scheduler);
64-
loggerServer.begin();
6565
Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN);
6666
Wire.setClock(100000);
6767
APB::Ambient::Instance.setup(scheduler);

0 commit comments

Comments
 (0)