JXCT Soil Sensor 7-in-1 3.10.1
IoT система мониторинга почвы на базе ESP32
Загрузка...
Поиск...
Не найдено
Класс CropRecommendationEngine

#include <crop_recommendation_engine.h>

Граф наследования:CropRecommendationEngine:
Граф связей класса CropRecommendationEngine:

Открытые члены

 CropRecommendationEngine ()
 
RecommendationResult generateRecommendation (const SensorData &data, const String &cropType, const String &growingType="soil", const String &season="spring", const String &soilType="loam")
 
std::vector< String > getAvailableCrops () const
 
CropConfig getCropConfig (const String &cropType) const
 
bool validateSensorData (const SensorData &data) const
 
String getCropScientificInfo (const String &cropType) const
 
RecValues computeRecommendations (const String &cropId, const SoilProfile &soilProfile, const EnvironmentType &envType) override
 Вычисляет рекомендации для указанной культуры
 
void applySeasonalCorrection (RecValues &rec, Season season, bool isGreenhouse) override
 Применяет сезонные корректировки к рекомендациям
 
String generateCropSpecificRecommendations (const String &cropName, const NPKReferences &npk, SoilType soilType, float pH)
 Генерирует специфические рекомендации по культурам для неизмеряемых элементов
 
- Открытые члены унаследованные от ICropRecommendationEngine
virtual ~ICropRecommendationEngine ()=default
 

Конструктор(ы)

◆ CropRecommendationEngine()

<<<<<<< HEAD namespace { float compensatePHInternal(float pHRawValue, float temperatureValue, float moistureValue) { return pHRawValue} float compensateECInternal(float ECRawValue, float temperatureValue) { return ECRawValue} float compensateNPKInternal(float NPKRawValue, float temperatureValue, float moistureValue) { return NPKRawValue} CropConfig applySeasonalAdjustments(const CropConfig &base, const String &season) { CropConfig adjusted=baseif(season=="spring") { adjusted.temperature+=0.0Fadjusted.humidity+=0.0Fadjusted.ec+=0.0Fadjusted.nitrogen *=1.15F adjusted.phosphorus *=1.10F adjusted.potassium *=1.12F } else if(season=="summer") { adjusted.temperature+=2.0Fadjusted.humidity -=5.0Fadjusted.ec+=200.0Fadjusted.nitrogen *=1.08F adjusted.phosphorus *=1.05F adjusted.potassium *=1.18F } else if(season=="autumn") { adjusted.temperature -=1.0Fadjusted.humidity+=5.0Fadjusted.ec -=100.0Fadjusted.nitrogen *=1.02F adjusted.phosphorus *=1.12F adjusted.potassium *=1.15F } else if(season=="winter") { adjusted.temperature -=3.0Fadjusted.humidity+=10.0Fadjusted.ec -=200.0Fadjusted.nitrogen *=0.85F adjusted.phosphorus *=1.08F adjusted.potassium *=1.10F } return adjusted} CropConfig applyGrowingTypeAdjustments(const CropConfig &base, const String &growingType) { CropConfig adjusted=baseif(growingType=="greenhouse") { adjusted.temperature+=3.0Fadjusted.humidity+=10.0Fadjusted.ec+=300.0F adjusted.nitrogen *=1.25F adjusted.phosphorus *=1.20F adjusted.potassium *=1.22F } else if(growingType=="hydroponics") { adjusted.ec+=500.0F adjusted.nitrogen *=1.32F adjusted.phosphorus *=1.33F adjusted.potassium *=1.20F } else if(growingType=="aeroponics") { adjusted.ec+=400.0Fadjusted.nitrogen *=1.25F adjusted.phosphorus *=1.25F adjusted.potassium *=1.17F } else if(growingType=="organic") { adjusted.ec -=200.0F adjusted.nitrogen *=0.93F adjusted.phosphorus *=0.93F adjusted.potassium *=0.92F } return adjusted} CropConfig applySoilTypeAdjustments(const CropConfig &base, const String &soilType) { CropConfig adjusted=baseif(soilType=="sand") { adjusted.humidity -=5.0Fadjusted.ec -=200.0Fadjusted.nitrogen *=1.27F adjusted.phosphorus *=1.25F adjusted.potassium *=1.17F } else if(soilType=="loam") { } else if(soilType=="clay") { adjusted.humidity+=10.0Fadjusted.ec -=400.0Fadjusted.nitrogen *=0.96F adjusted.phosphorus *=0.90F adjusted.potassium *=0.94F } else if(soilType=="peat") { adjusted.humidity+=10.0Fadjusted.ec -=100.0Fadjusted.ph -=0.5Fadjusted.nitrogen *=1.20F adjusted.phosphorus *=1.19F adjusted.potassium *=1.14F } else if(soilType=="sandpeat") { adjusted.humidity+=2.0Fadjusted.ec -=50.0Fadjusted.ph -=0.2Fadjusted.nitrogen *=1.10F adjusted.phosphorus *=1.05F adjusted.potassium *=1.02F } return adjusted} }=======> develop CropRecommendationEngine::CropRecommendationEngine ( )

Методы

◆ generateRecommendation()

RecommendationResult CropRecommendationEngine::generateRecommendation ( const SensorData data,
const String &  cropType,
const String &  growingType = "soil",
const String &  season = "spring",
const String &  soilType = "loam" 
)

◆ getAvailableCrops()

std::vector< String > CropRecommendationEngine::getAvailableCrops ( ) const

◆ getCropConfig()

CropConfig CropRecommendationEngine::getCropConfig ( const String &  cropType) const

◆ validateSensorData()

bool CropRecommendationEngine::validateSensorData ( const SensorData data) const

◆ getCropScientificInfo()

String CropRecommendationEngine::getCropScientificInfo ( const String &  cropType) const

◆ computeRecommendations()

RecValues CropRecommendationEngine::computeRecommendations ( const String &  cropId,
const SoilProfile soilProfile,
const EnvironmentType envType 
)
overridevirtual

Вычисляет рекомендации для указанной культуры

Аргументы
cropIdИдентификатор культуры (tomato, cucumber, etc.)
soilProfileПрофиль почвы (SAND, LOAM, CLAY, PEAT, SANDPEAT)
envTypeТип окружающей среды (OUTDOOR, GREENHOUSE, INDOOR)
Возвращает
RecValues Структура с рекомендуемыми значениями

Замещает ICropRecommendationEngine.

◆ applySeasonalCorrection()

void CropRecommendationEngine::applySeasonalCorrection ( RecValues rec,
Season  season,
bool  isGreenhouse 
)
overridevirtual

Применяет сезонные корректировки к рекомендациям

Аргументы
recРекомендации для корректировки
seasonТекущий сезон
isGreenhouseПризнак теплицы

Замещает ICropRecommendationEngine.

◆ generateCropSpecificRecommendations()

String CropRecommendationEngine::generateCropSpecificRecommendations ( const String &  cropName,
const NPKReferences npk,
SoilType  soilType,
float  pH 
)
virtual

Генерирует специфические рекомендации по культурам для неизмеряемых элементов

Аргументы
cropNameНазвание культуры
npkNPK данные
soilTypeТип почвы
pHЗначение pH
Возвращает
String Рекомендации

Замещает ICropRecommendationEngine.


Объявления и описания членов классов находятся в файлах: