update confg + ota

This commit is contained in:
2022-01-03 17:14:48 +01:00
parent c340ab9d2a
commit f2eeba9b73
12 changed files with 170 additions and 48 deletions

View File

@@ -4,8 +4,8 @@
#include "LITTLEFS.h"
#include "ArduinoJson.h"
const char *tagConfigfile = "/tagconfig.json";
DynamicJsonDocument tagDoc(512);
const char *tagConfigfile = "/settings.json";
DynamicJsonDocument settingsDoc(512);
bool configInitOK = false;
struct tagConfig
@@ -16,21 +16,53 @@ struct tagConfig
std::vector<tagConfig> tags;
bool checkTagConfig(void)
{
JsonArray array = settingsDoc["tags"].as<JsonArray>();
log_i("JsonArray size = %d", array.size());
bool hasError = checkTagConfig();
return hasError;
}
String GetWifiPassword(String ssid)
{
log_i("Get wifi password for ssid=%s", ssid);
if(ssid == "") return "";
JsonArray array = settingsDoc["WiFi"].as<JsonArray>();
for (JsonVariant v : array)
{
String netname((const char*)v["ssid"]);
uint16_t result = ssid.compareTo(netname);
log_v("compare %s(config) with %s(read) = %d",netname.c_str(), ssid.c_str(), result);
if (!result)
{
String password((const char*)v["psk"]);
log_i("ssid found in config", password.c_str());
return password;
}
}
log_e("password for %s not found",ssid.c_str() );
return "";
}
void loadConfig(const char *fname)
{
log_i("config: load");
File file = LITTLEFS.open(fname);
DeserializationError error = deserializeJson(tagDoc, file);
DeserializationError error = deserializeJson(settingsDoc, file);
if (error)
{
log_e("Failed to deserialize err=%s", error.c_str());
}
else
{
serializeJsonPretty(tagDoc, Serial);
serializeJsonPretty(settingsDoc, Serial);
JsonArray array = tagDoc["tags"].as<JsonArray>();
JsonArray array = settingsDoc["tags"].as<JsonArray>();
log_i("JsonArray size = %d", array.size());
bool hasError = false;
for (JsonVariant v : array)
@@ -65,7 +97,7 @@ void handleConfig(void)
String getConfigSong(String uid)
{
JsonArray array = tagDoc["tags"].as<JsonArray>();
JsonArray array = settingsDoc["tags"].as<JsonArray>();
for (JsonVariant v : array)
{
String taguid((const char*)v["TagUID"]);