File failed to load: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/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
DE_BushFruitPerm.h
Go to the documentation of this file.
1 
15 //
16 // DE_BushFruitPerm.h
17 //
18 
19 
20 #ifndef DE_BUSHFRUIT_P_H
21 #define DE_BUSHFRUIT_P_H
22 
23 #define DE_BFP_EARLY_HARVEST a_field->m_user[1]
24 
25 #define DE_BFP_BASE 39400
26 
35 typedef enum {
36  de_bfp_start = 1, // Compulsory, must always be 1 (one).
80 
81 
90 class DE_BushFruitPerm: public Crop{
91  public:
92  virtual bool Do( Farm *a_farm, LE *a_field, FarmEvent *a_ev );
93  DE_BushFruitPerm(TTypesOfVegetation a_tov, TTypesOfCrops a_toc, Landscape* a_L) : Crop(a_tov, a_toc, a_L)
94  {
95  // When we start it off, the first possible date for a farm operation is ...
96  // This information is used by other crops when they decide how much post processing of
97  // the management is allowed after harvest before the next crop starts.
98  m_first_date=g_date->DayInYear( 31,3 );
100  }
102  const int elements = 2 + (de_bfp_foobar - DE_BFP_BASE);
104 
105  FarmManagementCategory catlist[elements] =
106  {
107  fmc_Others, // zero element unused but must be here
108  fmc_Others, // de_bfp_start = 1, // Compulsory, must always be 1 (one).
109  fmc_Others, // de_bfp_sleep_all_day = DK_BFP2_BASE,
110  fmc_Others, // de_bfp_cover_on,
111  fmc_Fertilizer, // de_bfp_fertilizer1_s,
112  fmc_Fertilizer, // de_bfp_fertilizer1_p,
113  fmc_Cutting, // de_bfp_mow_margin1,
114  fmc_Cutting, // de_bfp_mow_margin2,
115  fmc_Cutting, // de_bfp_mow_margin3,
116  fmc_Watering, // de_bfp_water1,
117  fmc_Herbicide, // de_bfp_herbicide1,
118  fmc_Cultivation, // de_bfp_manual_weeding1,
119  fmc_Cultivation, // de_bfp_manual_weeding2,
120  fmc_Insecticide, // de_bfp_insecticide,
121  fmc_Insecticide, // de_bfp_insecticide,
122  fmc_Insecticide, // de_bfp_insecticide,
123  fmc_Insecticide, // de_bfp_insecticide,
124  fmc_Insecticide, // de_bfp_insecticide,
125  fmc_Insecticide, // de_bfp_insecticide,
126  fmc_Insecticide, // de_bfp_insecticide,
127  fmc_Insecticide, // de_bfp_insecticide,
128  fmc_Fungicide, // de_bfp_fungicide,
129  fmc_Fungicide, // de_bfp_fungicide,
130  fmc_Fungicide, // de_bfp_fungicide,
131  fmc_Fungicide, // de_bfp_fungicide,
132  fmc_Fungicide, // de_bfp_fungicide,
133  fmc_Fungicide, // de_bfp_fungicide,
134  fmc_Fungicide, // de_bfp_fungicide,
135  fmc_Fungicide, // de_bfp_fungicide,
136  fmc_Fungicide, // de_bfp_fungicide,
137  fmc_Watering, // de_bfp_water2,
138  fmc_Harvest, // de_bfp_harvest,
139  fmc_Cutting, // de_bfp_mowing_fruit,
140  fmc_Herbicide, // de_bfp_herbicide2,
141  fmc_Fertilizer, // de_bfp_fertilizer2_s,
142  fmc_Fertilizer, // de_bfp_fertilizer2_p,
143  fmc_Watering, // de_bfp_water3,
144  fmc_Herbicide, // de_bfp_herbicide3,
145  fmc_Herbicide, // de_bfp_herbicide4,
146  fmc_Herbicide, // de_bfp_herbicide5,
147  fmc_Herbicide, // de_bfp_herbicide6,
148  fmc_Watering, // de_bfp_water4,
149  fmc_Watering, // de_bfp_water5,
150 
151  // no foobar entry
152 
153  };
154  // Iterate over the catlist elements and copy them to vector
155  copy(begin(catlist), end(catlist), back_inserter(m_ManagementCategories));
156  }
157 };
158 
159 
160 #endif // DE_BushFruitPerm_H
161 
de_bfp_fungicide7
Definition: DE_BushFruitPerm.h:62
de_bfp_insecticide4
Definition: DE_BushFruitPerm.h:51
de_bfp_fungicide3
Definition: DE_BushFruitPerm.h:58
fmc_Insecticide
Definition: LandscapeFarmingEnums.h:1005
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
g_landscape_ptr
Landscape * g_landscape_ptr
Definition: Landscape.cpp:352
de_bfp_mow_margin2
Definition: DE_BushFruitPerm.h:42
FarmEvent::m_lock
bool m_lock
Definition: Farm.h:384
de_bfp_cover_on
Definition: DE_BushFruitPerm.h:38
Farm::ProductApplication
virtual bool ProductApplication(LE *a_field, double a_user, int a_days, double a_applicationrate, PlantProtectionProducts a_ppp, bool a_isgranularpesticide=false, int a_orcharddrifttype=0)
Apply test pesticide to a_field.
Definition: FarmFuncs.cpp:2267
DE_BFP_BASE
#define DE_BFP_BASE
Definition: DE_BushFruitPerm.h:25
FarmEvent
A struct to hold the information required to trigger a farm event.
Definition: Farm.h:372
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
de_bfp_fungicide1
Definition: DE_BushFruitPerm.h:56
de_bfp_fungicide2
Definition: DE_BushFruitPerm.h:57
de_bfp_manual_weeding1
Definition: DE_BushFruitPerm.h:46
de_bfp_fungicide9
Definition: DE_BushFruitPerm.h:64
DE_BushFruitPermToDo
DE_BushFruitPermToDo
A flag used to indicate autumn ploughing status.
Definition: DE_BushFruitPerm.h:35
Farm::DoIt_prob
bool DoIt_prob(double a_probability)
Return chance out of 0 to 1.
Definition: Farm.cpp:864
de_bfp_herbicide4
Definition: DE_BushFruitPerm.h:73
g_date
class Calendar * g_date
Definition: Calendar.cpp:37
fmc_Herbicide
Definition: LandscapeFarmingEnums.h:1006
de_bfp_foobar
Definition: DE_BushFruitPerm.h:78
de_bfp_water1
Definition: DE_BushFruitPerm.h:44
de_bfp_mowing_fruit
Definition: DE_BushFruitPerm.h:67
Crop::m_base_elements_no
int m_base_elements_no
Definition: Farm.h:505
de_bfp_fungicide5
Definition: DE_BushFruitPerm.h:60
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
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.
de_bfp_insecticide6
Definition: DE_BushFruitPerm.h:53
de_bfp_fertilizer1_s
Definition: DE_BushFruitPerm.h:39
Crop
The base class for all crops.
Definition: Farm.h:495
de_bfp_insecticide1
Definition: DE_BushFruitPerm.h:48
Crop::SimpleEvent
void SimpleEvent(long a_date, int a_todo, bool a_lock)
Adds an event to this crop management.
Definition: Farm.cpp:747
de_bfp_manual_weeding2
Definition: DE_BushFruitPerm.h:47
de_bfp_harvest
Definition: DE_BushFruitPerm.h:66
CfgBool::value
bool value() const
Definition: Configurator.h:164
de_bfp_mow_margin1
Definition: DE_BushFruitPerm.h:41
de_bfp_insecticide7
Definition: DE_BushFruitPerm.h:54
de_bfp_water2
Definition: DE_BushFruitPerm.h:65
fmc_Cutting
Definition: LandscapeFarmingEnums.h:1009
Landscape
The landscape class containing all environmental and topographical data.
Definition: Landscape.h:142
de_bfp_fertilizer1_p
Definition: DE_BushFruitPerm.h:40
fmc_Fertilizer
Definition: LandscapeFarmingEnums.h:1004
DE_BushFruitPerm
DE_BushFruitPerm class .
Definition: DE_BushFruitPerm.h:90
Calendar::Date
long Date(void)
Definition: Calendar.h:57
de_bfp_herbicide2
Definition: DE_BushFruitPerm.h:68
fmc_Cultivation
Definition: LandscapeFarmingEnums.h:1008
CfgBool
Bool configurator entry class.
Definition: Configurator.h:155
fmc_Others
Definition: LandscapeFarmingEnums.h:1003
DE_BushFruitPerm::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: DE_BushFruitPerm.cpp:61
de_bfp_insecticide2
Definition: DE_BushFruitPerm.h:49
tov_DEBushFruitPerm
Definition: LandscapeFarmingEnums.h:520
fmc_Watering
Definition: LandscapeFarmingEnums.h:1011
de_bfp_water3
Definition: DE_BushFruitPerm.h:71
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
de_bfp_insecticide5
Definition: DE_BushFruitPerm.h:52
CfgArray_Double
Definition: Configurator.h:208
cfg_pest_bushfruit_on
CfgBool cfg_pest_bushfruit_on
Turn on pesticides for bush fruit.
de_bfp_insecticide8
Definition: DE_BushFruitPerm.h:55
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
Landscape::SupplyPestIncidenceFactor
double SupplyPestIncidenceFactor()
Returns Landscape::m_pestincidencefactor.
Definition: Landscape.h:325
Farm::ManualWeeding
virtual bool ManualWeeding(LE *a_field, double a_user, int a_days)
Manual weeding on a_field - no tramlines since weeding by hand, the bush stays on field with same veg...
Definition: FarmFuncs.cpp:2002
DE_BushFruitPerm::SetUpFarmCategoryInformation
void SetUpFarmCategoryInformation()
Definition: DE_BushFruitPerm.h:101
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
CfgArray_Double::value
std::vector< double > value() const
Definition: Configurator.h:219
FarmEvent::m_todo
int m_todo
Definition: Farm.h:388
Farm::InsecticideTreat
virtual bool InsecticideTreat(LE *a_field, double a_user, int a_days)
Apply insecticide to a_field.
Definition: FarmFuncs.cpp:2135
de_bfp_water4
Definition: DE_BushFruitPerm.h:76
LE::GetGreenBiomass
virtual double GetGreenBiomass(void)
Definition: Elements.h:160
TTypesOfCrops
TTypesOfCrops
Definition: LandscapeFarmingEnums.h:781
LE
Definition: Elements.h:86
Farm::Water
virtual bool Water(LE *a_field, double a_user, int a_days)
Carry out a watering on a_field.
Definition: FarmFuncs.cpp:1330
Crop::m_last_date
int m_last_date
Definition: Farm.h:503
g_msg
MapErrorMsg * g_msg
Definition: MapErrorMsg.cpp:41
de_bfp_mow_margin3
Definition: DE_BushFruitPerm.h:43
de_bfp_water5
Definition: DE_BushFruitPerm.h:77
DE_BFP_EARLY_HARVEST
#define DE_BFP_EARLY_HARVEST
Definition: DE_BushFruitPerm.h:23
de_bfp_insecticide3
Definition: DE_BushFruitPerm.h:50
TTypesOfVegetation
TTypesOfVegetation
Values that represent the types of vegetation that are represented in ALMaSS.
Definition: LandscapeFarmingEnums.h:192
Farm
The base class for all farm types.
Definition: Farm.h:755
de_bfp_fungicide4
Definition: DE_BushFruitPerm.h:59
Farm::StrawCovering
virtual bool StrawCovering(LE *a_field, double a_user, int a_days)
Straw covering applied on a_field.
Definition: FarmFuncs.cpp:1738
DE_BushFruitPerm::DE_BushFruitPerm
DE_BushFruitPerm(TTypesOfVegetation a_tov, TTypesOfCrops a_toc, Landscape *a_L)
Definition: DE_BushFruitPerm.h:93
de_bfp_herbicide5
Definition: DE_BushFruitPerm.h:74
fmc_Harvest
Definition: LandscapeFarmingEnums.h:1012
Farm::FruitHarvest
virtual bool FruitHarvest(LE *a_field, double a_user, int a_days)
FruitHarvest (harvest of the mature fruits, e.g., grapes) applied on a_field.
Definition: FarmFuncs.cpp:1959
de_bfp_fertilizer2_s
Definition: DE_BushFruitPerm.h:69
de_bfp_start
Definition: DE_BushFruitPerm.h:36
Calendar::DayInYear
int DayInYear(void)
Definition: Calendar.h:58
de_bfp_herbicide6
Definition: DE_BushFruitPerm.h:75
de_bfp_fungicide6
Definition: DE_BushFruitPerm.h:61
de_bfp_sleep_all_day
Definition: DE_BushFruitPerm.h:37
de_bfp_fertilizer2_p
Definition: DE_BushFruitPerm.h:70
de_bfp_fungicide8
Definition: DE_BushFruitPerm.h:63
Farm::Swathing
virtual bool Swathing(LE *a_field, double a_user, int a_days)
Cut the crop on a_field and leave it lying (probably rape)
Definition: FarmFuncs.cpp:1350
Crop::m_ev
FarmEvent * m_ev
Definition: Farm.h:500
WARN_BUG
Definition: MapErrorMsg.h:34
ppp_1
Definition: LandscapeFarmingEnums.h:1079
fmc_Fungicide
Definition: LandscapeFarmingEnums.h:1007
FarmManagementCategory
FarmManagementCategory
Definition: LandscapeFarmingEnums.h:1001
de_bfp_herbicide3
Definition: DE_BushFruitPerm.h:72
de_bfp_herbicide1
Definition: DE_BushFruitPerm.h:45
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