LRAUV  revA
PeakDetectVsDepth.h
Go to the documentation of this file.
1 
12 #ifndef PEAKDETECTVSDEPTH_H_
13 #define PEAKDETECTVSDEPTH_H_
14 
15 #include "component/Behavior.h"
16 
18 
31 {
32 public:
33 
34  PeakDetectVsDepth( const Str& prefix, const Module* module );
35 
36  virtual ~PeakDetectVsDepth();
37 
39  void initialize( void );
40 
42  bool readParams( float& depth, float& detect );
43 
45  bool calcSatisfied( const float depth, const float detect );
46 
48  void run();
49 
51  bool isSatisfied();
52 
54  bool runIfUnsatisfied();
55 
57  void uninitialize( void );
58 
60  static Behavior* CreateBehavior( const Str& prefix, const Module* module );
61 
62 protected:
63 
66 
69 
71  static const int DEFAULT_CONSECUTIVE_DEPTHS;
72 
74  static const float DEFAULT_DEPTH_CHANGE_THRESH;
75 
77  static const int DEFAULT_WINDOW_LENGTH;
78 
79  // Slate input setting variables
80 
83 
86 
89 
92 
95 
96  // Minimum / Maximum depth at which to detect
99 
100  // Actual values from settings
101 
104 
107 
110 
112 
114 
115  // Slate input measurements
116 
119 
122 
125 
128 
129  // Argument output variables
135 
137  float peakDetect_;
139  float peakDepth_;
144 
145 #define MAX_COSEC_DEPTH 10
146 #define MAX_WINDOW_LENGTH 100
147 
148  int cntrVar_;
149  int stateDepth_[2];
151  float depMax_, depMin_;
154  float varLowPass_;
158 
159 
160 private:
161 
162  // Note that the copy constructor below is private and not given a body.
163  // Any attempt to call it will return a compiler error.
164  PeakDetectVsDepth( const PeakDetectVsDepth& old ); // disallow copy constructor
165 
166  void initVars();
167 };
168 
169 #endif /*PEAKDETECTVSDEPTH_H_*/
int cntrVar_
Definition: PeakDetectVsDepth.h:148
SettingReader * depthSurrogateSettingReader_
Sets variable that is used instead of depth (i.e., distance)
Definition: PeakDetectVsDepth.h:85
static const Str DEFAULT_DEPTH_SURROGATE_SETTING
Default values for input settings (Supplied so outputs can be directed to these inputs) ...
Definition: PeakDetectVsDepth.h:68
DataReader * longitudeReader_
Reads longitude.
Definition: PeakDetectVsDepth.h:127
DataReader * detectReader_
The value being detected as a peak (i.e., chl concentration)
Definition: PeakDetectVsDepth.h:118
float depMin_
Definition: PeakDetectVsDepth.h:151
const Unit * depthBaseUnit_
Definition: PeakDetectVsDepth.h:113
float peakDepth_
Definition: PeakDetectVsDepth.h:139
DataReader * depthReader_
The value used to define the independent axis (i.e., depth)
Definition: PeakDetectVsDepth.h:121
float depthInWindow_[MAX_WINDOW_LENGTH]
Definition: PeakDetectVsDepth.h:153
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
float troughProfile_
Definition: PeakDetectVsDepth.h:157
bool calcSatisfied(const float depth, const float detect)
Perform the satisfied: return true if envelope "satisfied".
Definition: PeakDetectVsDepth.cpp:234
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: DataReader.h:30
SettingReader * depthChangeThreshSettingReader_
Sets depthChangeThresh to detect a turn.
Definition: PeakDetectVsDepth.h:91
SettingReader * windowLengthSettingReader_
Sets windowLength around the value (i.e, 10 samples)
Definition: PeakDetectVsDepth.h:94
PeakDetectVsDepth(const Str &prefix, const Module *module)
Definition: PeakDetectVsDepth.cpp:28
float dep_[MAX_COSEC_DEPTH]
Definition: PeakDetectVsDepth.h:150
Behavior is the abstract base class for components that implement mission behaviors and commands...
Definition: Behavior.h:32
DataWriter * troughDetectWriter_
Definition: PeakDetectVsDepth.h:131
float depMax_
Definition: PeakDetectVsDepth.h:151
float peakDetect_
Value of the peak when it occurs.
Definition: PeakDetectVsDepth.h:137
int windowLengthSetting_
Optional windowLength.
Definition: PeakDetectVsDepth.h:109
SettingReader * detectSettingReader_
Sets variable to detect the peak of (i.e., chl concentration)
Definition: PeakDetectVsDepth.h:82
static const float DEFAULT_DEPTH_CHANGE_THRESH
if no "depthChangeThresh" setting is provided, what to use
Definition: PeakDetectVsDepth.h:74
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
SettingReader * consecutiveDepthsSettingReader_
Sets consecutiveDepths to detect a turn.
Definition: PeakDetectVsDepth.h:88
DataReader * latitudeReader_
Reads latitude.
Definition: PeakDetectVsDepth.h:124
Contains the Behavior class definition.
bool runIfUnsatisfied()
Do the run, and return true if envelope "satisfied".
Definition: PeakDetectVsDepth.cpp:391
DataWriter * peakDepthWriter_
Definition: PeakDetectVsDepth.h:132
int stateDepth_[2]
Definition: PeakDetectVsDepth.h:149
virtual ~PeakDetectVsDepth()
Definition: PeakDetectVsDepth.cpp:86
#define MAX_COSEC_DEPTH
Definition: PeakDetectVsDepth.h:145
float peakShallowBound_
Definition: PeakDetectVsDepth.h:142
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
float peakProfile_
Definition: PeakDetectVsDepth.h:156
#define MAX_WINDOW_LENGTH
Definition: PeakDetectVsDepth.h:146
Replacement for standard template class string.
Definition: Str.h:12
float depthChangeThreshSetting_
Optional depthChangeThresh.
Definition: PeakDetectVsDepth.h:106
bool isSatisfied()
Just do the satisfied: return true if envelope "satisfied".
Definition: PeakDetectVsDepth.cpp:377
bool readParams(float &depth, float &detect)
Read in the parameters for satisfied or runIfUnsatisfied: return true if OK.
Definition: PeakDetectVsDepth.cpp:214
float peakLongitude_
Definition: PeakDetectVsDepth.h:141
float depthLowPass_
Definition: PeakDetectVsDepth.h:155
void initialize(void)
Initialize function.
Definition: PeakDetectVsDepth.cpp:90
float peakLatitude_
Definition: PeakDetectVsDepth.h:140
static Behavior * CreateBehavior(const Str &prefix, const Module *module)
Mission Component factory interface.
Definition: PeakDetectVsDepth.cpp:443
DataWriter * peakDetectWriter_
Definition: PeakDetectVsDepth.h:130
Reads values from mission settings.
Definition: SettingReader.h:26
float varProfileInWindow_[MAX_WINDOW_LENGTH]
Definition: PeakDetectVsDepth.h:152
Contains the PeakDetectVsDepth Behavior/Command.
Definition: PeakDetectVsDepth.h:30
static const int DEFAULT_CONSECUTIVE_DEPTHS
if no "consecutiveDepths" setting is provided, what to use
Definition: PeakDetectVsDepth.h:71
static const int DEFAULT_WINDOW_LENGTH
if no "windowLength" setting is provided, what to use
Definition: PeakDetectVsDepth.h:77
const Unit * detectBaseUnit_
Definition: PeakDetectVsDepth.h:111
float troughDetect_
Definition: PeakDetectVsDepth.h:138
int consecutiveDepthsSetting_
Optional consecutiveDepths.
Definition: PeakDetectVsDepth.h:103
DataWriter * peakLongitudeWriter_
Definition: PeakDetectVsDepth.h:134
float varLowPass_
Definition: PeakDetectVsDepth.h:154
Code that represents an engineering unit.
Definition: Unit.h:24
void uninitialize(void)
Uninit function.
Definition: PeakDetectVsDepth.cpp:437
DataWriter * peakLatitudeWriter_
Definition: PeakDetectVsDepth.h:133
void run()
Just do the run: ignore the results of the satisfied.
Definition: PeakDetectVsDepth.cpp:371
SettingReader * shallowBoundSettingReader_
Definition: PeakDetectVsDepth.h:97
float peakDeepBound_
Definition: PeakDetectVsDepth.h:143
SettingReader * deepBoundSettingReader_
Definition: PeakDetectVsDepth.h:98