mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 14:12:16 +03:00
добавил новые json утилиты
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
#pragma once
|
||||
#include "Global.h"
|
||||
#ifdef ASYNC_WEB_SERVER
|
||||
void asyncWebServerInit();
|
||||
#endif
|
||||
|
||||
#ifdef ASYNC_WEB_SOCKETS
|
||||
extern AsyncWebSocket ws;
|
||||
extern AsyncEventSource events;
|
||||
void asyncWebServerInit();
|
||||
void asyncWebSocketsInit();
|
||||
void onWsEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len);
|
||||
#endif
|
||||
|
||||
@@ -4,17 +4,13 @@
|
||||
#define FIRMWARE_VERSION 400
|
||||
|
||||
//Размер буфера json
|
||||
#define JSON_BUFFER_SIZE 4096
|
||||
#define JSON_BUFFER_SIZE 1024
|
||||
|
||||
//выбор сервера (или асинхронный, или обычный)
|
||||
//выбор сервера
|
||||
//#define ASYNC_WEB_SERVER
|
||||
//#define ASYNC_WEB_SOCKETS
|
||||
#define STANDARD_WEB_SERVER
|
||||
|
||||
//если мы используем стандартный веб сервер то нужна библиотека веб сокетов
|
||||
//если асинхронный то плагин сокетов включен в него
|
||||
#ifdef STANDARD_WEB_SERVER
|
||||
#define STANDARD_WEB_SOCKETS
|
||||
#endif
|
||||
|
||||
#ifdef esp8266_4mb
|
||||
#define USE_LITTLEFS true
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#include "WiFi.h"
|
||||
#include <HTTPClient.h>
|
||||
#include <HTTPUpdate.h>
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef ESP8266
|
||||
@@ -76,4 +75,8 @@ extern WebSocketsServer standWebSocket;
|
||||
**********************************************************************************************************************/
|
||||
extern String settingsFlashJson;
|
||||
extern String paramsFlashJson;
|
||||
extern String paramsHeapJson;
|
||||
extern String paramsHeapJson;
|
||||
|
||||
extern DynamicJsonDocument settingsFlashJsonDoc;
|
||||
extern DynamicJsonDocument paramsFlashJsonDoc;
|
||||
extern DynamicJsonDocument paramsHeapJsonDoc;
|
||||
@@ -1,13 +1,11 @@
|
||||
#pragma once
|
||||
#include "Global.h"
|
||||
#include "Web.h"
|
||||
|
||||
#ifdef STANDARD_WEB_SERVER
|
||||
extern void standWebServerInit();
|
||||
|
||||
extern void standWebServerFiles();
|
||||
extern bool handleFileRead(String path);
|
||||
extern String getContentType(String filename);
|
||||
|
||||
#ifdef REST_FILE_OPERATIONS
|
||||
extern void handleFileUpload();
|
||||
extern void handleFileDelete();
|
||||
|
||||
@@ -2,20 +2,23 @@
|
||||
|
||||
#include "Global.h"
|
||||
|
||||
String jsonReadStr(String& json, String name);
|
||||
int jsonReadInt(String& json, String name);
|
||||
boolean jsonReadBool(String& json, String name);
|
||||
extern String jsonReadStrDoc(DynamicJsonDocument& doc, String name);
|
||||
extern void jsonWriteStrDoc(DynamicJsonDocument& doc, String name, String value);
|
||||
|
||||
String jsonWriteStr(String& json, String name, String value);
|
||||
String jsonWriteInt(String& json, String name, int value);
|
||||
String jsonWriteFloat(String& json, String name, float value);
|
||||
String jsonWriteBool(String& json, String name, boolean value);
|
||||
extern String jsonWriteStr(String& json, String name, String value);
|
||||
extern String jsonWriteInt(String& json, String name, int value);
|
||||
extern String jsonWriteFloat(String& json, String name, float value);
|
||||
extern String jsonWriteBool(String& json, String name, boolean value);
|
||||
|
||||
bool jsonRead(String& json, String key, String& value);
|
||||
bool jsonRead(String& json, String key, bool& value);
|
||||
bool jsonRead(String& json, String key, int& value);
|
||||
extern bool jsonRead(String& json, String key, String& value);
|
||||
extern bool jsonRead(String& json, String key, bool& value);
|
||||
extern bool jsonRead(String& json, String key, int& value);
|
||||
|
||||
bool jsonWriteStr_(String& json, String name, String value);
|
||||
bool jsonWriteBool_(String& json, String name, bool value);
|
||||
bool jsonWriteInt_(String& json, String name, int value);
|
||||
bool jsonWriteFloat_(String& json, String name, float value);
|
||||
extern String jsonReadStr(String& json, String name);
|
||||
extern int jsonReadInt(String& json, String name);
|
||||
extern boolean jsonReadBool(String& json, String name);
|
||||
|
||||
extern bool jsonWriteStr_(String& json, String name, String value);
|
||||
extern bool jsonWriteBool_(String& json, String name, bool value);
|
||||
extern bool jsonWriteInt_(String& json, String name, int value);
|
||||
extern bool jsonWriteFloat_(String& json, String name, float value);
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
#include "AsyncWebServer.h"
|
||||
#ifdef ASYNC_WEB_SERVER
|
||||
AsyncWebSocket ws("/ws");
|
||||
AsyncEventSource events("/events");
|
||||
|
||||
void asyncWebServerInit() {
|
||||
String login = jsonReadStr(settingsFlashJson, "weblogin");
|
||||
@@ -70,6 +68,12 @@ void asyncWebServerInit() {
|
||||
|
||||
SerialPrint("i", F("WEB"), F("WebServer Init"));
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ASYNC_WEB_SOCKETS
|
||||
|
||||
AsyncWebSocket ws("/ws");
|
||||
AsyncEventSource events("/events");
|
||||
|
||||
void asyncWebSocketsInit() {
|
||||
ws.onEvent(onWsEvent);
|
||||
|
||||
@@ -30,4 +30,8 @@ WebSocketsServer standWebSocket = WebSocketsServer(81);
|
||||
|
||||
String settingsFlashJson = "{}"; //переменная в которой хранятся все настройки, находится в оперативной памяти и синхронизированна с flash памятью
|
||||
String paramsFlashJson = "{}"; //переменная в которой хранятся все параметры, находится в оперативной памяти и синхронизированна с flash памятью
|
||||
String paramsHeapJson = "{}"; //переменная в которой хранятся все параметры, находится в оперативной памяти только
|
||||
String paramsHeapJson = "{}"; //переменная в которой хранятся все параметры, находится в оперативной памяти только
|
||||
|
||||
DynamicJsonDocument settingsFlashJsonDoc(JSON_BUFFER_SIZE);
|
||||
DynamicJsonDocument paramsFlashJsonDoc(JSON_BUFFER_SIZE);
|
||||
DynamicJsonDocument paramsHeapJsonDoc(JSON_BUFFER_SIZE);
|
||||
@@ -1,5 +1,8 @@
|
||||
#include "StandWebServer.h"
|
||||
#ifdef STANDARD_WEB_SERVER
|
||||
|
||||
File fsUploadFile;
|
||||
|
||||
void standWebServerInit() {
|
||||
// Кэшировать файлы для быстрой работы
|
||||
HTTP.serveStatic("/css/", FileFS, "/css/", "max-age=31536000"); // кеширование на 1 год
|
||||
@@ -19,11 +22,7 @@ void standWebServerInit() {
|
||||
// httpUpdater.setup(&HTTP);
|
||||
// Запускаем HTTP сервер
|
||||
HTTP.begin();
|
||||
}
|
||||
|
||||
File fsUploadFile;
|
||||
|
||||
void standWebServerFiles() {
|
||||
#ifdef REST_FILE_OPERATIONS
|
||||
SPIFFS.begin();
|
||||
{
|
||||
@@ -224,7 +223,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length)
|
||||
|
||||
case WStype_BIN: {
|
||||
Serial.printf("[%u] get binary length: %u\n", num, length);
|
||||
//hexdump(payload, length);
|
||||
// hexdump(payload, length);
|
||||
|
||||
// send message to client
|
||||
// standWebSocket.sendBIN(num, payload, length);
|
||||
@@ -246,5 +245,4 @@ void hexdump(const void* mem, uint32_t len, uint8_t cols = 16) {
|
||||
Serial.printf("\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
13
src/main.cpp
13
src/main.cpp
@@ -12,25 +12,26 @@ void setup() {
|
||||
//синхронизация глобальных переменных с flash
|
||||
globalVarsSync();
|
||||
|
||||
//подключаемся к роутеру
|
||||
routerConnect();
|
||||
|
||||
//инициализация асинхронного веб сервера и веб сокетов
|
||||
#ifdef ASYNC_WEB_SERVER
|
||||
asyncWebServerInit();
|
||||
#endif
|
||||
#ifdef ASYNC_WEB_SOCKETS
|
||||
asyncWebSocketsInit();
|
||||
#endif
|
||||
|
||||
//инициализация стандартного веб сервера
|
||||
//инициализация стандартного веб сервера и веб сокетов
|
||||
#ifdef STANDARD_WEB_SERVER
|
||||
standWebServerInit();
|
||||
standWebServerFiles();
|
||||
#endif
|
||||
|
||||
#ifdef STANDARD_WEB_SOCKETS
|
||||
standWebSocketsInit();
|
||||
#endif
|
||||
|
||||
//подключаемся к роутеру
|
||||
routerConnect();
|
||||
|
||||
//создаем объект класса выгружающего json массив из файла
|
||||
myStreamJsonArray = new StreamJsonArray;
|
||||
|
||||
//выводим остаток оперативной памяти после старта
|
||||
|
||||
@@ -2,26 +2,13 @@
|
||||
|
||||
#include "Utils/FileUtils.h"
|
||||
|
||||
// depricated======================================================================
|
||||
String jsonReadStr(String& json, String name) {
|
||||
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
|
||||
DeserializationError error = deserializeJson(doc, json);
|
||||
if (error) SerialPrint("EE", F("jsonRead"), error.f_str());
|
||||
//================================================================================
|
||||
String jsonReadStrDoc(DynamicJsonDocument& doc, String name) {
|
||||
return doc[name].as<String>();
|
||||
}
|
||||
|
||||
boolean jsonReadBool(String& json, String name) {
|
||||
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
|
||||
DeserializationError error = deserializeJson(doc, json);
|
||||
if (error) SerialPrint("EE", F("jsonRead"), error.f_str());
|
||||
return doc[name].as<bool>();
|
||||
}
|
||||
|
||||
int jsonReadInt(String& json, String name) {
|
||||
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
|
||||
DeserializationError error = deserializeJson(doc, json);
|
||||
if (error) SerialPrint("EE", F("jsonRead"), error.f_str());
|
||||
return doc[name].as<int>();
|
||||
void jsonWriteStrDoc(DynamicJsonDocument& doc, String name, String value) {
|
||||
doc[name] = value;
|
||||
}
|
||||
|
||||
// new==============================================================================
|
||||
@@ -69,6 +56,29 @@ bool jsonRead(String& json, String key, int& value) {
|
||||
value = doc[key].as<int>();
|
||||
return ret;
|
||||
}
|
||||
|
||||
// depricated======================================================================
|
||||
String jsonReadStr(String& json, String name) {
|
||||
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
|
||||
DeserializationError error = deserializeJson(doc, json);
|
||||
if (error) SerialPrint("EE", F("jsonRead"), error.f_str());
|
||||
return doc[name].as<String>();
|
||||
}
|
||||
|
||||
boolean jsonReadBool(String& json, String name) {
|
||||
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
|
||||
DeserializationError error = deserializeJson(doc, json);
|
||||
if (error) SerialPrint("EE", F("jsonRead"), error.f_str());
|
||||
return doc[name].as<bool>();
|
||||
}
|
||||
|
||||
int jsonReadInt(String& json, String name) {
|
||||
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
|
||||
DeserializationError error = deserializeJson(doc, json);
|
||||
if (error) SerialPrint("EE", F("jsonRead"), error.f_str());
|
||||
return doc[name].as<int>();
|
||||
}
|
||||
|
||||
// depricated========================================================================
|
||||
String jsonWriteStr(String& json, String name, String value) {
|
||||
DynamicJsonDocument doc(JSON_BUFFER_SIZE);
|
||||
|
||||
Reference in New Issue
Block a user