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