7#ifndef CROP_RECOMMENDATION_ENGINE_H
8#define CROP_RECOMMENDATION_ENGINE_H
16#include "../modbus_sensor.h"
19#include "../../include/sensor_types.h"
37 CropConfig(
float t,
float h,
float e,
float p,
float n,
float ph,
float k)
58 std::map<String, CropConfig> cropConfigs;
61 const float pH_alpha = -0.01F;
62 const float pH_beta = 0.005F;
63 const float EC_gamma = 0.02F;
64 const float NPK_delta = 0.03F;
65 const float NPK_epsilon = 0.01F;
69 float compensatePH(
float pH_raw,
float temperature,
float moisture);
83 float compensateEC(
float EC_raw,
float temperature,
float humidity,
SoilType soilType);
84 NPKReferences compensateNPK(
float N_raw,
float P_raw,
float K_raw,
float temperature,
float humidity,
SoilType soilType);
86 [[deprecated(
"Use compensateEC with soilType and humidity")]]
87 float compensateEC(
float EC_raw,
float temperature);
88 [[deprecated(
"Use compensateNPK with all elements and soilType")]]
89 float compensateNPK(
float NPK_raw,
float temperature,
float moisture);
91 static SoilType parseSoilType(
const String& soilTypeStr);
93 void initializeCropConfigs();
98 const String& soilType);
101 const String& soilType);
108 const String& growingType =
"soil",
const String& season =
"spring",
109 const String& soilType =
"loam"
Интерфейс для движка рекомендаций по культурам
Definition crop_recommendation_engine.h:56
String getCropScientificInfo(const String &cropType) const
Definition crop_recommendation_engine.cpp:1016
RecValues computeRecommendations(const String &cropId, const SoilProfile &soilProfile, const EnvironmentType &envType) override
Вычисляет рекомендации для указанной культуры
Definition crop_recommendation_engine.cpp:1099
String generateCropSpecificRecommendations(const String &cropName, const NPKReferences &npk, SoilType soilType, float pH)
Генерирует специфические рекомендации по культурам для неизмеряемых элементов
CropConfig getCropConfig(const String &cropType) const
Definition crop_recommendation_engine.cpp:989
CropRecommendationEngine()
Definition crop_recommendation_engine.cpp:182
std::vector< String > getAvailableCrops() const
Definition crop_recommendation_engine.cpp:979
void applySeasonalCorrection(RecValues &rec, Season season, bool isGreenhouse) override
Применяет сезонные корректировки к рекомендациям
Definition crop_recommendation_engine.cpp:1126
RecommendationResult generateRecommendation(const SensorData &data, const String &cropType, const String &growingType="soil", const String &season="spring", const String &soilType="loam")
Definition crop_recommendation_engine.cpp:328
bool validateSensorData(const SensorData &data) const
Definition crop_recommendation_engine.cpp:1005
Интерфейс для движка рекомендаций по культурам
Definition ICropRecommendationEngine.h:37
Config config
Definition config.cpp:38
Definition fake_sensor.cpp:26
Season
Сезоны
Definition sensor_types.h:66
EnvironmentType
Типы среды выращивания
Definition sensor_types.h:56
SoilType
Типы почвы
Definition sensor_types.h:16
SoilProfile
Профили почвы
Definition sensor_types.h:36
Параметры компенсации для культур
Definition sensor_types.h:166
Definition crop_recommendation_engine.h:26
float potassium
Definition crop_recommendation_engine.h:33
CropConfig()
Definition crop_recommendation_engine.h:35
float humidity
Definition crop_recommendation_engine.h:28
float temperature
Definition crop_recommendation_engine.h:27
CropConfig(float t, float h, float e, float p, float n, float ph, float k)
Definition crop_recommendation_engine.h:37
float nitrogen
Definition crop_recommendation_engine.h:31
float phosphorus
Definition crop_recommendation_engine.h:32
float ec
Definition crop_recommendation_engine.h:29
float ph
Definition crop_recommendation_engine.h:30
Параметры компенсации EC для культур
Definition sensor_types.h:180
NPK значения
Definition sensor_types.h:101
Definition ICropRecommendationEngine.h:15
Definition crop_recommendation_engine.h:45
String healthStatus
Definition crop_recommendation_engine.h:51
String season
Definition crop_recommendation_engine.h:48
String scientificNotes
Definition crop_recommendation_engine.h:52
String cropType
Definition crop_recommendation_engine.h:46
String soilType
Definition crop_recommendation_engine.h:49
String recommendations
Definition crop_recommendation_engine.h:50
String growingType
Definition crop_recommendation_engine.h:47
Данные датчика
Definition sensor_types.h:77