mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 14:12:16 +03:00
Merge branch 'ver4dev' into ver4dev
This commit is contained in:
@@ -32,6 +32,10 @@
|
||||
#define FIRMWARE_NAME "esp32_4mb"
|
||||
#endif
|
||||
|
||||
#ifdef esp32_4mb3f
|
||||
#define FIRMWARE_NAME "esp32_4mb3f"
|
||||
#endif
|
||||
|
||||
#ifdef esp32cam_4mb
|
||||
#define FIRMWARE_NAME "esp32cam_4mb"
|
||||
#endif
|
||||
@@ -52,6 +56,18 @@
|
||||
#define FIRMWARE_NAME "esp32s3_16mb"
|
||||
#endif
|
||||
|
||||
#ifdef bk7231n
|
||||
#define FIRMWARE_NAME "bk7231n"
|
||||
#endif
|
||||
|
||||
#ifdef esp32c6_4mb
|
||||
#define FIRMWARE_NAME "esp32c6_4mb"
|
||||
#endif
|
||||
|
||||
#ifdef esp32c6_8mb
|
||||
#define FIRMWARE_NAME "esp32c6_8mb"
|
||||
#endif
|
||||
|
||||
// Размер буфера json
|
||||
#define JSON_BUFFER_SIZE 4096 // держим 2 кб не меняем
|
||||
|
||||
@@ -72,8 +88,9 @@ WEB_SOCKETS_FRAME_SIZE создан для того что бы не загру
|
||||
#define STANDARD_WEB_SERVER
|
||||
#define STANDARD_WEB_SOCKETS
|
||||
|
||||
//#ifndef LIBRETINY
|
||||
#define UDP_ENABLED
|
||||
|
||||
//#endif
|
||||
// #define REST_FILE_OPERATIONS
|
||||
|
||||
#define MQTT_RECONNECT_INTERVAL 20000
|
||||
@@ -91,22 +108,26 @@ WEB_SOCKETS_FRAME_SIZE создан для того что бы не загру
|
||||
enum TimerTask_t {
|
||||
WIFI_SCAN,
|
||||
WIFI_MQTT_CONNECTION_CHECK,
|
||||
#ifndef ESP8266
|
||||
WIFI_CONN,
|
||||
#endif
|
||||
TIME,
|
||||
TIME_SYNC,
|
||||
UPTIME,
|
||||
UDP, // UDPP
|
||||
// TIME_SYNC, // не используется
|
||||
// UPTIME, // не используется
|
||||
UDPt, // UDPP
|
||||
TIMES, // периодические секундные проверки
|
||||
PTASK,
|
||||
ST,
|
||||
PiWS,
|
||||
END
|
||||
};
|
||||
|
||||
// задачи которые надо протащить через loop
|
||||
enum NotAsyncActions {
|
||||
do_ZERO,
|
||||
do_MQTTPARAMSCHANGED,
|
||||
do_LAST,
|
||||
};
|
||||
// задачи которые надо протащить через loop // не используется
|
||||
// enum NotAsyncActions {
|
||||
// do_ZERO,
|
||||
// do_MQTTPARAMSCHANGED,
|
||||
// do_LAST,
|
||||
// };
|
||||
|
||||
// состояния обновления
|
||||
enum UpdateStates { UPDATE_COMPLETED, UPDATE_FAILED, PATH_ERROR };
|
||||
@@ -114,7 +135,7 @@ enum UpdateStates { UPDATE_COMPLETED, UPDATE_FAILED, PATH_ERROR };
|
||||
enum distination {
|
||||
TO_MQTT,
|
||||
TO_WS,
|
||||
TO_MQTT_WS,
|
||||
TO_MQTT_WS
|
||||
};
|
||||
|
||||
#define WS_BROADCAST -1
|
||||
// #define WS_BROADCAST -1 // не используется
|
||||
|
||||
34
include/DebugTrace.h
Normal file
34
include/DebugTrace.h
Normal file
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
// В папке toolchchain с которым собирались
|
||||
// (Для esp32 например %%USERPROFILE%/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin)
|
||||
// из командной строки Windows (cmd) запустить файл c параметрами:
|
||||
// xtensa-esp32-elf-addr2line.exe -pfiaC -e Путь_к_файлу/firmware.elf Стэк_адресов_из_сообщения
|
||||
// %%USERPROFILE%/.platformio/packages/toolchain-xtensa-esp32@8.4.0+2021r2-patch5/bin xtensa-esp32-elf-addr2line.exe -pfiaC -e .pio/build/esp32_4mb3f/firmware.elf Стэк_адресов
|
||||
#include "Global.h"
|
||||
#if defined(ESP32) && !defined(esp32c3m_4mb) && !defined(esp32c6_4mb) && !defined(esp32c6_8mb)
|
||||
#define RESTART_DEBUG_INFO
|
||||
#endif
|
||||
#if defined(RESTART_DEBUG_INFO)
|
||||
#define CONFIG_RESTART_DEBUG_STACK_DEPTH 15
|
||||
typedef struct {
|
||||
size_t heap_total;
|
||||
size_t heap_free;
|
||||
size_t heap_free_min;
|
||||
time_t heap_min_time;
|
||||
uint32_t backtrace[CONFIG_RESTART_DEBUG_STACK_DEPTH];
|
||||
} re_restart_debug_t;
|
||||
__NOINIT_ATTR static int8_t bootloop_panic_count;
|
||||
|
||||
void IRAM_ATTR debugUpdate();
|
||||
#endif // RESTART_DEBUG_INFO
|
||||
|
||||
|
||||
|
||||
extern "C" void __real_esp_panic_handler(void*);
|
||||
void printDebugTrace();
|
||||
void sendDebugTraceAndFreeMemory(bool);
|
||||
|
||||
void startWatchDog();
|
||||
//extern "C" bool verifyRollbackLater();
|
||||
void verifyFirmware();
|
||||
@@ -1,13 +1,15 @@
|
||||
#pragma once
|
||||
#include "Global.h"
|
||||
|
||||
#ifdef ESP8266
|
||||
#if defined (ESP8266) || defined(LIBRETINY)
|
||||
// эта библиотека встроена в ядро
|
||||
#include "ESPAsyncUDP.h"
|
||||
#else
|
||||
#elif defined(ESP32)
|
||||
#include "AsyncUDP.h"
|
||||
#endif
|
||||
#ifndef LIBRETINY
|
||||
extern AsyncUDP asyncUdp;
|
||||
#endif
|
||||
|
||||
extern const String getThisDevice();
|
||||
extern void addThisDeviceToList();
|
||||
|
||||
@@ -6,4 +6,4 @@ extern std::list<IoTItem*> IoTItems; // вектор ссылок базово
|
||||
|
||||
extern void configure(String path);
|
||||
void clearConfigure();
|
||||
extern IoTItem* myIoTItem;
|
||||
// extern IoTItem* myIoTItem; // экономим память, используется в одном месте
|
||||
|
||||
@@ -15,6 +15,18 @@ extern FS* filesystem;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(LIBRETINY)
|
||||
#include <FS.h>
|
||||
|
||||
#include "LittleFS.h"
|
||||
|
||||
#define FileFS LittleFS
|
||||
#define FS_NAME "LittleFS_LT"
|
||||
#define FILE_READ "r"
|
||||
#define FILE_WRITE "w"
|
||||
#define FILE_APPEND "a"
|
||||
#endif
|
||||
|
||||
#ifdef ESP8266
|
||||
#if USE_LITTLEFS
|
||||
#include "LittleFS.h"
|
||||
@@ -39,6 +51,7 @@ extern void globalVarsSync();
|
||||
// extern String getParamsJson();
|
||||
|
||||
extern void syncSettingsFlashJson();
|
||||
void resetSettingsFlashByPanic();
|
||||
extern void syncValuesFlashJson();
|
||||
|
||||
extern const String getChipId();
|
||||
|
||||
@@ -9,6 +9,15 @@
|
||||
#include <PubSubClient.h>
|
||||
#include <list>
|
||||
|
||||
#ifdef LIBRETINY
|
||||
#include <vector>
|
||||
#include <typedef.h>
|
||||
#ifdef STANDARD_WEB_SERVER
|
||||
#include <WebServer.h>
|
||||
#endif
|
||||
#include <HTTPClient.h>
|
||||
#endif
|
||||
|
||||
#ifdef ESP32
|
||||
#include "WiFi.h"
|
||||
#include <HTTPClient.h>
|
||||
@@ -22,6 +31,7 @@
|
||||
|
||||
#ifdef ASYNC_WEB_SERVER
|
||||
#include <ESPAsyncWebServer.h>
|
||||
#include "AsyncWebServer.h"
|
||||
#endif
|
||||
|
||||
#ifdef STANDARD_WEB_SERVER
|
||||
@@ -50,7 +60,7 @@
|
||||
#include "utils/StringUtils.h"
|
||||
#include "PeriodicTasks.h"
|
||||
#include "classes/IoTGpio.h"
|
||||
|
||||
#include "classes/IoTDiscovery.h"
|
||||
/*********************************************************************************************************************
|
||||
*****************************************глобальные объекты классов***************************************************
|
||||
**********************************************************************************************************************/
|
||||
@@ -60,6 +70,9 @@ extern IoTItem* rtcItem;
|
||||
extern IoTItem* tlgrmItem;
|
||||
extern IoTBench* benchLoadItem;
|
||||
extern IoTBench* benchTaskItem;
|
||||
extern IoTDiscovery* HADiscovery;
|
||||
extern IoTDiscovery* HOMEdDiscovery;
|
||||
|
||||
|
||||
extern TickerScheduler ts;
|
||||
extern WiFiClient espClient;
|
||||
@@ -77,6 +90,9 @@ extern ESP8266HTTPUpdateServer httpUpdater;
|
||||
#ifdef ESP32
|
||||
extern WebServer HTTP;
|
||||
#endif
|
||||
#ifdef LIBRETINY
|
||||
extern WebServer HTTP;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef STANDARD_WEB_SOCKETS
|
||||
@@ -108,6 +124,7 @@ extern int mqttPort;
|
||||
extern String mqttPrefix;
|
||||
extern String mqttUser;
|
||||
extern String mqttPass;
|
||||
extern String nameId;
|
||||
|
||||
extern unsigned long mqttUptime;
|
||||
extern unsigned long flashWriteNumber;
|
||||
@@ -146,6 +163,8 @@ extern Time_t _time_local;
|
||||
extern Time_t _time_utc;
|
||||
extern bool _time_isTrust;
|
||||
|
||||
#define WEBSOCKETS_CLIENT_MAX 5
|
||||
extern int8_t ws_clients[WEBSOCKETS_CLIENT_MAX];
|
||||
// extern unsigned long loopPeriod;
|
||||
|
||||
// extern DynamicJsonDocument settingsFlashJsonDoc;
|
||||
|
||||
@@ -29,8 +29,8 @@ bool publishChartFileToMqtt(String path, String id, int maxCount);
|
||||
void publishWidgets();
|
||||
|
||||
void mqttCallback(char* topic, uint8_t* payload, size_t length);
|
||||
void handleMqttStatus(bool send);
|
||||
void handleMqttStatus(bool send, int state);
|
||||
//void handleMqttStatus(bool send);
|
||||
void handleMqttStatus(bool send, int state = -1);
|
||||
|
||||
const String getStateStr(int e);
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ extern bool handleFileRead(String path);
|
||||
extern void handleFileUpload();
|
||||
extern void handleFileDelete();
|
||||
extern void handleFileCreate();
|
||||
extern void handleLocalOTA();
|
||||
extern void handleLocalOTA_Handler();
|
||||
extern void handleFileList();
|
||||
//void printDirectory(File dir, String& out);
|
||||
extern void handleStatus();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
// #include "Upgrade.h"
|
||||
#ifdef ESP8266
|
||||
// #include "ESP8266.h"
|
||||
#else
|
||||
#elif ESP32
|
||||
#include <HTTPUpdate.h>
|
||||
#endif
|
||||
|
||||
@@ -22,7 +22,7 @@ extern bool upgradeFS(String path);
|
||||
extern bool upgradeBuild(String path);
|
||||
extern void restartEsp();
|
||||
|
||||
extern const String getBinPath(String file);
|
||||
extern const String getBinPath();
|
||||
extern void putUserDataToRam();
|
||||
extern void saveUserDataToFlash();
|
||||
extern void saveUpdeteStatus(String key, int val);
|
||||
@@ -19,6 +19,6 @@ void periodicWsSend();
|
||||
|
||||
void sendFileToWsByFrames(const String& filename, const String& header, const String& json, int client_id, size_t frameSize);
|
||||
void sendStringToWs(const String& header, String& payload, int client_id);
|
||||
|
||||
void disconnectWSClient(uint8_t client_id);
|
||||
void sendDeviceList(uint8_t num);
|
||||
int getNumWSClients();
|
||||
36
include/classes/IoTDiscovery.h
Normal file
36
include/classes/IoTDiscovery.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#pragma once
|
||||
#include <Arduino.h>
|
||||
#include "Global.h"
|
||||
#include "classes/IoTItem.h"
|
||||
|
||||
class IoTDiscovery : public IoTItem
|
||||
{
|
||||
public:
|
||||
IoTDiscovery(const String ¶meters);
|
||||
~IoTDiscovery();
|
||||
|
||||
// inline bool isDiscoveryHomed() { return HOMEd; }
|
||||
|
||||
// inline bool isDiscoveryHA() { return HA; }
|
||||
|
||||
String HOMEdTopic = "";
|
||||
String HATopic = "";
|
||||
//String ChipId = "";
|
||||
|
||||
virtual void mqttSubscribeDiscovery();
|
||||
|
||||
virtual void publishStatusHOMEd(const String &topic, const String &data);
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
boolean publishRetain(const String &topic, const String &data);
|
||||
virtual void getlayoutHA();
|
||||
virtual void deleteFromHOMEd();
|
||||
virtual void getlayoutHOMEd();
|
||||
|
||||
//bool HOMEd = false;
|
||||
//bool HA = false;
|
||||
//String HOMEdTopic;
|
||||
|
||||
};
|
||||
@@ -4,6 +4,7 @@
|
||||
//#include "classes/IoTBench.h"
|
||||
|
||||
class IoTBench;
|
||||
class IoTDiscovery;
|
||||
|
||||
struct IoTValue {
|
||||
float valD = 0;
|
||||
@@ -58,8 +59,10 @@ class IoTItem {
|
||||
//virtual IoTItem* getCAMDriver();
|
||||
virtual IoTItem* getTlgrmDriver();
|
||||
//virtual IoTBench* getBenchmark();
|
||||
virtual IoTBench*getBenchmarkTask();
|
||||
virtual IoTBench*getBenchmarkLoad();
|
||||
virtual IoTBench* getBenchmarkTask();
|
||||
virtual IoTBench* getBenchmarkLoad();
|
||||
virtual IoTDiscovery* getHADiscovery();
|
||||
virtual IoTDiscovery* getHOMEdDiscovery();
|
||||
virtual unsigned long getRtcUnixTime();
|
||||
|
||||
// делаем доступным модулям отправку сообщений в телеграм
|
||||
|
||||
@@ -40,7 +40,7 @@ boolean isDigitDotCommaStr(const String& str);
|
||||
|
||||
String prettyBytes(size_t size);
|
||||
|
||||
String uint64ToString(uint64_t input, uint8_t base = 10);
|
||||
String uint64ToStringIoTM(uint64_t input, uint8_t base = 10);
|
||||
|
||||
void cleanString(String& str);
|
||||
|
||||
|
||||
@@ -4,8 +4,20 @@
|
||||
#include "MqttClient.h"
|
||||
boolean isNetworkActive();
|
||||
uint8_t getNumAPClients();
|
||||
void routerConnect();
|
||||
bool startAPMode();
|
||||
#ifdef ESP8266
|
||||
void routerConnect();
|
||||
boolean RouterFind(std::vector<String> jArray);
|
||||
#else
|
||||
void handleScanResults();
|
||||
void WiFiUtilsItit();
|
||||
void connectToNextNetwork();
|
||||
void checkConnection();
|
||||
void ScanAsync();
|
||||
|
||||
#endif
|
||||
uint8_t RSSIquality();
|
||||
extern void wifiSignalInit();
|
||||
//extern void wifiSignalInit();
|
||||
#ifdef LIBRETINY
|
||||
String httpGetString(HTTPClient &http);
|
||||
#endif
|
||||
Reference in New Issue
Block a user