JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
validation_utils.h
См. документацию.
1#pragma once
2
9#ifdef TEST_BUILD
10#include "../test/stubs/esp32_stubs.h"
11#else
12#include <Arduino.h>
13#endif
14#include <vector>
15#include "modbus_sensor.h" // Для SensorData
16
17// ============================================================================
18// СТРУКТУРЫ РЕЗУЛЬТАТОВ ВАЛИДАЦИИ
19// ============================================================================
20
25{
26 bool isValid;
27 String message;
28};
29
34{
35 String field;
36 String message;
37};
38
43{
44 bool isValid;
45 std::vector<ValidationError> errors;
46};
47
52{
53 bool isValid;
54 std::vector<ValidationError> errors;
55};
56
57// ============================================================================
58// СТРУКТУРЫ ДАННЫХ (forward declarations)
59// ============================================================================
60
61// Упрощенная структура конфигурации для валидации
63{
64 String ssid;
65 String password;
67 String mqttServer;
71 unsigned long sensorReadInterval;
72 unsigned long mqttPublishInterval;
73 unsigned long thingspeakInterval;
74 unsigned long ntpUpdateInterval;
75};
76
77// SensorData определен в modbus_sensor.h
78
79// ============================================================================
80// ФУНКЦИИ ВАЛИДАЦИИ КОНФИГУРАЦИИ
81// ============================================================================
82
88ValidationResult validateSSID(const String& ssid);
89
95ValidationResult validatePassword(const String& password);
96
102ValidationResult validateMQTTServer(const String& server);
103
110
116ValidationResult validateThingSpeakAPIKey(const String& apiKey);
117
126ValidationResult validateInterval(unsigned long interval, unsigned long min_val, unsigned long max_val,
127 const char* name);
128
134ValidationResult validateSensorReadInterval(unsigned long interval);
135
141ValidationResult validateMQTTPublishInterval(unsigned long interval);
142
148ValidationResult validateThingSpeakInterval(unsigned long interval);
149
155ValidationResult validateNTPInterval(unsigned long interval);
156
157// ============================================================================
158// ФУНКЦИИ ВАЛИДАЦИИ ДАННЫХ ДАТЧИКА
159// ============================================================================
160
169ValidationResult validateRange(float value, float min_val, float max_val, const char* field_name);
170
176ValidationResult validateTemperature(float temperature);
177
183ValidationResult validateHumidity(float humidity);
184
191
198
205ValidationResult validateNPK(float value, const char* nutrient);
206
207// ============================================================================
208// КОМПЛЕКСНАЯ ВАЛИДАЦИЯ
209// ============================================================================
210
217ConfigValidationResult validateFullConfig(const ConfigData& config, bool checkRequired = true);
218
225
226// ============================================================================
227// УТИЛИТЫ ВАЛИДАЦИИ
228// ============================================================================
229
235bool isValidIPAddress(const String& ip);
236
242bool isValidHostname(const String& hostname);
243
250
257
258// ============================================================================
259// ЛОГИРОВАНИЕ ВАЛИДАЦИИ
260// ============================================================================
261
267void logValidationResult(const ConfigValidationResult& result, const char* context);
268
274void logSensorValidationResult(const SensorValidationResult& result, const char* context);
Config config
Definition config.cpp:38
Definition validation_utils.h:63
bool thingSpeakEnabled
Definition validation_utils.h:69
String password
Definition validation_utils.h:65
unsigned long ntpUpdateInterval
Definition validation_utils.h:74
String thingSpeakAPIKey
Definition validation_utils.h:70
unsigned long mqttPublishInterval
Definition validation_utils.h:72
String mqttServer
Definition validation_utils.h:67
bool mqttEnabled
Definition validation_utils.h:66
int mqttPort
Definition validation_utils.h:68
unsigned long sensorReadInterval
Definition validation_utils.h:71
unsigned long thingspeakInterval
Definition validation_utils.h:73
String ssid
Definition validation_utils.h:64
Результат валидации конфигурации
Definition validation_utils.h:43
std::vector< ValidationError > errors
Definition validation_utils.h:45
bool isValid
Definition validation_utils.h:44
Данные датчика
Definition sensor_types.h:77
Результат валидации данных датчика
Definition validation_utils.h:52
std::vector< ValidationError > errors
Definition validation_utils.h:54
bool isValid
Definition validation_utils.h:53
Ошибка валидации с указанием поля
Definition validation_utils.h:34
String message
Definition validation_utils.h:36
String field
Definition validation_utils.h:35
Результат валидации одного поля
Definition validation_utils.h:25
String message
Definition validation_utils.h:27
bool isValid
Definition validation_utils.h:26
bool isValidIPAddress(const String &ip)
Проверка валидности IP адреса
Definition validation_utils.cpp:475
ValidationResult validateMQTTPublishInterval(unsigned long interval)
Валидация интервала публикации MQTT.
Definition validation_utils.cpp:254
SensorValidationResult validateFullSensorData(const SensorData &data)
Полная валидация данных датчика
Definition validation_utils.cpp:414
ValidationResult validateMQTTPort(int port)
Валидация MQTT порта
Definition validation_utils.cpp:640
ValidationResult validateInterval(unsigned long interval, unsigned long min_val, unsigned long max_val, const char *name)
Валидация интервала (общая функция)
Definition validation_utils.cpp:235
ConfigValidationResult validateFullConfig(const ConfigData &config, bool checkRequired=true)
Полная валидация конфигурации
Definition validation_utils.cpp:328
void logValidationResult(const ConfigValidationResult &result, const char *context)
Логирование результата валидации конфигурации
Definition validation_utils.cpp:563
ValidationResult validateThingSpeakInterval(unsigned long interval)
Валидация интервала ThingSpeak.
Definition validation_utils.cpp:261
ValidationResult validateNPK(float value, const char *nutrient)
Валидация NPK значений
Definition validation_utils.cpp:316
ValidationResult validateHumidity(float humidity)
Валидация влажности
Definition validation_utils.cpp:295
ValidationResult validateSensorReadInterval(unsigned long interval)
Валидация интервала чтения датчика
Definition validation_utils.cpp:247
void logSensorValidationResult(const SensorValidationResult &result, const char *context)
Логирование результата валидации датчика
Definition validation_utils.cpp:580
ValidationResult validatePH(float ph)
Валидация pH.
Definition validation_utils.cpp:302
ValidationResult validatePassword(const String &password)
Валидация пароля WiFi.
Definition validation_utils.cpp:610
ValidationResult validateMQTTServer(const String &server)
Валидация MQTT сервера
Definition validation_utils.cpp:623
bool isValidHostname(const String &hostname)
Проверка валидности hostname.
Definition validation_utils.cpp:509
ValidationResult validateEC(float ec)
Валидация электропроводности
Definition validation_utils.cpp:309
String formatSensorValidationErrors(const SensorValidationResult &result)
Форматирование ошибок валидации датчика
Definition validation_utils.cpp:544
ValidationResult validateThingSpeakAPIKey(const String &apiKey)
Валидация ThingSpeak API ключа
Definition validation_utils.cpp:650
ValidationResult validateRange(float value, float min_val, float max_val, const char *field_name)
Универсальная функция валидации диапазона
Definition validation_utils.cpp:280
String formatValidationErrors(const ConfigValidationResult &result)
Форматирование ошибок валидации конфигурации
Definition validation_utils.cpp:529
ValidationResult validateSSID(const String &ssid)
Валидация SSID.
Definition validation_utils.cpp:597
ValidationResult validateTemperature(float temperature)
Валидация температуры
Definition validation_utils.cpp:288
ValidationResult validateNTPInterval(unsigned long interval)
Валидация интервала обновления NTP.
Definition validation_utils.cpp:268