4#include "../test/stubs/esp32_stubs.h"
8#include <ArduinoJson.h>
157 std::vector<CalibrationPoint>
ecPoints;
158 std::vector<CalibrationPoint>
phPoints;
202 static std::map<int, CalibrationTable> calibrationTables;
209 bool calculateLinearRegression(
const std::vector<CalibrationPoint>& points,
float& slope,
float& intercept,
213 float applyPHCalibration(
float raw_ph);
214 float applyECCalibration(
float raw_ec);
215 void applyNPKCalibration(
float& nitrogen,
float& phosphorus,
float& potassium);
218 float applyCalibrationWithInterpolation(
float rawValue,
const std::vector<CalibrationPoint>& points)
const;
221 float linearInterpolation(
float value,
float x1,
float y1,
float x2,
float y2)
const;
227 bool validateCalibrationPoints(
const std::vector<CalibrationPoint>& points)
const;
312 void applyCalibration(
float& ph,
float& ec,
float& nitrogen,
float& phosphorus,
float& potassium);
Сервис калибровки датчиков
Definition sensor_calibration_service.h:59
bool validateCalibration() const
Валидирует калибровку
Definition unified_calibration_service.cpp:784
bool addPHCalibrationPoint(float expected, float measured)
Добавляет точку калибровки pH.
bool isCalibrationComplete() const
Проверяет завершённость калибровки
bool importCalibrationFromJSON(const String &json_data)
Импортирует калибровку из JSON.
bool validateCalibrationData(const SensorData &data)
Проверяет валидность калибровочных данных
void resetCalibration()
Сбрасывает калибровку
<<<<<<< HEAD=======bool addTemperatureCalibrationPoint(float expected, float measured);bool addHumidityCalibrationPoint(float expected, float measured);> > > > > > develop bool setNPKCalibrationPoint(float measured_n, float measured_p, float measured_k)
Устанавливает точку калибровки NPK.
void applyCalibration(SensorData &data, SoilProfile profile) override
Применяет калибровку к данным датчика
Definition sensor_calibration_service.cpp:31
bool calculatePHCalibration()
Рассчитывает коэффициенты калибровки pH.
SensorCalibrationService()
bool addTemperatureCalibrationPoint(float expected, float measured) override
Добавляет точку калибровки температуры
Definition sensor_calibration_service.cpp:454
bool calculateECCalibration()
Рассчитывает коэффициенты калибровки EC.
String getCalibrationStatus() const
Получает статус калибровки
virtual ~SensorCalibrationService()=default
bool addECCalibrationPoint(float expected, float measured)
Добавляет точку калибровки EC.
bool addHumidityCalibrationPoint(float expected, float measured) override
Добавляет точку калибровки влажности
Definition sensor_calibration_service.cpp:477
bool loadCalibrationTable(const String &csvData, SoilProfile profile) override
Загружает калибровочную таблицу из CSV.
Definition sensor_calibration_service.cpp:128
bool hasCalibrationTable(SoilProfile profile) const override
Проверяет наличие калибровочной таблицы
Definition sensor_calibration_service.cpp:144
float applySingleCalibration(float rawValue, SoilProfile profile) override
Применяет калибровку к отдельному значению
Definition sensor_calibration_service.cpp:100
bool calculateNPKCalibration()
Рассчитывает коэффициенты калибровки NPK.
Definition unified_calibration_service.cpp:212
static String exportCalibrationTable(SoilProfile profile)
Экспортирует калибровочную таблицу в CSV.
Definition sensor_calibration_service.cpp:201
void clearCalibrationTable(SoilProfile profile) override
Очищает калибровочную таблицу
Definition sensor_calibration_service.cpp:150
size_t getCalibrationPointsCount(SoilProfile profile, const String &sensorType) override
Получает количество точек калибровки
Definition sensor_calibration_service.cpp:160
String exportCalibrationToJSON()
Экспортирует калибровку в JSON.
SensorCalibrationService gCalibrationService
Definition unified_calibration_service.cpp:19
Стандартные буферные растворы для pH калибровки
Definition sensor_calibration_service.h:23
constexpr size_t MAX_EC_POINTS
Definition sensor_calibration_service.h:39
constexpr float EC_1413_US
Definition sensor_calibration_service.h:32
constexpr float PH_6_86
Definition sensor_calibration_service.h:26
constexpr float PH_9_18
Definition sensor_calibration_service.h:28
constexpr float EC_1_413_MS
Definition sensor_calibration_service.h:33
constexpr float PH_10_01
Definition sensor_calibration_service.h:29
constexpr float PH_7_00
Definition sensor_calibration_service.h:27
constexpr float EC_0_1413_MS
Definition sensor_calibration_service.h:35
constexpr float PH_4_01
Definition sensor_calibration_service.h:25
constexpr size_t MAX_PH_POINTS
Definition sensor_calibration_service.h:38
constexpr size_t MAX_TOTAL_POINTS
Definition sensor_calibration_service.h:41
constexpr float EC_12_88_MS
Definition sensor_calibration_service.h:34
constexpr size_t MAX_NPK_POINTS
Definition sensor_calibration_service.h:40
Definition fake_sensor.cpp:26
Точка калибровки
Definition sensor_calibration_service.h:24
CalibrationPoint(const CalibrationPoint &other)
Definition sensor_calibration_service.h:95
float getMeasured() const
Definition sensor_calibration_service.h:73
void setMeasured(float value)
Definition sensor_calibration_service.h:75
CalibrationPoint(float raw, float reference)
Definition sensor_calibration_service.h:69
CalibrationPoint & operator=(const CalibrationPoint &other)
Definition sensor_calibration_service.h:78
float referenceValue
Definition sensor_calibration_service.h:26
float getExpected() const
Definition sensor_calibration_service.h:72
CalibrationPoint & operator=(CalibrationPoint &&other) noexcept
Definition sensor_calibration_service.h:86
float rawValue
Definition sensor_calibration_service.h:25
void setExpected(float value)
Definition sensor_calibration_service.h:74
CalibrationPoint(CalibrationPoint &&other) noexcept
Definition sensor_calibration_service.h:98
CalibrationPoint()
Definition sensor_calibration_service.h:68
Калибровочная таблица
Definition sensor_calibration_service.h:38
std::vector< CalibrationPoint > phPoints
Definition sensor_calibration_service.h:42
std::vector< CalibrationPoint > potassiumPoints
Definition sensor_calibration_service.h:45
std::vector< CalibrationPoint > temperaturePoints
Definition sensor_calibration_service.h:39
std::vector< CalibrationPoint > phosphorusPoints
Definition sensor_calibration_service.h:44
std::vector< CalibrationPoint > ecPoints
Definition sensor_calibration_service.h:41
CalibrationTable()
Definition sensor_calibration_service.h:165
std::vector< CalibrationPoint > nitrogenPoints
Definition sensor_calibration_service.h:43
bool isValid
Definition sensor_calibration_service.h:47
std::vector< CalibrationPoint > humidityPoints
Definition sensor_calibration_service.h:40
Калибровка EC (многоточечная с линейной регрессией)
Definition calibration_data.h:67
float coefficient_d
Definition sensor_calibration_service.h:126
float r_squared
Definition sensor_calibration_service.h:127
std::vector< CalibrationPoint > points
Definition sensor_calibration_service.h:124
float coefficient_c
Definition sensor_calibration_service.h:125
ECCalibration()
Definition sensor_calibration_service.h:130
bool is_valid
Definition sensor_calibration_service.h:128
Калибровка NPK (нулевая точка в дистиллированной воде)
Definition calibration_data.h:79
bool is_valid
Definition sensor_calibration_service.h:143
float offset_phosphorus
Definition sensor_calibration_service.h:141
NPKCalibration()
Definition sensor_calibration_service.h:145
float offset_nitrogen
Definition sensor_calibration_service.h:140
float offset_potassium
Definition sensor_calibration_service.h:142
Калибровка pH (многоточечная с линейной регрессией)
Definition calibration_data.h:55
float r_squared
Definition sensor_calibration_service.h:111
float coefficient_a
Definition sensor_calibration_service.h:109
bool is_valid
Definition sensor_calibration_service.h:112
float coefficient_b
Definition sensor_calibration_service.h:110
PHCalibration()
Definition sensor_calibration_service.h:114
std::vector< CalibrationPoint > points
Definition sensor_calibration_service.h:108
Полная калибровка датчика
Definition sensor_calibration_service.h:174
SensorCalibration()
Definition sensor_calibration_service.h:182
String calibration_date
Definition sensor_calibration_service.h:176
String sensor_id
Definition sensor_calibration_service.h:175
bool is_complete
Definition sensor_calibration_service.h:180
NPKCalibration npk
Definition sensor_calibration_service.h:179
PHCalibration ph
Definition sensor_calibration_service.h:177
ECCalibration ec
Definition sensor_calibration_service.h:178
Данные датчика
Definition sensor_types.h:77