Skip to content

Commit f640435

Browse files
committed
fix save values using byRef parameters
1 parent 8ed7c40 commit f640435

File tree

3 files changed

+27
-26
lines changed

3 files changed

+27
-26
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -258,4 +258,7 @@ paket-files/
258258

259259
# Python Tools for Visual Studio (PTVS)
260260
__pycache__/
261-
*.pyc
261+
*.pyc
262+
263+
264+
*.cpp__

src/ConfigTool.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
#include "ConfigTool.h"
77
#include <FS.h>
8-
#include <ArduinoJson.h>
98
#include <SPIFFS.h>
10-
#include <map>
119

1210
void ConfigTool::load() {
1311
if (!SPIFFS.begin(true)) {
@@ -21,7 +19,7 @@ void ConfigTool::load() {
2119
DynamicJsonDocument root(ConfigSize);
2220
deserializeJson(root, f.readStringUntil('\n'));
2321
for (auto item : variables_) {
24-
item.second->deserialize(root);
22+
item.second->deserialize(&root);
2523
}
2624

2725
f.close();
@@ -31,12 +29,13 @@ void ConfigTool::save() {
3129
DynamicJsonDocument root(ConfigSize);
3230

3331
for (auto item : variables_) {
34-
item.second->serialize(root);
32+
item.second->serialize(&root);
3533
}
36-
37-
SPIFFS.begin();
34+
35+
SPIFFS.begin(true);
3836
File f = SPIFFS.open("/config.json", "w");
3937
serializeJson(root, f);
38+
f.close();
4039
}
4140

4241
void ConfigTool::reset() {

src/ConfigTool.h

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
#ifndef _ConfigTool_h
66
#define _ConfigTool_h
77

8-
#include <Arduino.h>
98
#include <map>
109
#include <ArduinoJson.h>
1110

1211

1312
struct BaseVar {
1413
String name;
15-
virtual void serialize(JsonDocument) = 0;
16-
virtual void deserialize(JsonDocument) = 0;
14+
virtual void serialize(JsonDocument*) = 0;
15+
virtual void deserialize(JsonDocument*) = 0;
1716
virtual void reset() = 0;
1817
virtual String toString() = 0;
1918
virtual void fromString(String) = 0;
@@ -23,9 +22,9 @@ template <typename T>
2322
struct ConfigVar : BaseVar {
2423
ConfigVar(String n, T* p) {};
2524

26-
void deserialize(JsonDocument json) {};
25+
void deserialize(JsonDocument* json) {};
2726

28-
void serialize(JsonDocument json) {};
27+
void serialize(JsonDocument* json) {};
2928

3029
void reset() {};
3130

@@ -44,12 +43,12 @@ struct ConfigVar<String> : BaseVar {
4443
defaultValue = *p;
4544
};
4645

47-
void deserialize(JsonDocument json) {
48-
*pointer = String{ json[name] | defaultValue };
46+
void deserialize(JsonDocument* json) {
47+
*pointer = String{ (*json)[name] | defaultValue };
4948
}
5049

51-
void serialize(JsonDocument json) {
52-
json[name] = *pointer;
50+
void serialize(JsonDocument* json) {
51+
(*json)[name] = *pointer;
5352
}
5453

5554
void reset() {
@@ -75,14 +74,14 @@ struct ConfigVar<bool> : BaseVar {
7574
defaultValue = *p;
7675
};
7776

78-
void deserialize(JsonDocument json) {
79-
if (!json[name].isNull()) {
80-
*pointer = json[name];
77+
void deserialize(JsonDocument* json) {
78+
if (!(*json)[name].isNull()) {
79+
*pointer = (*json)[name];
8180
}
8281
}
8382

84-
void serialize(JsonDocument json) {
85-
json[name] = *pointer;
83+
void serialize(JsonDocument* json) {
84+
(*json)[name] = *pointer;
8685
}
8786

8887
void reset() {
@@ -108,14 +107,14 @@ struct ConfigVar<int> : BaseVar {
108107
defaultValue = *p;
109108
};
110109

111-
void deserialize(JsonDocument json) {
112-
if (!json[name].isNull()) {
113-
*pointer = json[name];
110+
void deserialize(JsonDocument* json) {
111+
if (!(*json)[name].isNull()) {
112+
*pointer = (*json)[name];
114113
}
115114
}
116115

117-
void serialize(JsonDocument json) {
118-
json[name] = *pointer;
116+
void serialize(JsonDocument* json) {
117+
(*json)[name] = *pointer;
119118
}
120119

121120
void reset() {

0 commit comments

Comments
 (0)