2021-12-22 23:33:47 +01:00
|
|
|
|
#pragma once
|
2023-06-19 18:04:00 +02:00
|
|
|
|
#include "BuildTime.h"
|
2021-12-22 23:33:47 +01:00
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// Версия прошивки
|
2024-01-20 22:32:31 +01:00
|
|
|
|
#define FIRMWARE_VERSION 456
|
2022-02-16 00:53:52 +01:00
|
|
|
|
|
2022-10-12 15:48:05 +03:00
|
|
|
|
#ifdef esp8266_1mb_ota
|
|
|
|
|
|
#define FIRMWARE_NAME "esp8266_1mb_ota"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef esp8266_1mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp8266_1mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2023-04-03 20:40:19 +03:00
|
|
|
|
#ifdef esp8266_2mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp8266_2mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef esp8266_2mb_ota
|
|
|
|
|
|
#define FIRMWARE_NAME "esp8266_2mb_ota"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2022-02-16 00:53:52 +01:00
|
|
|
|
#ifdef esp8266_4mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp8266_4mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2023-09-09 12:19:22 +03:00
|
|
|
|
#ifdef esp8266_16mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp8266_16mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2022-02-16 00:53:52 +01:00
|
|
|
|
#ifdef esp32_4mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp32_4mb"
|
|
|
|
|
|
#endif
|
2021-12-22 23:33:47 +01:00
|
|
|
|
|
2023-10-02 21:29:02 +03:00
|
|
|
|
#ifdef esp32cam_4mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp32cam_4mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2023-09-09 12:19:22 +03:00
|
|
|
|
#ifdef esp32_16mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp32_16mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2023-05-27 02:02:33 +03:00
|
|
|
|
#ifdef esp32s2_4mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp32s2_4mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2023-10-17 22:21:13 +03:00
|
|
|
|
#ifdef esp32c3m_4mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp32c3m_4mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef esp32s3_16mb
|
|
|
|
|
|
#define FIRMWARE_NAME "esp32s3_16mb"
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
2023-06-25 23:34:05 +02:00
|
|
|
|
// Размер буфера json
|
2023-10-11 01:46:12 +02:00
|
|
|
|
#define JSON_BUFFER_SIZE 4096 // держим 2 кб не меняем
|
2023-06-25 23:38:51 +02:00
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
WEB_SOCKETS_FRAME_SIZE создан для того что бы не загружать оперативку.
|
|
|
|
|
|
Эта технология передаёт в сокеты большие файлы по частям.
|
|
|
|
|
|
Чем меньше этот фрейм тем теоретически лучше.
|
|
|
|
|
|
Но и сильно малый он тоже быть не должен.
|
|
|
|
|
|
Я опытным путём установил что размер 1024 является оптимальным. Можно так же поставить 2048
|
|
|
|
|
|
*/
|
2023-06-25 23:34:05 +02:00
|
|
|
|
#define WEB_SOCKETS_FRAME_SIZE 1024
|
2021-12-22 23:33:47 +01:00
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// #define LOOP_DEBUG
|
2022-10-12 03:14:55 +02:00
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// выбор сервера
|
|
|
|
|
|
// #define ASYNC_WEB_SERVER
|
|
|
|
|
|
// #define ASYNC_WEB_SOCKETS
|
2022-11-23 19:41:49 +01:00
|
|
|
|
#define STANDARD_WEB_SERVER
|
2021-12-23 23:47:13 +01:00
|
|
|
|
#define STANDARD_WEB_SOCKETS
|
|
|
|
|
|
|
2022-02-13 16:13:51 +01:00
|
|
|
|
#define UDP_ENABLED
|
|
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// #define REST_FILE_OPERATIONS
|
2021-12-25 01:52:25 +01:00
|
|
|
|
|
2022-01-10 23:37:21 +01:00
|
|
|
|
#define MQTT_RECONNECT_INTERVAL 20000
|
|
|
|
|
|
|
2022-09-13 00:56:34 +02:00
|
|
|
|
#define TELEMETRY_UPDATE_INTERVAL_MIN 60
|
|
|
|
|
|
|
2022-09-14 18:06:40 +02:00
|
|
|
|
#define USE_LITTLEFS true
|
2021-12-23 17:48:01 +01:00
|
|
|
|
|
2023-10-11 01:46:12 +02:00
|
|
|
|
#define START_DATETIME 1661990400 // 01.09.2022 00:00:00 константа для сокращения unix time
|
2022-08-25 00:45:17 +02:00
|
|
|
|
|
2022-08-18 14:49:11 +02:00
|
|
|
|
#define MIN_DATETIME 1575158400
|
|
|
|
|
|
#define LEAP_YEAR(Y) (((1970 + Y) > 0) && !((1970 + Y) % 4) && (((1970 + Y) % 100) || !((1970 + Y) % 400)))
|
|
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// задачи таскера
|
2023-10-11 01:46:12 +02:00
|
|
|
|
enum TimerTask_t {
|
|
|
|
|
|
WIFI_SCAN,
|
2023-10-07 02:01:15 +02:00
|
|
|
|
WIFI_MQTT_CONNECTION_CHECK,
|
|
|
|
|
|
TIME,
|
|
|
|
|
|
TIME_SYNC,
|
|
|
|
|
|
UPTIME,
|
2023-10-11 01:46:12 +02:00
|
|
|
|
UDP, // UDPP
|
|
|
|
|
|
TIMES, // периодические секундные проверки
|
2023-10-07 02:01:15 +02:00
|
|
|
|
PTASK,
|
|
|
|
|
|
ST,
|
2023-10-11 01:46:12 +02:00
|
|
|
|
END
|
|
|
|
|
|
};
|
2022-01-10 23:37:21 +01:00
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// задачи которые надо протащить через loop
|
2022-01-10 23:37:21 +01:00
|
|
|
|
enum NotAsyncActions {
|
|
|
|
|
|
do_ZERO,
|
|
|
|
|
|
do_MQTTPARAMSCHANGED,
|
|
|
|
|
|
do_LAST,
|
2022-02-19 23:42:24 +01:00
|
|
|
|
};
|
|
|
|
|
|
|
2023-06-09 01:11:15 +02:00
|
|
|
|
// состояния обновления
|
2023-10-11 01:46:12 +02:00
|
|
|
|
enum UpdateStates { UPDATE_COMPLETED, UPDATE_FAILED, PATH_ERROR };
|
2022-09-23 02:24:50 +02:00
|
|
|
|
|
|
|
|
|
|
enum distination {
|
|
|
|
|
|
TO_MQTT,
|
|
|
|
|
|
TO_WS,
|
|
|
|
|
|
TO_MQTT_WS,
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2023-06-19 18:04:00 +02:00
|
|
|
|
#define WS_BROADCAST -1
|