Skip to content

Commit

Permalink
Upgrade to ArduinoJSON v6
Browse files Browse the repository at this point in the history
  • Loading branch information
matjack1 committed Feb 22, 2022
1 parent 2f8fdad commit 5b31dae
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 115 deletions.
2 changes: 1 addition & 1 deletion platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ default_envs = generic
[common]
platform = espressif8266@2.3.2
lib_deps =
ArduinoJson@5.13.4
ArduinoJson@6.19.1
ESPAsyncTCP
ESPAsyncUDP
ESP Async WebServer
Expand Down
20 changes: 10 additions & 10 deletions src/config.esp
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ bool ICACHE_FLASH_ATTR loadConfiguration()
size_t size = configFile.size();
std::unique_ptr<char[]> buf(new char[size]);
configFile.readBytes(buf.get(), size);
DynamicJsonBuffer jsonBuffer;
JsonObject &json = jsonBuffer.parseObject(buf.get());
if (!json.success())
DynamicJsonDocument json(4096);
auto error = deserializeJson(json, buf.get());
if (error)
{
#ifdef DEBUG
Serial.println(F("[ WARN ] Failed to parse config file"));
Expand All @@ -22,14 +22,14 @@ bool ICACHE_FLASH_ATTR loadConfiguration()
}
#ifdef DEBUG
Serial.println(F("[ INFO ] Config file found"));
json.prettyPrintTo(Serial);
serializeJsonPretty(json, Serial);
Serial.println();
#endif
JsonObject &network = json["network"];
JsonObject &hardware = json["hardware"];
JsonObject &general = json["general"];
JsonObject &mqtt = json["mqtt"];
JsonObject &ntp = json["ntp"];
JsonObject network = json["network"];
JsonObject hardware = json["hardware"];
JsonObject general = json["general"];
JsonObject mqtt = json["mqtt"];
JsonObject ntp = json["ntp"];
#ifdef DEBUG
Serial.println(F("[ INFO ] Trying to setup RFID Hardware"));
#endif
Expand Down Expand Up @@ -162,7 +162,7 @@ bool ICACHE_FLASH_ATTR loadConfiguration()

for (int i = 1; i < numRelays; i++)
{
JsonObject &relay = hardware["relay" + String((i + 1))];
JsonObject relay = hardware["relay" + String((i + 1))];
activateTime[i] = relay["rtime"];
lockType[i] = relay["ltype"];
relayType[i] = relay["rtype"];
Expand Down
34 changes: 16 additions & 18 deletions src/log.esp
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
void extern mqtt_publish_event(JsonObject *root);
void extern mqtt_publish_event(JsonDocument *root);

void ICACHE_FLASH_ATTR writeEvent(String type, String src, String desc, String data)
{
DynamicJsonBuffer jsonBuffer;
JsonObject &root = jsonBuffer.createObject();
DynamicJsonDocument root(512);
root["type"] = type;
root["src"] = src;
root["desc"] = desc;
Expand All @@ -18,7 +17,7 @@ void ICACHE_FLASH_ATTR writeEvent(String type, String src, String desc, String d
else // log to file
{
File eventlog = SPIFFS.open("/eventlog.json", "a");
root.printTo(eventlog);
serializeJson(root, eventlog);
eventlog.print("\n");
eventlog.close();
}
Expand All @@ -29,8 +28,7 @@ void ICACHE_FLASH_ATTR writeEvent(String type, String src, String desc, String d

void ICACHE_FLASH_ATTR writeLatest(String uid, String username, int acctype)
{
DynamicJsonBuffer jsonBuffer;
JsonObject &root = jsonBuffer.createObject();
DynamicJsonDocument root(512);
root["uid"] = uid;
root["username"] = username;
root["acctype"] = acctype;
Expand All @@ -43,7 +41,7 @@ void ICACHE_FLASH_ATTR writeLatest(String uid, String username, int acctype)
else // log to file
{
File latestlog = SPIFFS.open("/latestlog.json", "a");
root.printTo(latestlog);
serializeJson(root, latestlog);
latestlog.print("\n");
latestlog.close();
}
Expand All @@ -65,14 +63,15 @@ void ICACHE_FLASH_ATTR sendLogFile(int page, String fileName, int logFileType)
if (page == 1)
lastPos = 0;
float pages;
DynamicJsonBuffer jsonBuffer;
JsonObject &root = jsonBuffer.createObject();
Serial.println("sendLogFile");
Serial.println(ESP.getFreeHeap());
DynamicJsonDocument root(2048);
if (logFileType == LOGTYPE_EVENTLOG)
root["command"] = "eventlist";
if (logFileType == LOGTYPE_LATESTLOG)
root["command"] = "latestlist";
root["page"] = page;
JsonArray &items = root.createNestedArray("list");
JsonArray items = root.createNestedArray("list");

File logFile;

Expand Down Expand Up @@ -116,11 +115,11 @@ void ICACHE_FLASH_ATTR sendLogFile(int page, String fileName, int logFileType)

logFile.close();
root["haspages"] = ceil(pages);
size_t len = root.measureLength();
size_t len = measureJson(root);
AsyncWebSocketMessageBuffer *buffer = ws.makeBuffer(len);
if (buffer)
{
root.printTo((char *)buffer->get(), len + 1);
serializeJson(root, (char *)buffer->get(), len + 1);
ws.textAll(buffer);
if (logFileType == LOGTYPE_EVENTLOG)
ws.textAll("{\"command\":\"result\",\"resultof\":\"eventlist\",\"result\": true}");
Expand Down Expand Up @@ -224,11 +223,10 @@ void ICACHE_FLASH_ATTR logMaintenance(String action, String filename)
void ICACHE_FLASH_ATTR sendFileList(int page)
{

DynamicJsonBuffer jsonBuffer;
JsonObject &root = jsonBuffer.createObject();
DynamicJsonDocument root(512);
root["command"] = "listfiles";
root["page"] = page;
JsonArray &items = root.createNestedArray("list");
JsonArray items = root.createNestedArray("list");

size_t first = (page - 1) * FILES_PER_PAGE;
size_t last = page * FILES_PER_PAGE;
Expand All @@ -245,7 +243,7 @@ void ICACHE_FLASH_ATTR sendFileList(int page)
{
if (numFiles >= first && numFiles < last)
{
JsonObject &item = items.createNestedObject();
JsonObject item = items.createNestedObject();
item["filename"] = dir.fileName();
item["filesize"] = dir.fileSize();
} // first, last
Expand All @@ -256,11 +254,11 @@ void ICACHE_FLASH_ATTR sendFileList(int page)
float pages = numFiles / FILES_PER_PAGE;
root["haspages"] = ceil(pages);

size_t len = root.measureLength();
size_t len = measureJson(root);
AsyncWebSocketMessageBuffer *buffer = ws.makeBuffer(len);
if (buffer)
{
root.printTo((char *)buffer->get(), len + 1);
serializeJson(root, (char *)buffer->get(), len + 1);
ws.textAll(buffer);
ws.textAll("{\"command\":\"result\",\"resultof\":\"listfiles\",\"result\": true}");
}
Expand Down
Loading

0 comments on commit 5b31dae

Please sign in to comment.