Loading [MathJax]/extensions/ams.js
ALMaSS  1.2 (after EcoStack, March 2024)
The Animal, Landscape and Man Simulation System
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
NLCarrotsSpring.h
Go to the documentation of this file.
1 
16 //
17 // NLCarrotsSpring.h
18 //
19 
20 
21 #ifndef NLCARROTSSPRING_H
22 #define NLCARROTSSPRING_H
23 
24 #define NLCARROTSSPRING_BASE 20700
25 
28 #define NL_CAS_WINTER_PLOUGH a_field->m_user[1]
29 #define NL_CAS_HERBI1 a_field->m_user[2]
30 #define NL_CAS_HERBI2 a_field->m_user[3]
31 #define NL_CAS_FUNGI1 a_field->m_user[4]
32 #define NL_CAS_FUNGI2 a_field->m_user[5]
33 
39 typedef enum {
40  nl_cas_start = 1, // Compulsory, must always be 1 (one).
59 
60 
69 class NLCarrotsSpring: public Crop
70 {
71  public:
72  virtual bool Do( Farm *a_farm, LE *a_field, FarmEvent *a_ev );
73  NLCarrotsSpring(TTypesOfVegetation a_tov, TTypesOfCrops a_toc, Landscape* a_L) : Crop(a_tov, a_toc, a_L)
74  {
75  // When we start it off, the first possible date for a farm operation is 20th October
76  // This information is used by other crops when they decide how much post processing of
77  // the management is allowed after harvest before the next crop starts.
78  m_first_date=g_date->DayInYear( 31,3 );
80  }
82  const int elements = 2 + (nl_cas_foobar - NLCARROTSSPRING_BASE);
84 
85  FarmManagementCategory catlist[elements] =
86  {
87  fmc_Others, // zero element unused but must be here
88  fmc_Others,//nl_cas_start = 1, // Compulsory, must always be 1 (one).
89  fmc_Others,//nl_cas_sleep_all_day = NLCARROTSSPRING_BASE,
90  fmc_Cultivation,//nl_cas_spring_plough_sandy,
91  fmc_Fertilizer,//nl_cas_ferti_p1,
92  fmc_Fertilizer,//nl_cas_ferti_s1,
93  fmc_Cultivation,//nl_cas_preseeding_cultivator,
94  fmc_Others,//nl_cas_bed_forming,
95  fmc_Others,//nl_cas_spring_sow,
96  fmc_Fertilizer,//nl_cas_ferti_p2,
97  fmc_Fertilizer,//nl_cas_ferti_s2,
98  fmc_Herbicide,//nl_cas_herbicide1,
99  fmc_Herbicide,//nl_cas_herbicide2,
100  fmc_Herbicide,//nl_cas_herbicide3,
101  fmc_Fungicide,//nl_cas_fungicide1,
102  fmc_Fungicide,//nl_cas_fungicide2,
103  fmc_Fungicide,//nl_cas_fungicide3,
104  fmc_Harvest//nl_cas_harvest,
105  };
106  // Iterate over the catlist elements and copy them to vector
107  copy(begin(catlist), end(catlist), back_inserter(m_ManagementCategories));
108 
109  }
110 };
111 
112 #endif // NLCARROTSSPRING_H
113 
LE::GetMDates
int GetMDates(int a, int b)
Definition: Elements.h:405
FarmEvent::m_forcespring
bool m_forcespring
Definition: Farm.h:392
nl_cas_herbicide1
Definition: NLCarrotsSpring.h:50
Farm::PreseedingCultivator
virtual bool PreseedingCultivator(LE *a_field, double a_user, int a_days)
Carry out preseeding cultivation on a_field (tilling set including cultivator and string roller to co...
Definition: FarmFuncs.cpp:312
Farm::SpringPlough
virtual bool SpringPlough(LE *a_field, double a_user, int a_days)
Carry out a ploughing event in the spring on a_field.
Definition: FarmFuncs.cpp:421
Farm::HerbicideTreat
virtual bool HerbicideTreat(LE *a_field, double a_user, int a_days)
Apply herbicide to a_field.
Definition: FarmFuncs.cpp:2025
Farm::IsStockFarmer
bool IsStockFarmer(void)
Definition: Farm.h:961
nl_cas_harvest
Definition: NLCarrotsSpring.h:56
l_pest_insecticide_amount
CfgFloat l_pest_insecticide_amount
Farm::Harvest
virtual bool Harvest(LE *a_field, double a_user, int a_days)
Carry out a harvest on a_field.
Definition: FarmFuncs.cpp:1364
FarmEvent::m_lock
bool m_lock
Definition: Farm.h:384
FarmEvent
A struct to hold the information required to trigger a farm event.
Definition: Farm.h:372
LE::ClearManagementActionSum
void ClearManagementActionSum()
clears the management action counters
Definition: Elements.h:247
Farm::FP_NPK
virtual bool FP_NPK(LE *a_field, double a_user, int a_days)
Apply NPK fertilizer, on a_field owned by an arable farmer.
Definition: FarmFuncs.cpp:645
nl_cas_ferti_s2
Definition: NLCarrotsSpring.h:49
nl_cas_spring_sow
Definition: NLCarrotsSpring.h:47
Farm::DoIt_prob
bool DoIt_prob(double a_probability)
Return chance out of 0 to 1.
Definition: Farm.cpp:864
g_date
class Calendar * g_date
Definition: Calendar.cpp:37
NL_CAS_FUNGI2
#define NL_CAS_FUNGI2
Definition: NLCarrotsSpring.h:32
NL_CAS_HERBI2
#define NL_CAS_HERBI2
Definition: NLCarrotsSpring.h:30
Farm::BedForming
virtual bool BedForming(LE *a_field, double a_user, int a_days)
Do bed forming up on a_field, probably of carrots.
Definition: FarmFuncs.cpp:1316
fmc_Herbicide
Definition: LandscapeFarmingEnums.h:1006
Farm::SpringSow
virtual bool SpringSow(LE *a_field, double a_user, int a_days, double a_seed_coating_amount=-1, PlantProtectionProducts a_ppp=ppp_foobar)
Carry out a sowing event in the spring on a_field.
Definition: FarmFuncs.cpp:501
Crop::m_base_elements_no
int m_base_elements_no
Definition: Farm.h:505
NLCarrotsSpring
NLCarrotsSpring class .
Definition: NLCarrotsSpring.h:69
Crop::m_first_date
int m_first_date
Definition: Farm.h:501
Farm::FA_NPK
virtual bool FA_NPK(LE *a_field, double a_user, int a_days)
Apply NPK fertilizer to a_field owned by an stock farmer.
Definition: FarmFuncs.cpp:982
Farm::FungicideTreat
virtual bool FungicideTreat(LE *a_field, double a_user, int a_days)
Apply fungicide to a_field.
Definition: FarmFuncs.cpp:2101
Crop
The base class for all crops.
Definition: Farm.h:495
nl_cas_ferti_p1
Definition: NLCarrotsSpring.h:43
nl_cas_herbicide3
Definition: NLCarrotsSpring.h:52
nl_cas_foobar
Definition: NLCarrotsSpring.h:57
cfg_pest_carrots_on
CfgBool cfg_pest_carrots_on
Turn on pesticides for carrots.
NLCARROTSSPRING_BASE
#define NLCARROTSSPRING_BASE
Definition: NLCarrotsSpring.h:24
nl_cas_ferti_s1
Definition: NLCarrotsSpring.h:44
Landscape
The landscape class containing all environmental and topographical data.
Definition: Landscape.h:142
fmc_Fertilizer
Definition: LandscapeFarmingEnums.h:1004
nl_cas_preseeding_cultivator
Definition: NLCarrotsSpring.h:45
NLCarrotsSpring::SetUpFarmCategoryInformation
void SetUpFarmCategoryInformation()
Definition: NLCarrotsSpring.h:81
cfg_CAS_InsecticideDay
CfgInt cfg_CAS_InsecticideDay
Calendar::Date
long Date(void)
Definition: Calendar.h:57
Farm::FP_AmmoniumSulphate
virtual bool FP_AmmoniumSulphate(LE *a_field, double a_user, int a_days)
Apply Ammonium Sulphate to a_field owned by an arable farmer.
Definition: FarmFuncs.cpp:882
fmc_Cultivation
Definition: LandscapeFarmingEnums.h:1008
LE::GetSoilType
int GetSoilType()
Definition: Elements.h:302
CfgBool
Bool configurator entry class.
Definition: Configurator.h:155
NLCarrotsSpring::Do
virtual bool Do(Farm *a_farm, LE *a_field, FarmEvent *a_ev)
The one and only method for a crop management plan. All farm actions go through here.
Definition: NLCarrotsSpring.cpp:64
fmc_Others
Definition: LandscapeFarmingEnums.h:1003
Calendar::OldDays
long OldDays(void)
Definition: Calendar.h:60
MapErrorMsg::Warn
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: MapErrorMsg.cpp:69
CfgArray_Double
Definition: Configurator.h:208
Crop::StartUpCrop
bool StartUpCrop(int a_spring, std::vector< std::vector< int >> a_flexdates, int a_todo)
Holds the translation between the farm operation enum for each cropand the farm management category a...
Definition: Farm.cpp:652
nl_cas_ferti_p2
Definition: NLCarrotsSpring.h:48
nl_cas_fungicide1
Definition: NLCarrotsSpring.h:53
Crop::m_farm
Farm * m_farm
Definition: Farm.h:498
Crop::m_field
LE * m_field
Definition: Farm.h:499
Crop::m_ManagementCategories
vector< FarmManagementCategory > m_ManagementCategories
Holds the translation between the farm operation enum for each crop and the farm management category ...
Definition: Farm.h:530
cfg_pest_product_amounts
CfgArray_Double cfg_pest_product_amounts
Amount of pesticide applied in grams of active substance per hectare for each of the 10 pesticides.
FarmEvent::m_todo
int m_todo
Definition: Farm.h:388
NLCarrotsSpringToDo
NLCarrotsSpringToDo
Definition: NLCarrotsSpring.h:39
nl_cas_sleep_all_day
Definition: NLCarrotsSpring.h:41
LE::GetGreenBiomass
virtual double GetGreenBiomass(void)
Definition: Elements.h:160
TTypesOfCrops
TTypesOfCrops
Definition: LandscapeFarmingEnums.h:781
nl_cas_fungicide2
Definition: NLCarrotsSpring.h:54
nl_cas_start
Definition: NLCarrotsSpring.h:40
LE
Definition: Elements.h:86
Crop::m_last_date
int m_last_date
Definition: Farm.h:503
NL_CAS_FUNGI1
#define NL_CAS_FUNGI1
Definition: NLCarrotsSpring.h:31
g_msg
MapErrorMsg * g_msg
Definition: MapErrorMsg.cpp:41
nl_cas_spring_plough_sandy
Definition: NLCarrotsSpring.h:42
Farm::FA_AmmoniumSulphate
virtual bool FA_AmmoniumSulphate(LE *a_field, double a_user, int a_days)
Apply ammonium sulphate to a_field owned by an stock farmer.
Definition: FarmFuncs.cpp:1081
TTypesOfVegetation
TTypesOfVegetation
Values that represent the types of vegetation that are represented in ALMaSS.
Definition: LandscapeFarmingEnums.h:192
CfgInt
Integer configurator entry class.
Definition: Configurator.h:102
Farm
The base class for all farm types.
Definition: Farm.h:755
CfgFloat
Double configurator entry class.
Definition: Configurator.h:126
fmc_Harvest
Definition: LandscapeFarmingEnums.h:1012
nl_cas_bed_forming
Definition: NLCarrotsSpring.h:46
nl_cas_fungicide3
Definition: NLCarrotsSpring.h:55
nl_cas_herbicide2
Definition: NLCarrotsSpring.h:51
Calendar::DayInYear
int DayInYear(void)
Definition: Calendar.h:58
NL_CAS_HERBI1
#define NL_CAS_HERBI1
Definition: NLCarrotsSpring.h:29
cfg_CAS_InsecticideMonth
CfgInt cfg_CAS_InsecticideMonth
NL_CAS_WINTER_PLOUGH
#define NL_CAS_WINTER_PLOUGH
A flag used to indicate autumn ploughing status.
Definition: NLCarrotsSpring.h:28
Crop::m_ev
FarmEvent * m_ev
Definition: Farm.h:500
WARN_BUG
Definition: MapErrorMsg.h:34
fmc_Fungicide
Definition: LandscapeFarmingEnums.h:1007
tov_NLCarrotsSpring
Definition: LandscapeFarmingEnums.h:263
FarmManagementCategory
FarmManagementCategory
Definition: LandscapeFarmingEnums.h:1001
NLCarrotsSpring::NLCarrotsSpring
NLCarrotsSpring(TTypesOfVegetation a_tov, TTypesOfCrops a_toc, Landscape *a_L)
Definition: NLCarrotsSpring.h:73
Crop::SimpleEvent_
void SimpleEvent_(long a_date, int a_todo, bool a_lock, Farm *a_farm, LE *a_field)
Adds an event to this crop management without relying on member variables.
Definition: Farm.cpp:751