From b4ca52041725fd42da192d86d2bed4b272d3ffa3 Mon Sep 17 00:00:00 2001 From: Thomas Amler Date: Tue, 24 Mar 2020 16:50:54 +0100 Subject: [PATCH 1/2] Fixes for ArduinoJson 6 --- src/main.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index b30b0ff..3156691 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -237,7 +237,7 @@ void sleepIfNecessary() { DLOG("Battery voltage is low (%.1fV). Sleeping for 10 minutes\n", mV / 1000); if (mqttClient.connected()) { StaticJsonBuffer<200> jsonBuffer; - JsonObject& root = jsonBuffer.createObject(); + JsonObject root = jsonBuffer.createObject(); root["battery_level"] = 0; root["cleaning"] = false; root["docked"] = false; @@ -405,8 +405,7 @@ void sendStatus() { return; } DLOG("Reporting packet Distance:%dmm ChargingState:%d Voltage:%dmV Current:%dmA Charge:%dmAh Capacity:%dmAh\n", roombaState.distance, roombaState.chargingState, roombaState.voltage, roombaState.current, roombaState.charge, roombaState.capacity); - StaticJsonBuffer<200> jsonBuffer; - JsonObject& root = jsonBuffer.createObject(); + StaticJsonDocument<200> root; root["battery_level"] = (roombaState.charge * 100)/roombaState.capacity; root["cleaning"] = roombaState.cleaning; root["docked"] = roombaState.docked; @@ -417,7 +416,7 @@ void sendStatus() { root["current"] = roombaState.current; root["charge"] = roombaState.charge; String jsonStr; - root.printTo(jsonStr); + serializeJson(root, jsonStr); mqttClient.publish(statusTopic, jsonStr.c_str()); } From b693b0a5b24d00edd8d55e00dc15f81aa2752b93 Mon Sep 17 00:00:00 2001 From: Thomas Amler Date: Tue, 24 Mar 2020 23:32:31 +0100 Subject: [PATCH 2/2] fix ArduinoJson for adc_sleep mode too --- src/main.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 3156691..1ad9a5f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -236,8 +236,7 @@ void sleepIfNecessary() { // Fire off a quick message with our most recent state, if MQTT is connected DLOG("Battery voltage is low (%.1fV). Sleeping for 10 minutes\n", mV / 1000); if (mqttClient.connected()) { - StaticJsonBuffer<200> jsonBuffer; - JsonObject root = jsonBuffer.createObject(); + StaticJsonDocument<200> root; root["battery_level"] = 0; root["cleaning"] = false; root["docked"] = false; @@ -245,7 +244,7 @@ void sleepIfNecessary() { root["voltage"] = mV / 1000; root["charge"] = 0; String jsonStr; - root.printTo(jsonStr); + serializeJson(root, jsonStr); mqttClient.publish(statusTopic, jsonStr.c_str(), true); } delay(200);