parent
6c903abda1
commit
55c98ef880
@ -2,6 +2,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ArduinoJson.h>
|
#include <ArduinoJson.h>
|
||||||
|
#include <LittleFS.h>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
class Utils {
|
class Utils {
|
||||||
@ -12,4 +13,5 @@ public:
|
|||||||
static bool checkJsonAlloc(const JsonDocument& doc, const char* function, const uint16_t line);
|
static bool checkJsonAlloc(const JsonDocument& doc, const char* function, const uint16_t line);
|
||||||
static void removeAllFiles();
|
static void removeAllFiles();
|
||||||
static String generateMd5FromFile(String file);
|
static String generateMd5FromFile(String file);
|
||||||
|
static void skipBom(File& f);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -159,6 +159,7 @@ bool ConfigurationClass::write()
|
|||||||
bool ConfigurationClass::read()
|
bool ConfigurationClass::read()
|
||||||
{
|
{
|
||||||
File f = LittleFS.open(CONFIG_FILENAME, "r", false);
|
File f = LittleFS.open(CONFIG_FILENAME, "r", false);
|
||||||
|
Utils::skipBom(f);
|
||||||
|
|
||||||
JsonDocument doc;
|
JsonDocument doc;
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "PinMapping.h"
|
#include "PinMapping.h"
|
||||||
#include "MessageOutput.h"
|
#include "MessageOutput.h"
|
||||||
|
#include "Utils.h"
|
||||||
#include <ArduinoJson.h>
|
#include <ArduinoJson.h>
|
||||||
#include <LittleFS.h>
|
#include <LittleFS.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -199,6 +200,8 @@ bool PinMappingClass::init(const String& deviceMapping)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Utils::skipBom(f);
|
||||||
|
|
||||||
JsonDocument doc;
|
JsonDocument doc;
|
||||||
// Deserialize the JSON document
|
// Deserialize the JSON document
|
||||||
DeserializationError error = deserializeJson(doc, f);
|
DeserializationError error = deserializeJson(doc, f);
|
||||||
|
|||||||
@ -111,3 +111,15 @@ String Utils::generateMd5FromFile(String file)
|
|||||||
|
|
||||||
return md5.toString();
|
return md5.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Utils::skipBom(File& f)
|
||||||
|
{
|
||||||
|
// skip Byte Order Mask (BOM). valid JSON docs always start with '{' or '['.
|
||||||
|
while (f.available() > 0) {
|
||||||
|
int c = f.peek();
|
||||||
|
if (c == '{' || c == '[') {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
f.read();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user