Skip to content

Commit 0cfbd05

Browse files
committed
Fixed compatibility with newer versions of ajson
1 parent bdac577 commit 0cfbd05

File tree

4 files changed

+86
-78
lines changed

4 files changed

+86
-78
lines changed

platformio.ini

+2-4
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,12 @@ build_flags =
4343
#!python script/git_rev.py
4444
lib_deps =
4545
# Using local copy of these libraries
46-
# https://github.com/mp-se/i2cdevlib.git#<document>
46+
# https://github.com/mp-se/i2cdevlib.git#<document>
4747
# https://github.com/mp-se/OneWire
4848
# https://github.com/mp-se/Arduino-Temperature-Control-Library
49-
# https://github.com/khoih-prog/ESP_WiFiManager
50-
# https://github.com/khoih-prog/ESP_DoubleResetDetector
5149
https://github.com/mp-se/tinyexpr#v1.0.0
5250
https://github.com/mp-se/Arduino-Log#1.1.1
53-
https://github.com/mp-se/ArduinoJson#v6.18.5
51+
https://github.com/mp-se/ArduinoJson#v6.21.3
5452
https://github.com/mp-se/arduinoCurveFitting#v1.0.6
5553
https://github.com/mp-se/arduino-mqtt#v2.5.1
5654
lib_deps32 =

src/config.cpp

+21-21
Original file line numberDiff line numberDiff line change
@@ -104,27 +104,27 @@ void Config::createJson(DynamicJsonDocument& doc) {
104104
cal["gz"] = _gyroCalibration.gz;
105105

106106
JsonObject cal2 = doc.createNestedObject(PARAM_FORMULA_DATA);
107-
cal2["a1"] = reduceFloatPrecision(_formulaData.a[0], DECIMALS_TILT);
108-
cal2["a2"] = reduceFloatPrecision(_formulaData.a[1], DECIMALS_TILT);
109-
cal2["a3"] = reduceFloatPrecision(_formulaData.a[2], DECIMALS_TILT);
110-
cal2["a4"] = reduceFloatPrecision(_formulaData.a[3], DECIMALS_TILT);
111-
cal2["a5"] = reduceFloatPrecision(_formulaData.a[4], DECIMALS_TILT);
112-
cal2["a6"] = reduceFloatPrecision(_formulaData.a[5], DECIMALS_TILT);
113-
cal2["a7"] = reduceFloatPrecision(_formulaData.a[6], DECIMALS_TILT);
114-
cal2["a8"] = reduceFloatPrecision(_formulaData.a[7], DECIMALS_TILT);
115-
cal2["a9"] = reduceFloatPrecision(_formulaData.a[8], DECIMALS_TILT);
116-
cal2["a10"] = reduceFloatPrecision(_formulaData.a[9], DECIMALS_TILT);
117-
118-
cal2["g1"] = reduceFloatPrecision(_formulaData.g[0], DECIMALS_SG);
119-
cal2["g2"] = reduceFloatPrecision(_formulaData.g[1], DECIMALS_SG);
120-
cal2["g3"] = reduceFloatPrecision(_formulaData.g[2], DECIMALS_SG);
121-
cal2["g4"] = reduceFloatPrecision(_formulaData.g[3], DECIMALS_SG);
122-
cal2["g5"] = reduceFloatPrecision(_formulaData.g[4], DECIMALS_SG);
123-
cal2["g6"] = reduceFloatPrecision(_formulaData.g[5], DECIMALS_SG);
124-
cal2["g7"] = reduceFloatPrecision(_formulaData.g[6], DECIMALS_SG);
125-
cal2["g8"] = reduceFloatPrecision(_formulaData.g[7], DECIMALS_SG);
126-
cal2["g9"] = reduceFloatPrecision(_formulaData.g[8], DECIMALS_SG);
127-
cal2["g10"] = reduceFloatPrecision(_formulaData.g[9], DECIMALS_SG);
107+
cal2["a1"] = serialized(String(_formulaData.a[0], DECIMALS_TILT));
108+
cal2["a2"] = serialized(String(_formulaData.a[1], DECIMALS_TILT));
109+
cal2["a3"] = serialized(String(_formulaData.a[2], DECIMALS_TILT));
110+
cal2["a4"] = serialized(String(_formulaData.a[3], DECIMALS_TILT));
111+
cal2["a5"] = serialized(String(_formulaData.a[4], DECIMALS_TILT));
112+
cal2["a6"] = serialized(String(_formulaData.a[5], DECIMALS_TILT));
113+
cal2["a7"] = serialized(String(_formulaData.a[6], DECIMALS_TILT));
114+
cal2["a8"] = serialized(String(_formulaData.a[7], DECIMALS_TILT));
115+
cal2["a9"] = serialized(String(_formulaData.a[8], DECIMALS_TILT));
116+
cal2["a10"] = serialized(String(_formulaData.a[9], DECIMALS_TILT));
117+
118+
cal2["g1"] = serialized(String(_formulaData.g[0], DECIMALS_SG));
119+
cal2["g2"] = serialized(String(_formulaData.g[1], DECIMALS_SG));
120+
cal2["g3"] = serialized(String(_formulaData.g[2], DECIMALS_SG));
121+
cal2["g4"] = serialized(String(_formulaData.g[3], DECIMALS_SG));
122+
cal2["g5"] = serialized(String(_formulaData.g[4], DECIMALS_SG));
123+
cal2["g6"] = serialized(String(_formulaData.g[5], DECIMALS_SG));
124+
cal2["g7"] = serialized(String(_formulaData.g[6], DECIMALS_SG));
125+
cal2["g8"] = serialized(String(_formulaData.g[7], DECIMALS_SG));
126+
cal2["g9"] = serialized(String(_formulaData.g[8], DECIMALS_SG));
127+
cal2["g10"] = serialized(String(_formulaData.g[9], DECIMALS_SG));
128128
}
129129

