From 24924811b2bb54aea780479fc19e2604d34bf4e4 Mon Sep 17 00:00:00 2001 From: Piotr Dobrowolski Date: Wed, 8 May 2019 14:26:09 +0200 Subject: [PATCH] SpejsNode: add JSON network configuration loading --- spejsiot/SpejsNode.cpp | 16 +++++++++++++++- spejsiot/SpejsNode.h | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spejsiot/SpejsNode.cpp b/spejsiot/SpejsNode.cpp index 1a06bb6..6b867c4 100644 --- a/spejsiot/SpejsNode.cpp +++ b/spejsiot/SpejsNode.cpp @@ -58,7 +58,21 @@ void SpejsNode::loadJSON(std::vector initializers) { if (root.containsKey("name")) deviceType = (root["name"]).asString(); - JsonObject& data = root["endpoints"].asObject(); + JsonArray& networks = root.get("networks"); + if (networks.success() && networks.size()) { + debugf("got networks"); + JsonObject& network = networks.get(0); + + if (network.success() && network.containsKey("ssid")) { + debugf("Loaded JSON network configuration"); + wifiSSID = network["ssid"].as(); + wifiPassword = network["psk"].as(); + } else { + debugf("invalid network configuration"); + } + } + + JsonObject& data = root.get("endpoints"); for (auto it: data) { bool found = false; diff --git a/spejsiot/SpejsNode.h b/spejsiot/SpejsNode.h index d3671b9..dfc2380 100644 --- a/spejsiot/SpejsNode.h +++ b/spejsiot/SpejsNode.h @@ -68,6 +68,7 @@ protected: void mqttCallback(String, String); void otaUpdateCallback(bool result); void httpFile(HttpRequest &request, HttpResponse &response); + void httpConfig(HttpRequest &request, HttpResponse &response); void httpIndex(HttpRequest &request, HttpResponse &response); void systemReady(void);