JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
jxct_constants.h
См. документацию.
1#pragma once
2#ifdef TEST_BUILD
3#include "../test/stubs/esp32_stubs.h"
4#else
5#include <Arduino.h>
6#endif
7#include <stddef.h>
8#include <stdint.h>
9
16// ============================================================================
17// ВРЕМЕННЫЕ КОНСТАНТЫ (миллисекунды)
18// ============================================================================
19
20// Интервалы чтения и публикации
21constexpr unsigned long DEFAULT_SENSOR_READ_INTERVAL = 5000; // 5 секунд
22constexpr unsigned long DEFAULT_MQTT_PUBLISH_INTERVAL = 30000; // 30 секунд
23constexpr unsigned long DEFAULT_THINGSPEAK_INTERVAL = 60000; // 1 минута
24constexpr unsigned long DEFAULT_NTP_UPDATE_INTERVAL = 3600000; // 1 час
25
26// Таймауты и задержки - ОПТИМИЗИРОВАННЫЕ
27constexpr unsigned long MODBUS_CACHE_TIMEOUT = 3000; // 3 секунды (было 5) - более быстрый инвалидация кэша
28constexpr unsigned long MODBUS_RETRY_DELAY = 500; // 0.5 секунды (было 1) - быстрые повторы
29constexpr unsigned long DNS_CACHE_TTL = 180000; // 3 минуты (было 5) - более частые DNS запросы
30constexpr unsigned long MQTT_RECONNECT_INTERVAL = 3000; // 3 секунды (было 5) - быстрые переподключения
31constexpr unsigned long SENSOR_JSON_CACHE_TTL = 500; // 0.5 секунды (было 1) - более свежие данные
32
33// Системные интервалы
34constexpr unsigned long STATUS_PRINT_INTERVAL = 30000; // 30 секунд
35constexpr unsigned long JXCT_WATCHDOG_TIMEOUT_SEC = 30; // 30 секунд (избегаем конфликта)
36constexpr unsigned long JXCT_BUTTON_HOLD_TIME_MS = 2000; // 2 секунды (избегаем конфликта)
37
38// LED индикация
39constexpr unsigned long LED_BLINK_SLOW = 1000; // 1 секунда
40constexpr unsigned long LED_BLINK_NORMAL = 500; // 0.5 секунды
41constexpr unsigned long LED_BLINK_FAST = 100; // 0.1 секунды
42
43// ============================================================================
44// СЕТЕВЫЕ КОНСТАНТЫ
45// ============================================================================
46
47// Порты и адреса
48constexpr int DEFAULT_WEB_SERVER_PORT = 80;
49constexpr int DEFAULT_MQTT_PORT = 1883;
50constexpr int DEFAULT_DNS_PORT = 53;
51constexpr uint8_t DEFAULT_MODBUS_ADDRESS = 1;
52
53// Размеры буферов
54constexpr size_t MQTT_BUFFER_SIZE = 512;
55constexpr size_t JSON_BUFFER_SIZE = 256;
56constexpr size_t TOPIC_BUFFER_SIZE = 128;
57constexpr size_t CLIENT_ID_BUFFER_SIZE = 32;
58constexpr size_t HOSTNAME_BUFFER_SIZE = 64;
59
60// Лимиты подключений
61constexpr int WIFI_CONNECTION_ATTEMPTS = 20;
62constexpr int MQTT_CONNECTION_ATTEMPTS = 3;
63constexpr unsigned long WIFI_CONNECTION_TIMEOUT = 10000; // 10 секунд
64
65// ============================================================================
66// MODBUS КОНСТАНТЫ
67// ============================================================================
68
69// Параметры связи
70constexpr unsigned long MODBUS_BAUD_RATE = 9600;
71constexpr uint8_t MODBUS_DATA_BITS = 8;
72constexpr uint8_t MODBUS_STOP_BITS = 1;
73constexpr uint8_t MODBUS_PARITY = 0; // None
74
75// Повторы и таймауты
76constexpr uint8_t MODBUS_MAX_RETRIES = 3;
77constexpr unsigned long MODBUS_RESPONSE_TIMEOUT = 2000; // 2 секунды
78constexpr unsigned long MODBUS_FRAME_DELAY = 100; // 100 мс между кадрами
79
80// ============================================================================
81// ВАЛИДАЦИОННЫЕ КОНСТАНТЫ
82// ============================================================================
83
84// ЕДИНЫЕ ДИАПАЗОНЫ ЗНАЧЕНИЙ ДАТЧИКА JXCT 7-in-1 (официальная документация)
85// Используются во всех частях системы для унификации валидации
86constexpr float SENSOR_TEMP_MIN = -45.0F; // Минимальная температура датчика
87constexpr float SENSOR_TEMP_MAX = 115.0F; // Максимальная температура датчика
88constexpr float SENSOR_HUMIDITY_MIN = 0.0F; // Минимальная влажность
89constexpr float SENSOR_HUMIDITY_MAX = 100.0F; // Максимальная влажность
90constexpr float SENSOR_PH_MIN = 3.0F; // Минимальный pH (рабочий диапазон датчика)
91constexpr float SENSOR_PH_MAX = 9.0F; // Максимальный pH (рабочий диапазон датчика)
92constexpr uint16_t SENSOR_EC_MIN = 0; // Минимальная EC
93constexpr uint16_t SENSOR_EC_MAX = 10000; // Максимальная EC (рабочий диапазон датчика)
94constexpr uint16_t SENSOR_NPK_MIN = 0; // Минимальное значение NPK
95constexpr uint16_t SENSOR_NPK_MAX = 1999; // Максимальное значение NPK (рабочий диапазон датчика)
96
97// АЛИАСЫ ДЛЯ ОБРАТНОЙ СОВМЕСТИМОСТИ
98// Эти константы теперь ссылаются на основные для унификации
105
106// Диапазоны конфигурации
107constexpr unsigned long CONFIG_INTERVAL_MIN = 1000; // 1 секунда
108constexpr unsigned long CONFIG_INTERVAL_MAX = 3600000; // 1 час
109constexpr unsigned long CONFIG_THINGSPEAK_MIN = 15000; // 15 секунд (лимит API)
110constexpr unsigned long CONFIG_THINGSPEAK_MAX = 7200000; // 2 часа
111constexpr int CONFIG_MQTT_PORT_MIN = 1;
112constexpr int CONFIG_MQTT_PORT_MAX = 65535;
113
114// ============================================================================
115// АЛГОРИТМИЧЕСКИЕ КОНСТАНТЫ
116// ============================================================================
117
118// Скользящее среднее
119constexpr uint8_t MOVING_AVERAGE_WINDOW_MIN = 1;
120constexpr uint8_t MOVING_AVERAGE_WINDOW_MAX = 20;
121constexpr uint8_t MOVING_AVERAGE_WINDOW_DEFAULT = 5;
122
123// Дельта-фильтры (пороги изменений)
124constexpr float DEFAULT_DELTA_TEMPERATURE = 0.5F; // 0.5°C
125constexpr float DEFAULT_DELTA_HUMIDITY = 2.0F; // 2%
126constexpr float DEFAULT_DELTA_PH = 0.1F; // 0.1 pH
127constexpr float DEFAULT_DELTA_EC = 50.0F; // 50 µS/cm
128constexpr float DEFAULT_DELTA_NPK = 10.0F; // 10 mg/kg
129
130// Принудительная публикация
131constexpr uint8_t DEFAULT_FORCE_PUBLISH_CYCLES = 10; // Каждые 10 циклов
132
133// ============================================================================
134// УЛУЧШЕННАЯ СИСТЕМА ФИЛЬТРАЦИИ v3.10.0
135// ============================================================================
136
137// Экспоненциальное сглаживание (коэффициенты)
138constexpr float EXPONENTIAL_ALPHA_MIN = 0.1F; // Минимальный коэффициент (сильное сглаживание)
139constexpr float EXPONENTIAL_ALPHA_MAX = 0.9F; // Максимальный коэффициент (слабое сглаживание)
140constexpr float EXPONENTIAL_ALPHA_DEFAULT = 0.3F; // По умолчанию (баланс)
141
142// Адаптивные пороги выбросов (множители стандартного отклонения)
143constexpr float OUTLIER_THRESHOLD_MIN = 1.5F; // Минимальный порог (1.5σ)
144constexpr float OUTLIER_THRESHOLD_MAX = 4.0F; // Максимальный порог (4.0σ)
145constexpr float OUTLIER_THRESHOLD_DEFAULT = 2.5F; // По умолчанию (2.5σ)
146
147// Фильтр Калмана (параметры)
148constexpr float KALMAN_PROCESS_NOISE = 0.01F; // Шум процесса
149constexpr float KALMAN_MEASUREMENT_NOISE = 0.1F; // Шум измерений
150constexpr float KALMAN_INITIAL_UNCERTAINTY = 1.0F; // Начальная неопределенность
151
152// Калибровочные фильтры (компенсация систематических ошибок)
153constexpr float CALIBRATION_OFFSET_MAX = 10.0F; // Максимальное смещение калибровки
154constexpr float CALIBRATION_DRIFT_MAX = 0.1F; // Максимальный дрифт за час
155
156// Статистические параметры
157constexpr uint8_t STATISTICS_WINDOW_SIZE = 20; // Окно для статистики
158constexpr float MIN_STANDARD_DEVIATION = 0.01F; // Минимальное стандартное отклонение
159
160// ============================================================================
161// СТРОКОВЫЕ КОНСТАНТЫ
162// ============================================================================
163
164// WiFi
165constexpr const char* JXCT_WIFI_AP_PASS = "12345678"; // Избегаем конфликта
166constexpr const char* WIFI_HOSTNAME_PREFIX = "jxct-";
167
168// MQTT топики
169constexpr const char* MQTT_TOPIC_STATE = "/state";
170constexpr const char* MQTT_TOPIC_STATUS = "/status";
171constexpr const char* MQTT_TOPIC_COMMAND = "/command";
172constexpr const char* MQTT_TOPIC_AVAILABILITY = "/availability";
173
174// Home Assistant
175constexpr const char* HASS_DISCOVERY_PREFIX = "homeassistant/sensor/";
176constexpr const char* HASS_CONFIG_SUFFIX = "/config";
177
178// HTTP заголовки
179constexpr const char* HTTP_CACHE_CONTROL = "no-cache, no-store, must-revalidate";
180constexpr const char* HTTP_CONTENT_TYPE_HTML = "text/html; charset=utf-8";
181constexpr const char* HTTP_CONTENT_TYPE_JSON = "application/json";
182constexpr const char* HTTP_CONTENT_TYPE_PLAIN = "text/plain";
183
184// ============================================================================
185// GPIO КОНСТАНТЫ
186// ============================================================================
187
188constexpr int RESET_BUTTON_PIN = 0; // GPIO0
189constexpr int JXCT_STATUS_LED_PIN = 2; // GPIO2 (встроенный LED) - избегаем конфликта
190
191// Modbus RS485 пины
192constexpr int MODBUS_RX_PIN = 16; // GPIO16 - прием данных
193constexpr int MODBUS_TX_PIN = 17; // GPIO17 - передача данных
194constexpr int MODBUS_DE_PIN = 4; // GPIO4 - управление передачей (Driver Enable)
195constexpr int MODBUS_RE_PIN = 5; // GPIO5 - управление приемом (Receiver Enable)
196
197// ============================================================================
198// ПРОИЗВОДИТЕЛЬНОСТЬ И ПАМЯТЬ
199// ============================================================================
200
201// Размеры стеков задач (в байтах)
202constexpr size_t SENSOR_TASK_STACK_SIZE = 4096;
203constexpr size_t RESET_BUTTON_TASK_STACK_SIZE = 2048;
204constexpr size_t WEB_SERVER_TASK_STACK_SIZE = 8192;
205
206// Приоритеты задач
207constexpr UBaseType_t SENSOR_TASK_PRIORITY = 2;
208constexpr UBaseType_t RESET_BUTTON_TASK_PRIORITY = 1;
209constexpr UBaseType_t WEB_SERVER_TASK_PRIORITY = 1;
210
211// Лимиты памяти
212constexpr size_t MAX_CONFIG_JSON_SIZE = 2048; // 2KB для конфигурации
213constexpr size_t MAX_SENSOR_JSON_SIZE = 512; // 512B для данных датчика
214constexpr size_t MAX_LOG_MESSAGE_SIZE = 256; // 256B для лог сообщений
215
216// ============================================================================
217// ОТЛАДКА И ЛОГИРОВАНИЕ
218// ============================================================================
219
220// Уровни логирования (определены в logger.h, но дублируем)
221constexpr int LOG_LEVEL_ERROR = 0;
222constexpr int LOG_LEVEL_WARN = 1;
223constexpr int LOG_LEVEL_INFO = 2;
224constexpr int LOG_LEVEL_DEBUG = 3;
225
226// Отладочные флаги
227#ifdef DEBUG_BUILD
228constexpr bool DEBUG_MODBUS_ENABLED = true;
229constexpr bool DEBUG_MQTT_ENABLED = true;
230constexpr bool DEBUG_WIFI_ENABLED = true;
231#else
232constexpr bool DEBUG_MODBUS_ENABLED = false;
233constexpr bool DEBUG_MQTT_ENABLED = false;
234constexpr bool DEBUG_WIFI_ENABLED = false;
235#endif
236
237// ============================================================================
238// UI И ФОРМАТИРОВАНИЕ
239// ============================================================================
240
241// Размеры разделителей и отступов
242constexpr int DEFAULT_SEPARATOR_LENGTH = 60; // Длина разделителя по умолчанию
243constexpr int JXCT_REDIRECT_DELAY_MS = 1000; // Задержка редиректа (мс)
244
245// ============================================================================
246// HTTP КОДЫ И ЗАГОЛОВКИ
247// ============================================================================
248
249// HTTP статус коды
250constexpr int HTTP_OK = 200;
251constexpr int HTTP_FORBIDDEN = 403;
252constexpr int HTTP_REDIRECT_TEMPORARY = 302;
253constexpr int HTTP_REDIRECT_PERMANENT = 307;
254
255// HTTP статус коды (дополнительные)
256constexpr int HTTP_BAD_REQUEST = 400;
257constexpr int HTTP_SEE_OTHER = 303;
258
259// ============================================================================
260// JSON И ДАННЫЕ
261// ============================================================================
262
263// Размеры JSON документов
264constexpr int JSON_DOC_SMALL = 512;
265constexpr int JSON_DOC_MEDIUM = 1024;
266
267// ============================================================================
268// ВРЕМЯ И КОНВЕРСИИ
269// ============================================================================
270
271// Константы для конвертации времени
272constexpr unsigned long SECONDS_IN_MINUTE = 60;
273constexpr unsigned long MINUTES_IN_HOUR = 60;
274constexpr unsigned long HOURS_IN_DAY = 24;
275constexpr unsigned long MILLISECONDS_IN_SECOND = 1000;
276
277// Задержки для веб-интерфейса
278constexpr int WEB_OPERATION_DELAY_MS = 2000; // Задержка после операций (мс)
279
280// ============================================================================
281// ВЕРСИОНИРОВАНИЕ И СОВМЕСТИМОСТЬ
282// ============================================================================
283
284// API версии
285constexpr const char* API_VERSION_V1 = "v1";
286constexpr const char* API_VERSION_CURRENT = API_VERSION_V1;
287
288// Совместимость конфигурации
289constexpr int CONFIG_VERSION_CURRENT = 1;
291
292// OTA константы (подготовка к v2.5.0)
293constexpr size_t OTA_BUFFER_SIZE = 1024; // 1KB буфер для OTA
294constexpr unsigned long OTA_TIMEOUT = 300000; // 5 минут таймаут
295constexpr const char* OTA_UPDATE_URL_TEMPLATE = "https://api.github.com/repos/%s/%s/releases/latest";
296
297// ============================================================================
298// ОТЧЁТЫ И МЕТРИКИ
299// ============================================================================
300constexpr unsigned long REPORT_CACHE_TTL_MS = 300000; // 5 минут
301constexpr int JSON_DOC_LARGE = 2048;
303constexpr int TESTS_TOTAL_COUNT = 13;
304constexpr int TESTS_PASSED_COUNT = 13;
305constexpr float TEST_SUCCESS_RATE_MAX = 100.0F;
306constexpr const char* TEST_TIMESTAMP_EXAMPLE = "2025-01-22T12:00:00Z";
307constexpr int TECH_DEBT_CODE_SMELLS = 66;
308constexpr int TECH_DEBT_DUPLICATED_LINES = 933;
309constexpr int TECH_DEBT_SECURITY_HOTSPOTS = 134;
310constexpr float TECH_DEBT_DEBT_RATIO = 1.93F;
311constexpr float TECH_DEBT_COVERAGE = 70.8F;
312constexpr unsigned long REPORTS_AUTOREFRESH_INTERVAL_MS = 300000; // 5 минут
313
314// ============================================================================
315// КОНФИГУРАЦИЯ И ВАЛИДАЦИЯ
316// ============================================================================
317
318// Лимиты интервалов конфигурации (в миллисекундах)
319constexpr unsigned long CONFIG_SENSOR_INTERVAL_MIN_MS = 1000; // 1 сек
320constexpr unsigned long CONFIG_SENSOR_INTERVAL_MAX_MS = 300000; // 5 мин
321constexpr unsigned long CONFIG_MQTT_INTERVAL_MIN_MS = 60000; // 1 мин
322constexpr unsigned long CONFIG_MQTT_INTERVAL_MAX_MS = 3600000; // 60 мин
323constexpr unsigned long CONFIG_THINGSPEAK_INTERVAL_MIN_MS = 300000; // 5 мин
324constexpr unsigned long CONFIG_THINGSPEAK_INTERVAL_MAX_MS = 7200000; // 120 мин
325constexpr unsigned long CONFIG_WEB_INTERVAL_MIN_MS = 1000; // 1 сек
326constexpr unsigned long CONFIG_WEB_INTERVAL_MAX_MS = 60000; // 1 мин
327
328// Обратная совместимость (для веб-интерфейса)
337
338// Лимиты дельта-фильтров
339constexpr float CONFIG_DELTA_HUMIDITY_MIN = 0.5F;
340constexpr float CONFIG_DELTA_HUMIDITY_MAX = 10.0F;
341constexpr float CONFIG_DELTA_PH_MIN = 0.01F;
342constexpr float CONFIG_DELTA_PH_MAX = 1.0F;
343constexpr int CONFIG_DELTA_EC_MIN = 10;
344constexpr int CONFIG_DELTA_EC_MAX = 500;
345constexpr int CONFIG_DELTA_NPK_MIN = 1;
346constexpr int CONFIG_DELTA_NPK_MAX = 50;
347
348// Лимиты алгоритмических параметров
349constexpr int CONFIG_AVG_WINDOW_MIN = 5;
350constexpr int CONFIG_AVG_WINDOW_MAX = 15;
351constexpr int CONFIG_FORCE_CYCLES_MIN = 5;
352constexpr int CONFIG_FORCE_CYCLES_MAX = 50;
353
354// Шаги для input полей
355constexpr float CONFIG_STEP_HUMIDITY = 0.5F;
356constexpr float CONFIG_STEP_PH = 0.01F;
357
358// Конвертации времени
359constexpr unsigned long CONVERSION_SEC_TO_MS = 1000;
360constexpr unsigned long CONVERSION_MIN_TO_MS = 60000;
361
362// Размеры JSON документов для конфигурации
363constexpr size_t CONFIG_JSON_DOC_SIZE = 2048;
364constexpr size_t CONFIG_JSON_ROOT_SIZE = 1024;
365
366// Размеры JSON документов для отчетов
367constexpr size_t REPORTS_JSON_DOC_SIZE = 1024;
368constexpr size_t REPORTS_JSON_DOC_LARGE_SIZE = 2048;
369
370// Размеры JSON документов для OTA
371constexpr size_t OTA_JSON_DOC_SIZE = 256;
372
373// ============================================================================
374// OTA ОБНОВЛЕНИЯ
375// ============================================================================
376
377// Пороги и интервалы для OTA
378constexpr unsigned long OTA_PROGRESS_LOG_THRESHOLD = 65536; // 64KB
379constexpr unsigned long OTA_DELAY_MS = 2000;
380constexpr unsigned long OTA_UPDATE_INTERVAL_MS = 1000;
381
382// Процентные значения для стадий OTA
383constexpr int OTA_STAGE_CONNECTION = 25;
384constexpr int OTA_STAGE_DOWNLOAD = 50;
385constexpr int OTA_STAGE_VERIFY = 75;
386constexpr int OTA_STAGE_FINISH = 90;
387constexpr int OTA_STAGE_INSTALL = 95;
388constexpr int OTA_STAGE_CHECK = 30;
389constexpr int OTA_STAGE_DEFAULT = 25;
390
391// ============================================================================
392// ТЕСТОВЫЕ ДАННЫЕ
393// ============================================================================
394
395// Базовые значения для тестовых данных
396constexpr float TEST_DATA_TEMP_BASE = 20.0F;
397constexpr float TEST_DATA_HUM_BASE = 60.0F;
398constexpr int TEST_DATA_EC_BASE = 1200;
399constexpr float TEST_DATA_PH_BASE = 6.3F;
400constexpr int TEST_DATA_NPK_BASE = 800; // ИСПРАВЛЕНО: соответствует реальным данным датчика JXCT
401
402// Вариации для тестовых данных
403constexpr float TEST_DATA_HUM_VARIATION = 10.0F;
404constexpr int TEST_DATA_EC_VARIATION = 300;
406constexpr int TEST_DATA_EC_VARIATION_MIN = 100;
407
408// Факторы для NPK
409constexpr float TEST_DATA_NPK_FACTOR = 6.5F; // ИСПРАВЛЕНО: больше не используется, датчик JXCT выдаёт данные в мг/кг
410constexpr float TEST_DATA_NPK_INCREASE_N = 1.20F; // +20%
411constexpr float TEST_DATA_NPK_INCREASE_P = 1.15F; // +15%
412constexpr float TEST_DATA_NPK_INCREASE_K = 1.10F; // +10%
413constexpr float TEST_DATA_NPK_DECREASE_N = 0.90F; // -10%
414constexpr float TEST_DATA_NPK_DECREASE_P = 1.05F; // +5%
415constexpr float TEST_DATA_NPK_DECREASE_K = 1.25F; // +25%
416
417// ============================================================================
418// ДОПОЛНИТЕЛЬНЫЕ КОНСТАНТЫ
419// ============================================================================
420
421// HTTP статус коды (дополнительные)
422constexpr int HTTP_REDIRECT = 302;
423
424// Пороги для отчетов
425constexpr int SUCCESS_RATE_THRESHOLD = 90;
426
427// Интервалы
428// constexpr unsigned long REPORTS_AUTOREFRESH_INTERVAL_MS = 300000; // 5 минут - уже определено выше
429
430// NTP и время
431constexpr unsigned long NTP_TIMESTAMP_2000 = 946684800; // 2000-01-01 00:00:00 UTC
432
433// Валидация сенсорных данных - теперь используется единая система выше
434
435// Размеры JSON документов
436constexpr size_t SENSOR_JSON_DOC_SIZE = 1024; // Увеличено для рекомендаций по культурам
constexpr int OTA_STAGE_DOWNLOAD
Definition jxct_constants.h:384
constexpr unsigned long CONFIG_SENSOR_INTERVAL_MIN_MS
Definition jxct_constants.h:319
constexpr const char * MQTT_TOPIC_COMMAND
Definition jxct_constants.h:171
constexpr uint8_t STATISTICS_WINDOW_SIZE
Definition jxct_constants.h:157
constexpr float DEFAULT_DELTA_EC
Definition jxct_constants.h:127
constexpr int LOG_LEVEL_ERROR
Definition jxct_constants.h:221
constexpr int WEB_OPERATION_DELAY_MS
Definition jxct_constants.h:278
constexpr float CONFIG_DELTA_HUMIDITY_MAX
Definition jxct_constants.h:340
constexpr int LOG_LEVEL_DEBUG
Definition jxct_constants.h:224
constexpr int CONFIG_AVG_WINDOW_MAX
Definition jxct_constants.h:350
constexpr float MIN_STANDARD_DEVIATION
Definition jxct_constants.h:158
constexpr int DEFAULT_DNS_PORT
Definition jxct_constants.h:50
constexpr unsigned long LED_BLINK_FAST
Definition jxct_constants.h:41
constexpr float DEFAULT_DELTA_HUMIDITY
Definition jxct_constants.h:125
constexpr float TEST_DATA_HUM_BASE
Definition jxct_constants.h:397
constexpr unsigned long LED_BLINK_NORMAL
Definition jxct_constants.h:40
constexpr int CONFIG_MQTT_INTERVAL_MAX_MIN
Definition jxct_constants.h:332
constexpr unsigned long CONFIG_MQTT_INTERVAL_MIN_MS
Definition jxct_constants.h:321
constexpr int TESTS_PASSED_COUNT
Definition jxct_constants.h:304
constexpr float TEST_DATA_TEMP_BASE
Definition jxct_constants.h:396
constexpr uint8_t MODBUS_PARITY
Definition jxct_constants.h:73
constexpr int TEST_DATA_EC_BASE
Definition jxct_constants.h:398
constexpr unsigned long CONFIG_MQTT_INTERVAL_MAX_MS
Definition jxct_constants.h:322
constexpr float CONFIG_STEP_HUMIDITY
Definition jxct_constants.h:355
constexpr int CONFIG_DELTA_NPK_MIN
Definition jxct_constants.h:345
constexpr int HTTP_OK
Definition jxct_constants.h:250
constexpr size_t OTA_BUFFER_SIZE
Definition jxct_constants.h:293
constexpr int TEST_SUCCESS_RATE_THRESHOLD
Definition jxct_constants.h:302
constexpr int CONFIG_MQTT_PORT_MAX
Definition jxct_constants.h:112
constexpr uint16_t SENSOR_EC_MIN
Definition jxct_constants.h:92
constexpr size_t CONFIG_JSON_ROOT_SIZE
Definition jxct_constants.h:364
constexpr int JSON_DOC_LARGE
Definition jxct_constants.h:301
constexpr float HUM_MIN_VALID
Definition jxct_constants.h:101
constexpr UBaseType_t RESET_BUTTON_TASK_PRIORITY
Definition jxct_constants.h:208
constexpr int CONFIG_DELTA_EC_MIN
Definition jxct_constants.h:343
constexpr unsigned long MINUTES_IN_HOUR
Definition jxct_constants.h:273
constexpr const char * HASS_DISCOVERY_PREFIX
Definition jxct_constants.h:175
constexpr uint8_t DEFAULT_FORCE_PUBLISH_CYCLES
Definition jxct_constants.h:131
constexpr float TECH_DEBT_COVERAGE
Definition jxct_constants.h:311
constexpr float HUM_MAX_VALID
Definition jxct_constants.h:102
constexpr int MODBUS_RX_PIN
Definition jxct_constants.h:192
constexpr unsigned long MODBUS_CACHE_TIMEOUT
Definition jxct_constants.h:27
constexpr float SENSOR_TEMP_MAX
Definition jxct_constants.h:87
constexpr float TEST_DATA_NPK_DECREASE_P
Definition jxct_constants.h:414
constexpr unsigned long REPORTS_AUTOREFRESH_INTERVAL_MS
Definition jxct_constants.h:312
constexpr int HTTP_REDIRECT_PERMANENT
Definition jxct_constants.h:253
constexpr size_t JSON_BUFFER_SIZE
Definition jxct_constants.h:55
constexpr int OTA_STAGE_VERIFY
Definition jxct_constants.h:385
constexpr unsigned long LED_BLINK_SLOW
Definition jxct_constants.h:39
constexpr float TEST_DATA_NPK_INCREASE_P
Definition jxct_constants.h:411
constexpr float CONFIG_DELTA_PH_MIN
Definition jxct_constants.h:341
constexpr int CONFIG_SENSOR_INTERVAL_MIN_SEC
Definition jxct_constants.h:329
constexpr int RESET_BUTTON_PIN
Definition jxct_constants.h:188
constexpr unsigned long DEFAULT_NTP_UPDATE_INTERVAL
Definition jxct_constants.h:24
constexpr float CONFIG_STEP_PH
Definition jxct_constants.h:356
constexpr size_t SENSOR_JSON_DOC_SIZE
Definition jxct_constants.h:436
constexpr const char * HASS_CONFIG_SUFFIX
Definition jxct_constants.h:176
constexpr float EXPONENTIAL_ALPHA_MIN
Definition jxct_constants.h:138
constexpr unsigned long OTA_TIMEOUT
Definition jxct_constants.h:294
constexpr const char * JXCT_WIFI_AP_PASS
Definition jxct_constants.h:165
constexpr int DEFAULT_WEB_SERVER_PORT
Definition jxct_constants.h:48
constexpr int JXCT_REDIRECT_DELAY_MS
Definition jxct_constants.h:243
constexpr int TESTS_TOTAL_COUNT
Definition jxct_constants.h:303
constexpr size_t SENSOR_TASK_STACK_SIZE
Definition jxct_constants.h:202
constexpr unsigned long DNS_CACHE_TTL
Definition jxct_constants.h:29
constexpr int TECH_DEBT_SECURITY_HOTSPOTS
Definition jxct_constants.h:309
constexpr float TECH_DEBT_DEBT_RATIO
Definition jxct_constants.h:310
constexpr int CONFIG_FORCE_CYCLES_MIN
Definition jxct_constants.h:351
constexpr unsigned long SENSOR_JSON_CACHE_TTL
Definition jxct_constants.h:31
constexpr int DEFAULT_MQTT_PORT
Definition jxct_constants.h:49
constexpr unsigned long STATUS_PRINT_INTERVAL
Definition jxct_constants.h:34
constexpr float TEST_DATA_NPK_FACTOR
Definition jxct_constants.h:409
constexpr uint8_t MODBUS_MAX_RETRIES
Definition jxct_constants.h:76
constexpr int OTA_STAGE_CHECK
Definition jxct_constants.h:388
constexpr size_t CONFIG_JSON_DOC_SIZE
Definition jxct_constants.h:363
constexpr int HTTP_FORBIDDEN
Definition jxct_constants.h:251
constexpr int JSON_DOC_SMALL
Definition jxct_constants.h:264
constexpr bool DEBUG_MODBUS_ENABLED
Definition jxct_constants.h:232
constexpr size_t REPORTS_JSON_DOC_SIZE
Definition jxct_constants.h:367
constexpr int MQTT_CONNECTION_ATTEMPTS
Definition jxct_constants.h:62
constexpr float EXPONENTIAL_ALPHA_DEFAULT
Definition jxct_constants.h:140
constexpr unsigned long DEFAULT_SENSOR_READ_INTERVAL
Definition jxct_constants.h:21
constexpr float TEST_SUCCESS_RATE_MAX
Definition jxct_constants.h:305
constexpr int OTA_STAGE_FINISH
Definition jxct_constants.h:386
constexpr unsigned long MODBUS_RETRY_DELAY
Definition jxct_constants.h:28
constexpr const char * MQTT_TOPIC_STATE
Definition jxct_constants.h:169
constexpr const char * TEST_TIMESTAMP_EXAMPLE
Definition jxct_constants.h:306
constexpr float SENSOR_PH_MAX
Definition jxct_constants.h:91
constexpr unsigned long CONVERSION_MIN_TO_MS
Definition jxct_constants.h:360
constexpr int OTA_STAGE_CONNECTION
Definition jxct_constants.h:383
constexpr unsigned long DEFAULT_MQTT_PUBLISH_INTERVAL
Definition jxct_constants.h:22
constexpr float TEMP_MAX_VALID
Definition jxct_constants.h:100
constexpr const char * HTTP_CONTENT_TYPE_PLAIN
Definition jxct_constants.h:182
constexpr int HTTP_SEE_OTHER
Definition jxct_constants.h:257
constexpr int LOG_LEVEL_WARN
Definition jxct_constants.h:222
constexpr unsigned long REPORT_CACHE_TTL_MS
Definition jxct_constants.h:300
constexpr uint8_t MOVING_AVERAGE_WINDOW_MAX
Definition jxct_constants.h:120
constexpr uint8_t DEFAULT_MODBUS_ADDRESS
Definition jxct_constants.h:51
constexpr const char * MQTT_TOPIC_AVAILABILITY
Definition jxct_constants.h:172
constexpr float KALMAN_MEASUREMENT_NOISE
Definition jxct_constants.h:149
constexpr unsigned long JXCT_WATCHDOG_TIMEOUT_SEC
Definition jxct_constants.h:35
constexpr float DEFAULT_DELTA_NPK
Definition jxct_constants.h:128
constexpr float EXPONENTIAL_ALPHA_MAX
Definition jxct_constants.h:139
constexpr float TEST_DATA_PH_BASE
Definition jxct_constants.h:399
constexpr float CONFIG_DELTA_PH_MAX
Definition jxct_constants.h:342
constexpr float TEST_DATA_NPK_INCREASE_N
Definition jxct_constants.h:410
constexpr uint16_t SENSOR_NPK_MIN
Definition jxct_constants.h:94
constexpr int CONFIG_AVG_WINDOW_MIN
Definition jxct_constants.h:349
constexpr int CONFIG_MQTT_PORT_MIN
Definition jxct_constants.h:111
constexpr int HTTP_REDIRECT
Definition jxct_constants.h:422
constexpr unsigned long OTA_PROGRESS_LOG_THRESHOLD
Definition jxct_constants.h:378
constexpr unsigned long MILLISECONDS_IN_SECOND
Definition jxct_constants.h:275
constexpr int MODBUS_TX_PIN
Definition jxct_constants.h:193
constexpr unsigned long CONVERSION_SEC_TO_MS
Definition jxct_constants.h:359
constexpr unsigned long MODBUS_FRAME_DELAY
Definition jxct_constants.h:78
constexpr int OTA_STAGE_INSTALL
Definition jxct_constants.h:387
constexpr int JXCT_STATUS_LED_PIN
Definition jxct_constants.h:189
constexpr uint8_t MOVING_AVERAGE_WINDOW_DEFAULT
Definition jxct_constants.h:121
constexpr size_t OTA_JSON_DOC_SIZE
Definition jxct_constants.h:371
constexpr int CONFIG_WEB_INTERVAL_MAX_SEC
Definition jxct_constants.h:336
constexpr const char * API_VERSION_V1
Definition jxct_constants.h:285
constexpr int TEST_DATA_EC_VARIATION
Definition jxct_constants.h:404
constexpr float SENSOR_HUMIDITY_MIN
Definition jxct_constants.h:88
constexpr const char * HTTP_CONTENT_TYPE_HTML
Definition jxct_constants.h:180
constexpr int TEST_DATA_EC_VARIATION_MIN
Definition jxct_constants.h:406
constexpr uint16_t SENSOR_EC_MAX
Definition jxct_constants.h:93
constexpr float OUTLIER_THRESHOLD_DEFAULT
Definition jxct_constants.h:145
constexpr int CONFIG_DELTA_EC_MAX
Definition jxct_constants.h:344
constexpr unsigned long CONFIG_THINGSPEAK_MIN
Definition jxct_constants.h:109
constexpr float KALMAN_INITIAL_UNCERTAINTY
Definition jxct_constants.h:150
constexpr int TECH_DEBT_CODE_SMELLS
Definition jxct_constants.h:307
constexpr float SENSOR_HUMIDITY_MAX
Definition jxct_constants.h:89
constexpr int TEST_DATA_EC_VARIATION_SMALL
Definition jxct_constants.h:405
constexpr size_t REPORTS_JSON_DOC_LARGE_SIZE
Definition jxct_constants.h:368
constexpr int CONFIG_WEB_INTERVAL_MIN_SEC
Definition jxct_constants.h:335
constexpr unsigned long SECONDS_IN_MINUTE
Definition jxct_constants.h:272
constexpr size_t CLIENT_ID_BUFFER_SIZE
Definition jxct_constants.h:57
constexpr float TEST_DATA_NPK_INCREASE_K
Definition jxct_constants.h:412
constexpr int MODBUS_DE_PIN
Definition jxct_constants.h:194
constexpr float SENSOR_PH_MIN
Definition jxct_constants.h:90
constexpr int CONFIG_MQTT_INTERVAL_MIN_MIN
Definition jxct_constants.h:331
constexpr int NPK_MAX_VALID
Definition jxct_constants.h:104
constexpr UBaseType_t WEB_SERVER_TASK_PRIORITY
Definition jxct_constants.h:209
constexpr size_t MAX_CONFIG_JSON_SIZE
Definition jxct_constants.h:212
constexpr unsigned long WIFI_CONNECTION_TIMEOUT
Definition jxct_constants.h:63
constexpr UBaseType_t SENSOR_TASK_PRIORITY
Definition jxct_constants.h:207
constexpr float CONFIG_DELTA_HUMIDITY_MIN
Definition jxct_constants.h:339
constexpr uint8_t MOVING_AVERAGE_WINDOW_MIN
Definition jxct_constants.h:119
constexpr float TEST_DATA_NPK_DECREASE_K
Definition jxct_constants.h:415
constexpr unsigned long MODBUS_BAUD_RATE
Definition jxct_constants.h:70
constexpr size_t WEB_SERVER_TASK_STACK_SIZE
Definition jxct_constants.h:204
constexpr float CALIBRATION_DRIFT_MAX
Definition jxct_constants.h:154
constexpr bool DEBUG_MQTT_ENABLED
Definition jxct_constants.h:233
constexpr float SENSOR_TEMP_MIN
Definition jxct_constants.h:86
constexpr unsigned long NTP_TIMESTAMP_2000
Definition jxct_constants.h:431
constexpr size_t MAX_LOG_MESSAGE_SIZE
Definition jxct_constants.h:214
constexpr int DEFAULT_SEPARATOR_LENGTH
Definition jxct_constants.h:242
constexpr int CONFIG_VERSION_MIN_SUPPORTED
Definition jxct_constants.h:290
constexpr size_t TOPIC_BUFFER_SIZE
Definition jxct_constants.h:56
constexpr size_t HOSTNAME_BUFFER_SIZE
Definition jxct_constants.h:58
constexpr float DEFAULT_DELTA_PH
Definition jxct_constants.h:126
constexpr uint8_t MODBUS_DATA_BITS
Definition jxct_constants.h:71
constexpr const char * OTA_UPDATE_URL_TEMPLATE
Definition jxct_constants.h:295
constexpr uint16_t SENSOR_NPK_MAX
Definition jxct_constants.h:95
constexpr int HTTP_REDIRECT_TEMPORARY
Definition jxct_constants.h:252
constexpr unsigned long CONFIG_WEB_INTERVAL_MIN_MS
Definition jxct_constants.h:325
constexpr uint8_t MODBUS_STOP_BITS
Definition jxct_constants.h:72
constexpr float TEST_DATA_HUM_VARIATION
Definition jxct_constants.h:403
constexpr unsigned long CONFIG_THINGSPEAK_INTERVAL_MIN_MS
Definition jxct_constants.h:323
constexpr size_t MAX_SENSOR_JSON_SIZE
Definition jxct_constants.h:213
constexpr const char * MQTT_TOPIC_STATUS
Definition jxct_constants.h:170
constexpr unsigned long CONFIG_WEB_INTERVAL_MAX_MS
Definition jxct_constants.h:326
constexpr int CONFIG_DELTA_NPK_MAX
Definition jxct_constants.h:346
constexpr float OUTLIER_THRESHOLD_MAX
Definition jxct_constants.h:144
constexpr float DEFAULT_DELTA_TEMPERATURE
Definition jxct_constants.h:124
constexpr int CONFIG_THINGSPEAK_INTERVAL_MAX_MIN
Definition jxct_constants.h:334
constexpr int JSON_DOC_MEDIUM
Definition jxct_constants.h:265
constexpr float KALMAN_PROCESS_NOISE
Definition jxct_constants.h:148
constexpr unsigned long CONFIG_INTERVAL_MIN
Definition jxct_constants.h:107
constexpr int EC_MAX_VALID
Definition jxct_constants.h:103
constexpr int WIFI_CONNECTION_ATTEMPTS
Definition jxct_constants.h:61
constexpr int HTTP_BAD_REQUEST
Definition jxct_constants.h:256
constexpr int TEST_DATA_NPK_BASE
Definition jxct_constants.h:400
constexpr unsigned long JXCT_BUTTON_HOLD_TIME_MS
Definition jxct_constants.h:36
constexpr float OUTLIER_THRESHOLD_MIN
Definition jxct_constants.h:143
constexpr int TECH_DEBT_DUPLICATED_LINES
Definition jxct_constants.h:308
constexpr int CONFIG_SENSOR_INTERVAL_MAX_SEC
Definition jxct_constants.h:330
constexpr const char * WIFI_HOSTNAME_PREFIX
Definition jxct_constants.h:166
constexpr unsigned long CONFIG_INTERVAL_MAX
Definition jxct_constants.h:108
constexpr int CONFIG_THINGSPEAK_INTERVAL_MIN_MIN
Definition jxct_constants.h:333
constexpr int OTA_STAGE_DEFAULT
Definition jxct_constants.h:389
constexpr int LOG_LEVEL_INFO
Definition jxct_constants.h:223
constexpr const char * HTTP_CONTENT_TYPE_JSON
Definition jxct_constants.h:181
constexpr float TEMP_MIN_VALID
Definition jxct_constants.h:99
constexpr const char * API_VERSION_CURRENT
Definition jxct_constants.h:286
constexpr unsigned long CONFIG_THINGSPEAK_MAX
Definition jxct_constants.h:110
constexpr float CALIBRATION_OFFSET_MAX
Definition jxct_constants.h:153
constexpr size_t MQTT_BUFFER_SIZE
Definition jxct_constants.h:54
constexpr unsigned long MQTT_RECONNECT_INTERVAL
Definition jxct_constants.h:30
constexpr unsigned long CONFIG_THINGSPEAK_INTERVAL_MAX_MS
Definition jxct_constants.h:324
constexpr unsigned long OTA_UPDATE_INTERVAL_MS
Definition jxct_constants.h:380
constexpr const char * HTTP_CACHE_CONTROL
Definition jxct_constants.h:179
constexpr int MODBUS_RE_PIN
Definition jxct_constants.h:195
constexpr int CONFIG_FORCE_CYCLES_MAX
Definition jxct_constants.h:352
constexpr float TEST_DATA_NPK_DECREASE_N
Definition jxct_constants.h:413
constexpr int SUCCESS_RATE_THRESHOLD
Definition jxct_constants.h:425
constexpr size_t RESET_BUTTON_TASK_STACK_SIZE
Definition jxct_constants.h:203
constexpr unsigned long DEFAULT_THINGSPEAK_INTERVAL
Definition jxct_constants.h:23
constexpr int CONFIG_VERSION_CURRENT
Definition jxct_constants.h:289
constexpr unsigned long OTA_DELAY_MS
Definition jxct_constants.h:379
constexpr unsigned long MODBUS_RESPONSE_TIMEOUT
Definition jxct_constants.h:77
constexpr bool DEBUG_WIFI_ENABLED
Definition jxct_constants.h:234
constexpr unsigned long HOURS_IN_DAY
Definition jxct_constants.h:274
constexpr unsigned long CONFIG_SENSOR_INTERVAL_MAX_MS
Definition jxct_constants.h:320