130130
//

src/webserver.cpp

+62-53
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,17 @@ void WebServerHandler::webHandleConfig() {
5757
double tempC = myTempSensor.getTempC(myConfig.isGyroTemp());
5858
double gravity = calculateGravity(angle, tempC);
5959

60-
doc[PARAM_ANGLE] = reduceFloatPrecision(angle, DECIMALS_TILT);
60+
doc[PARAM_ANGLE] = serialized(String(angle, DECIMALS_TILT));
6161
doc[PARAM_GRAVITY_FORMAT] = String(myConfig.getGravityFormat());
6262

6363
// Format the adjustment so we get rid of rounding errors
6464
if (myConfig.isTempF())
6565
// We want the delta value (32F = 0C).
66-
doc[PARAM_TEMP_ADJ] = reduceFloatPrecision(
67-
convertCtoF(myConfig.getTempSensorAdjC()) - 32, DECIMALS_TEMP);
66+
doc[PARAM_TEMP_ADJ] = serialized(
67+
String(convertCtoF(myConfig.getTempSensorAdjC()) - 32, DECIMALS_TEMP));
6868
else
6969
doc[PARAM_TEMP_ADJ] =
70-
reduceFloatPrecision(myConfig.getTempSensorAdjC(), DECIMALS_TEMP);
70+
serialized(String(myConfig.getTempSensorAdjC(), DECIMALS_TEMP));
7171

7272
if (myConfig.isGravityTempAdj()) {
7373
gravity = gravityTemperatureCorrectionC(
@@ -76,17 +76,17 @@ void WebServerHandler::webHandleConfig() {
7676

7777
if (myConfig.isGravityPlato()) {
7878
doc[PARAM_GRAVITY] =
79-
reduceFloatPrecision(convertToPlato(gravity), DECIMALS_PLATO);
79+
serialized(String(convertToPlato(gravity), DECIMALS_PLATO));
8080
} else {
81-
doc[PARAM_GRAVITY] = reduceFloatPrecision(gravity, DECIMALS_SG);
81+
doc[PARAM_GRAVITY] = serialized(String(gravity, DECIMALS_SG));
8282
}
8383

8484
doc[PARAM_BATTERY] =
85-
reduceFloatPrecision(myBatteryVoltage.getVoltage(), DECIMALS_BATTERY);
85+
serialized(String(myBatteryVoltage.getVoltage(), DECIMALS_BATTERY));
8686

8787
FloatHistoryLog runLog(RUNTIME_FILENAME);
88-
doc[PARAM_RUNTIME_AVERAGE] = reduceFloatPrecision(
89-
runLog.getAverage() ? runLog.getAverage() / 1000 : 0, DECIMALS_RUNTIME);
88+
doc[PARAM_RUNTIME_AVERAGE] = serialized(String(
89+
runLog.getAverage() ? runLog.getAverage() / 1000 : 0, DECIMALS_RUNTIME));
9090

9191
#if defined(ESP8266)
9292
doc[PARAM_PLATFORM] = "esp8266";
@@ -247,24 +247,27 @@ void WebServerHandler::webHandleStatus() {
247247
double gravity = calculateGravity(angle, tempC);
248248

249249
doc[PARAM_ID] = myConfig.getID();
250-
doc[PARAM_ANGLE] = myGyro.isConnected()
251-
? reduceFloatPrecision(angle, DECIMALS_TILT)
252-
: -1; // Indicate that we have no connection to gyro
250+
251+
if (myGyro.isConnected()) {
252+
doc[PARAM_ANGLE] = serialized(String(angle, DECIMALS_TILT));
253+
} else {
254+
doc[PARAM_ANGLE] = -1; // Indicate that there is no connection to gyro
255+
}
253256

254257
if (myConfig.isGravityTempAdj()) {
255258
gravity = gravityTemperatureCorrectionC(
256259
gravity, tempC, myAdvancedConfig.getDefaultCalibrationTemp());
257260
}
258261
if (myConfig.isGravityPlato()) {
259262
doc[PARAM_GRAVITY] =
260-
reduceFloatPrecision(convertToPlato(gravity), DECIMALS_PLATO);
263+
serialized(String(convertToPlato(gravity), DECIMALS_PLATO));
261264
} else {
262-
doc[PARAM_GRAVITY] = reduceFloatPrecision(gravity, DECIMALS_SG);
265+
doc[PARAM_GRAVITY] = serialized(String(gravity, DECIMALS_SG));
263266
}
264-
doc[PARAM_TEMP_C] = reduceFloatPrecision(tempC, DECIMALS_TEMP);
265-
doc[PARAM_TEMP_F] = reduceFloatPrecision(convertCtoF(tempC), DECIMALS_TEMP);
267+
doc[PARAM_TEMP_C] = serialized(String(tempC, DECIMALS_TEMP));
268+
doc[PARAM_TEMP_F] = serialized(String(convertCtoF(tempC), DECIMALS_TEMP));
266269
doc[PARAM_BATTERY] =
267-
reduceFloatPrecision(myBatteryVoltage.getVoltage(), DECIMALS_BATTERY);
270+
serialized(String(myBatteryVoltage.getVoltage(), DECIMALS_BATTERY));
268271
doc[PARAM_TEMPFORMAT] = String(myConfig.getTempFormat());
269272
doc[PARAM_GRAVITY_FORMAT] = String(myConfig.getGravityFormat());
270273
doc[PARAM_SLEEP_MODE] = sleepModeAlwaysSkip;
@@ -285,8 +288,8 @@ void WebServerHandler::webHandleStatus() {
285288
#endif
286289

287290
FloatHistoryLog runLog(RUNTIME_FILENAME);
288-
doc[PARAM_RUNTIME_AVERAGE] = reduceFloatPrecision(
289-
runLog.getAverage() ? runLog.getAverage() / 1000 : 0, DECIMALS_RUNTIME);
291+
doc[PARAM_RUNTIME_AVERAGE] = serialized(String(
292+
runLog.getAverage() ? runLog.getAverage() / 1000 : 0, DECIMALS_RUNTIME));
290293

291294
#if defined(ESP8266)
292295
doc[PARAM_PLATFORM] = "esp8266";
@@ -710,9 +713,15 @@ void WebServerHandler::webHandleConfigAdvancedRead() {
710713
doc[PARAM_HW_WIFI_CONNECT_TIMEOUT] = myAdvancedConfig.getWifiConnectTimeout();
711714
doc[PARAM_HW_PUSH_TIMEOUT] = myAdvancedConfig.getPushTimeout();
712715
float t = myAdvancedConfig.getDefaultCalibrationTemp();
713-
doc[PARAM_HW_FORMULA_CALIBRATION_TEMP] =
714-
myConfig.isTempC() ? t
715-
: reduceFloatPrecision(convertCtoF(t), DECIMALS_TEMP);
716+
717+
if (myConfig.isTempC()) {
718+
doc[PARAM_HW_FORMULA_CALIBRATION_TEMP] =
719+
serialized(String(t, DECIMALS_TEMP));
720+
} else {
721+
doc[PARAM_HW_FORMULA_CALIBRATION_TEMP] =
722+
serialized(String(convertCtoF(t), DECIMALS_TEMP));
723+
}
724+
716725
doc[PARAM_HW_PUSH_INTERVAL_HTTP1] = myAdvancedConfig.getPushIntervalHttp1();
717726
doc[PARAM_HW_PUSH_INTERVAL_HTTP2] = myAdvancedConfig.getPushIntervalHttp2();
718727
doc[PARAM_HW_PUSH_INTERVAL_HTTP3] = myAdvancedConfig.getPushIntervalHttp3();
@@ -748,7 +757,7 @@ void WebServerHandler::webHandleFormulaRead() {
748757
#endif
749758

750759
doc[PARAM_ID] = myConfig.getID();
751-
doc[PARAM_ANGLE] = reduceFloatPrecision(myGyro.getAngle(), DECIMALS_TILT);
760+
doc[PARAM_ANGLE] = serialized(String(myGyro.getAngle(), DECIMALS_TILT));
752761
doc[PARAM_GRAVITY_FORMAT] = String(myConfig.getGravityFormat());
753762
doc[PARAM_GRAVITY_FORMULA] = "";
754763
doc[PARAM_ERROR] = "";
@@ -771,39 +780,39 @@ void WebServerHandler::webHandleFormulaRead() {
771780
break;
772781
}
773782

774-
doc["a1"] = reduceFloatPrecision(fd.a[0], DECIMALS_TILT);
775-
doc["a2"] = reduceFloatPrecision(fd.a[1], DECIMALS_TILT);
776-
doc["a3"] = reduceFloatPrecision(fd.a[2], DECIMALS_TILT);
777-
doc["a4"] = reduceFloatPrecision(fd.a[3], DECIMALS_TILT);
778-
doc["a5"] = reduceFloatPrecision(fd.a[4], DECIMALS_TILT);
779-
doc["a6"] = reduceFloatPrecision(fd.a[5], DECIMALS_TILT);
780-
doc["a7"] = reduceFloatPrecision(fd.a[6], DECIMALS_TILT);
781-
doc["a8"] = reduceFloatPrecision(fd.a[7], DECIMALS_TILT);
782-
doc["a9"] = reduceFloatPrecision(fd.a[8], DECIMALS_TILT);
783-
doc["a10"] = reduceFloatPrecision(fd.a[9], DECIMALS_TILT);
783+
doc["a1"] = serialized(String(fd.a[0], DECIMALS_TILT));
784+
doc["a2"] = serialized(String(fd.a[1], DECIMALS_TILT));
785+
doc["a3"] = serialized(String(fd.a[2], DECIMALS_TILT));
786+
doc["a4"] = serialized(String(fd.a[3], DECIMALS_TILT));
787+
doc["a5"] = serialized(String(fd.a[4], DECIMALS_TILT));
788+
doc["a6"] = serialized(String(fd.a[5], DECIMALS_TILT));
789+
doc["a7"] = serialized(String(fd.a[6], DECIMALS_TILT));
790+
doc["a8"] = serialized(String(fd.a[7], DECIMALS_TILT));
791+
doc["a9"] = serialized(String(fd.a[8], DECIMALS_TILT));
792+
doc["a10"] = serialized(String(fd.a[9], DECIMALS_TILT));
784793

785794
if (myConfig.isGravityPlato()) {
786-
doc["g1"] = reduceFloatPrecision(convertToPlato(fd.g[0]), DECIMALS_PLATO);
787-
doc["g2"] = reduceFloatPrecision(convertToPlato(fd.g[1]), DECIMALS_PLATO);
788-
doc["g3"] = reduceFloatPrecision(convertToPlato(fd.g[2]), DECIMALS_PLATO);
789-
doc["g4"] = reduceFloatPrecision(convertToPlato(fd.g[3]), DECIMALS_PLATO);
790-
doc["g5"] = reduceFloatPrecision(convertToPlato(fd.g[4]), DECIMALS_PLATO);
791-
doc["g6"] = reduceFloatPrecision(convertToPlato(fd.g[5]), DECIMALS_PLATO);
792-
doc["g7"] = reduceFloatPrecision(convertToPlato(fd.g[6]), DECIMALS_PLATO);
793-
doc["g8"] = reduceFloatPrecision(convertToPlato(fd.g[7]), DECIMALS_PLATO);
794-
doc["g9"] = reduceFloatPrecision(convertToPlato(fd.g[8]), DECIMALS_PLATO);
795-
doc["g10"] = reduceFloatPrecision(convertToPlato(fd.g[9]), DECIMALS_PLATO);
795+
doc["g1"] = serialized(String(convertToPlato(fd.g[0]), DECIMALS_PLATO));
796+
doc["g2"] = serialized(String(convertToPlato(fd.g[1]), DECIMALS_PLATO));
797+
doc["g3"] = serialized(String(convertToPlato(fd.g[2]), DECIMALS_PLATO));
798+
doc["g4"] = serialized(String(convertToPlato(fd.g[3]), DECIMALS_PLATO));
799+
doc["g5"] = serialized(String(convertToPlato(fd.g[4]), DECIMALS_PLATO));
800+
doc["g6"] = serialized(String(convertToPlato(fd.g[5]), DECIMALS_PLATO));
801+
doc["g7"] = serialized(String(convertToPlato(fd.g[6]), DECIMALS_PLATO));
802+
doc["g8"] = serialized(String(convertToPlato(fd.g[7]), DECIMALS_PLATO));
803+
doc["g9"] = serialized(String(convertToPlato(fd.g[8]), DECIMALS_PLATO));
804+
doc["g10"] = serialized(String(convertToPlato(fd.g[9]), DECIMALS_PLATO));
796805
} else {
797-
doc["g1"] = reduceFloatPrecision(fd.g[0], DECIMALS_SG);
798-
doc["g2"] = reduceFloatPrecision(fd.g[1], DECIMALS_SG);
799-
doc["g3"] = reduceFloatPrecision(fd.g[2], DECIMALS_SG);
800-
doc["g4"] = reduceFloatPrecision(fd.g[3], DECIMALS_SG);
801-
doc["g5"] = reduceFloatPrecision(fd.g[4], DECIMALS_SG);
802-
doc["g6"] = reduceFloatPrecision(fd.g[5], DECIMALS_SG);
803-
doc["g7"] = reduceFloatPrecision(fd.g[6], DECIMALS_SG);
804-
doc["g8"] = reduceFloatPrecision(fd.g[7], DECIMALS_SG);
805-
doc["g9"] = reduceFloatPrecision(fd.g[8], DECIMALS_SG);
806-
doc["g10"] = reduceFloatPrecision(fd.g[9], DECIMALS_SG);
806+
doc["g1"] = serialized(String(fd.g[0], DECIMALS_SG));
807+
doc["g2"] = serialized(String(fd.g[1], DECIMALS_SG));
808+
doc["g3"] = serialized(String(fd.g[2], DECIMALS_SG));
809+
doc["g4"] = serialized(String(fd.g[3], DECIMALS_SG));
810+
doc["g5"] = serialized(String(fd.g[4], DECIMALS_SG));
811+
doc["g6"] = serialized(String(fd.g[5], DECIMALS_SG));
812+
doc["g7"] = serialized(String(fd.g[6], DECIMALS_SG));
813+
doc["g8"] = serialized(String(fd.g[7], DECIMALS_SG));
814+
doc["g9"] = serialized(String(fd.g[8], DECIMALS_SG));
815+
doc["g10"] = serialized(String(fd.g[9], DECIMALS_SG));
807816
}
808817

809818
#if LOG_LEVEL == 6 && !defined(WEB_DISABLE_LOGGING)

src_docs/source/releases.rst

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ v1.4.0 (beta)
1010
* Added possibility to set wifi settings in config (need manual reboot to apply)
1111
* Updated dependencies to latest versions as of Aug -23
1212
* Added feature to migrate formula and gyro calibration data from an existing ispindel configuration (don't do a full erase)
13+
* Updated code so it now works with newer versions of ArduniJSON
1314

1415
v1.3.1
1516
======

0 commit comments

Comments
 (0)