pagination in eventlog fix

This commit is contained in:
Paul
2019-08-11 12:18:49 +02:00
parent 3940c935a4
commit 0f6be3c5b5

View File

@@ -509,7 +509,7 @@ void MyESP::_ota_setup() {
static unsigned int _progOld; static unsigned int _progOld;
unsigned int _prog = (progress / (total / 100)); unsigned int _prog = (progress / (total / 100));
if (_prog != _progOld) { if (_prog != _progOld) {
myDebug_P(PSTR("[OTA] Progress: %u%%\r"), _prog); myDebug_P(PSTR("[OTA] Progress: %u%%"), _prog);
_progOld = _prog; _progOld = _prog;
} }
}); });
@@ -2101,9 +2101,7 @@ void MyESP::_writeEvent(const char * type, const char * src, const char * desc,
return; return;
} }
DynamicJsonDocument doc(300); StaticJsonDocument<300> root;
JsonObject root = doc.to<JsonObject>(); // TODO do I need to convert to root? read docs
root["type"] = type; root["type"] = type;
root["src"] = src; root["src"] = src;
root["desc"] = desc; root["desc"] = desc;
@@ -2122,7 +2120,6 @@ void MyESP::_writeEvent(const char * type, const char * src, const char * desc,
} }
// send a paged list (10 items) to the ws // send a paged list (10 items) to the ws
// limit to 10 pages
void MyESP::_sendEventLog(uint8_t page) { void MyESP::_sendEventLog(uint8_t page) {
File eventlog = SPIFFS.open(MYESP_EVENTLOG_FILE, "r"); File eventlog = SPIFFS.open(MYESP_EVENTLOG_FILE, "r");
if (!eventlog) { if (!eventlog) {
@@ -2143,9 +2140,8 @@ void MyESP::_sendEventLog(uint8_t page) {
uint8_t last = page * 10; uint8_t last = page * 10;
uint8_t i = 0; uint8_t i = 0;
// TODO event is limited to 50 entries. implement purge while (eventlog.available()) {
while (eventlog.available() && (i < 50)) { String item = String();
String item = String(); // TODO replace String with char*
item = eventlog.readStringUntil('\n'); item = eventlog.readStringUntil('\n');
if (i >= first && i < last) { if (i >= first && i < last) {
list.add(item); list.add(item);
@@ -2160,6 +2156,7 @@ void MyESP::_sendEventLog(uint8_t page) {
char buffer[MYESP_JSON_MAXSIZE]; char buffer[MYESP_JSON_MAXSIZE];
size_t len = serializeJson(root, buffer); size_t len = serializeJson(root, buffer);
//Serial.printf("\nEVENTLLOG: page %d\n", page); // turn on for debugging
//serializeJson(root, Serial); // turn on for debugging //serializeJson(root, Serial); // turn on for debugging
_ws->textAll(buffer, len); _ws->textAll(buffer, len);