-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
The code I'm using:
void SystemStatus::saveToFile(String &result) {
JsonDocument doc;
JsonObject saveToFile = doc["saveToFile"].to<JsonObject>();
saveToFile["controllerId"] = controllerId;
saveToFile["trackPowerMonitorId"] = trackPowerMonitor->getId();
saveToFile["stateSendMonitorId"] = stateSendMonitor->getId();
JsonArray boards = saveToFile["boards"].to<JsonArray>();
for (unsigned int address = 0; address < 4; address++) {
JsonObject board = saveToFile["board"].to<JsonObject>();
board["address"] = address;
JsonArray analog = board["analog"].to<JsonArray>();
JsonArray digital = board["digital"].to<JsonArray>();
boards.add(board);
for (auto pinConfig : systemBoards[address].analog) {
JsonObject board_pinConfig = doc["board_pinConfig"].to<JsonObject>();
board_pinConfig["firstPin"] = pinConfig->firstPin;
auto it = pinStringTable.find(pinConfig->pinType);
if (it != pinStringTable.end()) {
board_pinConfig["type"] = it->second;
}
board_pinConfig["id"] = pinConfig->id;
if (strlen(pinConfig->actuatorId) > 0) {
board_pinConfig["actuatorId"] = pinConfig->actuatorId;
}
if (pinConfig->onWidth) {
board_pinConfig["onWidth"] = pinConfig->onWidth;
}
analog.add(board_pinConfig);
}
for (auto pinConfig : systemBoards[address].digital) {
JsonObject board_pinConfig = doc["board_pinConfig"].to<JsonObject>();
board_pinConfig["firstPin"] = pinConfig->firstPin;
auto it = pinStringTable.find(pinConfig->pinType);
if (it != pinStringTable.end()) {
board_pinConfig["type"] = it->second;
}
board_pinConfig["id"] = pinConfig->id;
digital.add(board_pinConfig);
}
}
serializeJson(saveToFile, result);
}is generating this:
{
"controllerId": 1,
"trackPowerMonitorId": "Z001",
"stateSendMonitorId": "RESET1",
"boards": [
{
"address": 0,
"analog": [],
"digital": []
},
{
"address": 1,
"analog": [],
"digital": []
},
{
"address": 2,
"analog": [],
"digital": []
},
{
"address": 3,
"analog": [],
"digital": []
}],
"board":
{
"address": 3,
"analog": [
{
"firstPin": 0,
"type": "Uncoupler_A",
"id": "U050",
"actuatorId": "A005",
"onWidth": 590
},
{
"firstPin": 4,
"type": "Uncoupler_A",
"id": "U055",
"actuatorId": "A055",
"onWidth": 685
},
{
"firstPin": 8,
"type": "Uncoupler_A",
"id": "U060",
"actuatorId": "A060",
"onWidth": 640
},
{
"firstPin": 12,
"type": "Uncoupler_A",
"id": "U065",
"actuatorId": "A065",
"onWidth": 650
}],
"digital": [
{
"firstPin": 0,
"type": "Uncoupler_D",
"id": "U050"
},
{
"firstPin": 3,
"type": "Uncoupler_D",
"id": "U055"
},
{
"firstPin": 6,
"type": "Uncoupler_D",
"id": "U060"
},
{
"firstPin": 9,
"type": "Uncoupler_D",
"id": "U065"
},
{
"firstPin": 15,
"type": "DetectMode",
"id": "D020"
}]
}
}I don't see how the ArduinoJson Troubleshooter can help me with this issue. Can you please?