LRAUV  revA
AltitudeEnvelope.h
Go to the documentation of this file.
1 
12 #ifndef ALTITUDEENVELOPE_H_
13 #define ALTITUDEENVELOPE_H_
14 
15 #include "component/Behavior.h"
16 
18 
31 class AltitudeEnvelope : public Behavior
32 {
33 public:
34 
35  AltitudeEnvelope( const Str& prefix, const Module* module );
36 
37  virtual ~AltitudeEnvelope();
38 
40  void initialize( void );
41 
43  void run();
44 
46  bool isSatisfied();
47 
49  bool runIfUnsatisfied();
50 
52  void uninitialize( void );
53 
55  static Behavior* CreateBehavior( const Str& prefix, const Module* module );
56 
57 protected:
58 
63 
64 
65  // Current control commands
66 
69 
72 
73  // Behavior setting readers
74 
77 
80 
83 
86 
89 
92 
95 
98 
99  // Measurements
100 
103 
106 
107  // Vertical Control Commands
108 
113 
116 
119 
120  // Initialization variables
122 
124 
127 
130 
133 
136 
139 
142 
144  float speedCmd_;
145 
148 
150  bool readParams( float& altitude );
151 
153  bool calcSatisfied( const float& altitude );
154 
155  // Reads in configuration settings
156  void readConfig();
157 
158  // Reads in behavior settings
159  void readSettings( bool force );
160 
161  // If depthRate is nan, set to appropriate max dive rate.
162  float adjustDepthRate( float depthRate, bool goDown );
163 
164 private:
165  // Note that the copy constructor below is private and not given a body.
166  // Any attempt to call it will return a compiler error.
167  AltitudeEnvelope( const AltitudeEnvelope& old ); // disallow copy constructor
168 
169 };
170 
171 
172 
173 #endif /*ALTITUDEENVELOPE_H_*/
DataWriter * pitchCmdWriter_
Sets the pitch for Vertical Control.
Definition: AltitudeEnvelope.h:118
float adjustDepthRate(float depthRate, bool goDown)
Definition: AltitudeEnvelope.cpp:336
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
bool calcSatisfied(const float &altitude)
Perform the satisfied: return true if envelope "satisfied".
Definition: AltitudeEnvelope.cpp:330
float speedCmd_
Current speed cmd.
Definition: AltitudeEnvelope.h:144
bool readParams(float &altitude)
Read in the parameters for satisfied or runSatisfied: return true if OK.
Definition: AltitudeEnvelope.cpp:304
SettingReader * maxAltitudeSettingReader_
Desired maximum height above sea floor for the vehicle.
Definition: AltitudeEnvelope.h:79
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: DataReader.h:30
DataWriter * elevatorAngleCmdWriter_
Definition: AltitudeEnvelope.h:111
ConfigReader * maxDiveRateCfgReader_
Definition: AltitudeEnvelope.h:61
SettingReader * pitchSettingReader_
Desired up/down pitch of the vehicle.
Definition: AltitudeEnvelope.h:91
float maxDiveRate_
Maximum dive rate of the vehicle.
Definition: AltitudeEnvelope.h:138
void run()
Just do the run: ignore the results of the satisfied.
Definition: AltitudeEnvelope.cpp:94
Behavior is the abstract base class for components that implement mission behaviors and commands...
Definition: Behavior.h:32
void uninitialize(void)
Uninit function.
Definition: AltitudeEnvelope.cpp:241
Contains the AltitudeEnvelope Behavior/Command If the vehicle's altitude is within the specified max/...
Definition: AltitudeEnvelope.h:31
bool isSatisfied()
Just do the satisfied: return true if envelope "satisfied".
Definition: AltitudeEnvelope.cpp:100
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
SettingReader * minAltitudeSettingReader_
Desired minimum height above sea floor for the vehicle.
Definition: AltitudeEnvelope.h:76
float upDepthRateSetting_
Desired up depthRate of the vehicle.
Definition: AltitudeEnvelope.h:129
Contains the Behavior class definition.
DataReader * verticalModeReader_
Current vertical control depth mode.
Definition: AltitudeEnvelope.h:68
float downPitchSetting_
Desired down pitch of the vehicle.
Definition: AltitudeEnvelope.h:132
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
ConfigReader * maxBuoyDiveRateCfgReader_
Definition: AltitudeEnvelope.h:62
AltitudeEnvelope(const Str &prefix, const Module *module)
Definition: AltitudeEnvelope.cpp:19
Replacement for standard template class string.
Definition: Str.h:12
DataWriter * verticalModeWriter_
Sets the vertical mode for vertical control.
Definition: AltitudeEnvelope.h:110
float maxAltitude_
Definition: AltitudeEnvelope.h:123
void initialize(void)
Initialize function.
Definition: AltitudeEnvelope.cpp:77
DataWriter * depthRateCmdWriter_
Sets the depth rate for Vertical Control.
Definition: AltitudeEnvelope.h:115
Definition: ConfigReader.h:13
static Behavior * CreateBehavior(const Str &prefix, const Module *module)
Mission Component factory interface.
Definition: AltitudeEnvelope.cpp:350
SettingReader * depthRateSettingReader_
Desired up/down depthRate of the vehicle.
Definition: AltitudeEnvelope.h:82
Reads values from mission settings.
Definition: SettingReader.h:26
float downDepthRateSetting_
Desired down depthRate of the vehicle.
Definition: AltitudeEnvelope.h:126
SettingReader * downDepthRateSettingReader_
Desired down depthRate of the vehicle.
Definition: AltitudeEnvelope.h:88
float minAltitude_
Definition: AltitudeEnvelope.h:121
SettingReader * upDepthRateSettingReader_
Desired up depthRate of the vehicle.
Definition: AltitudeEnvelope.h:85
ConfigReader * pitchLimitCfgReader_
Config setting readers.
Definition: AltitudeEnvelope.h:60
DataWriter * massPositionCmdWriter_
Definition: AltitudeEnvelope.h:112
void readConfig()
Definition: AltitudeEnvelope.cpp:248
SettingReader * downPitchSettingReader_
Desired down pitch of the vehicle.
Definition: AltitudeEnvelope.h:97
UniversalDataReader * altitudeReader_
Current height above sea floor.
Definition: AltitudeEnvelope.h:102
SettingReader * upPitchSettingReader_
Desired up pitch of the vehicle.
Definition: AltitudeEnvelope.h:94
bool runIfUnsatisfied()
Do the run, and return true if envelope "satisfied".
Definition: AltitudeEnvelope.cpp:112
float upPitchSetting_
Desired up pitch of the vehicle.
Definition: AltitudeEnvelope.h:135
virtual ~AltitudeEnvelope()
Definition: AltitudeEnvelope.cpp:73
UniversalDataReader * depthReader_
Current depth (in meter from sea surface – positive down)
Definition: AltitudeEnvelope.h:105
float maxBuoyDiveRate_
Maximum dive rate of the vehicle under only buoyancy control.
Definition: AltitudeEnvelope.h:141
void readSettings(bool force)
Definition: AltitudeEnvelope.cpp:256
int inactiveAltitudeCount_
True if altitude is inactive.
Definition: AltitudeEnvelope.h:147
DataReader * speedCmdReader_
Current speed control speed command.
Definition: AltitudeEnvelope.h:71