7#ifndef SENSOR_CALIBRATION_SERVICE_H
8#define SENSOR_CALIBRATION_SERVICE_H
13#include "../../include/business/ISensorCalibrationService.h"
14#include "../../include/calibration_manager.h"
15#include "../../include/sensor_types.h"
16#include "../../include/validation_utils.h"
62 static std::map<SoilProfile, CalibrationTable> calibrationTables;
68 float applyCalibrationWithInterpolation(
float rawValue,
const std::vector<CalibrationPoint>& points)
const;
71 float linearInterpolation(
float value,
float x1,
float y1,
float x2,
float y2)
const;
77 bool validateCalibrationPoints(
const std::vector<CalibrationPoint>& points)
const;
165 bool setNPKCoefficients(
float nSlope,
float nOffset,
float pSlope,
float pOffset,
float kSlope,
float kOffset);
Интерфейс для сервиса калибровки датчиков
Definition ISensorCalibrationService.h:21
Сервис калибровки датчиков
Definition sensor_calibration_service.h:59
bool isCalibrationComplete() const
Definition unified_calibration_service.cpp:753
void resetCalibration()
Definition sensor_calibration_service.cpp:680
void applyCalibration(SensorData &data, SoilProfile profile) override
Применяет калибровку к данным датчика
Definition sensor_calibration_service.cpp:31
bool calculatePHCalibration()
Definition sensor_calibration_service.cpp:564
SensorCalibrationService()
Конструктор
Definition sensor_calibration_service.cpp:26
bool addTemperatureCalibrationPoint(float expected, float measured) override
Добавляет точку калибровки температуры
Definition sensor_calibration_service.cpp:454
bool setNPKCoefficients(float nSlope, float nOffset, float pSlope, float pOffset, float kSlope, float kOffset)
Устанавливает коэффициенты калибровки NPK.
Definition sensor_calibration_service.cpp:783
bool addPHCalibrationPoint(float expected, float measured) override
Добавляет точку калибровки pH.
Definition sensor_calibration_service.cpp:500
bool setNPKCalibrationPoint(float n, float p, float k) override
Устанавливает точку калибровки NPK.
Definition sensor_calibration_service.cpp:542
bool importCalibrationFromJSON(const String &jsonData)
Definition sensor_calibration_service.cpp:703
bool calculateECCalibration()
Definition sensor_calibration_service.cpp:601
String getCalibrationStatus() const
Definition sensor_calibration_service.cpp:719
virtual ~SensorCalibrationService()=default
Деструктор
bool addHumidityCalibrationPoint(float expected, float measured) override
Добавляет точку калибровки влажности
Definition sensor_calibration_service.cpp:477
bool setTemperatureOffset(float offset)
Устанавливает offset калибровки температуры
Definition sensor_calibration_service.cpp:638
bool addECCalibrationPoint(float expected, float measured) override
Добавляет точку калибровки EC.
Definition sensor_calibration_service.cpp:521
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
static String exportCalibrationTable(SoilProfile profile)
Экспортирует калибровочную таблицу в CSV.
Definition sensor_calibration_service.cpp:201
void clearCalibrationTable(SoilProfile profile) override
Очищает калибровочную таблицу
Definition sensor_calibration_service.cpp:150
bool validateCalibrationData(const SensorData &data) override
Проверяет валидность калибровочных данных
Definition sensor_calibration_service.cpp:116
bool setHumidityOffset(float offset)
Устанавливает offset калибровки влажности
Definition sensor_calibration_service.cpp:659
size_t getCalibrationPointsCount(SoilProfile profile, const String &sensorType) override
Получает количество точек калибровки
Definition sensor_calibration_service.cpp:160
String exportCalibrationToJSON()
Definition sensor_calibration_service.cpp:695
SoilProfile
Профили почвы
Definition sensor_types.h:36
Точка калибровки
Definition sensor_calibration_service.h:24
CalibrationPoint(float raw, float reference)
Definition sensor_calibration_service.h:29
float referenceValue
Definition sensor_calibration_service.h:26
float rawValue
Definition sensor_calibration_service.h:25
CalibrationPoint()
Definition sensor_calibration_service.h:28
Калибровочная таблица
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:49
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
Данные датчика
Definition sensor_types.h:77