LRAUV  revA
VerticalControl Class Reference

This is the primary "control" for the vehicle's depth. More...

#include <VerticalControl.h>

Inheritance diagram for VerticalControl:
Collaboration diagram for VerticalControl:

Public Member Functions

 VerticalControl (const Module *module)
 
virtual ~VerticalControl ()
 
void initialize (void)
 Provide a space for initialization before being run. More...
 
void run ()
 The actual "payload" of the component. More...
 
void uninitialize (void)
 Uninit function. More...
 
- Public Member Functions inherited from SyncComponent
CycleOrder getCycleOrder (void)
 Getter function for controlThreadOrderPreference. More...
 
void setRepeating (bool repeating)
 
int getDivisor () const
 
int getModulo () const
 
bool isRepeater ()
 
bool isRepeating ()
 
- Public Member Functions inherited from Component
virtual ~Component ()
 Destructor cleans up readers_ and writers_. More...
 
void registerReader (DataReader *reader)
 
void unregisterReader (DataReader *reader)
 
void registerWriter (DataWriter *writer)
 
void unregisterWriter (DataWriter *writer)
 
void disableMetering (void)
 
FlexArray< DataReader * > & getReaderList (void)
 
FlexArray< DataWriter * > & getWriterList (void)
 
const ModulegetModule ()
 
virtual void configure ()
 Read (or re-read!) configuration settings. More...
 
virtual void execute (void)
 
bool isActive () const
 Indicates if the component is active. More...
 
const CodedStrgetName (void) const
 Returns the name. More...
 
const TimestampgetTimeOfLastRun (void) const
 
ComponentState getState (void)
 Return the component's current state. More...
 
void setState (ComponentState state)
 
RunState getRunState (void)
 Return the component's run state. More...
 
bool isUsingRunState ()
 Return true if using runState. More...
 
void requestData (bool requestingData)
 Tell the component to start (or stop) sending data. More...
 
void requestStart ()
 Tell the component to start runnning. More...
 
void requestPause (const Timespan expectedPauseTime)
 Tell the component to pause runnning. More...
 
void requestResume ()
 Tell the component resume from pause. More...
 
void requestStop ()
 Tell the component to stop runnning. More...
 
virtual RunState start ()
 Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence. More...
 
virtual RunState starting ()
 Might follow a STOP...START sequence Subseqent. More...
 
virtual RunState runnable ()
 Should eventually follow a START request or RESETTING. More...
 
virtual RunState satisfied ()
 Possible return value of a Behavior. More...
 
virtual RunState pause ()
 Pause for a short period (indicated by pauseTime) More...
 
virtual RunState pausing ()
 Might follow a PAUSE request. More...
 
virtual RunState paused ()
 Should eventually follow a PAUSE request: should set continueTime. More...
 
virtual RunState resume ()
 Resume from PAUSE. More...
 
virtual RunState resuming ()
 Might follow a PAUSE...RESUME sequence. More...
 
virtual RunState resetting ()
 Might occur in case of Error. More...
 
virtual RunState stop ()
 Initial state – can be later followed by START. More...
 
virtual RunState stopping ()
 Might follow a STOP request. More...
 
virtual RunState stopped ()
 Should eventually follow a STOP request. More...
 
void setCriticalFailureReported (bool boolVal)
 
void setRecoveringFromCritical (bool boolVal)
 
void setFailureReported (bool boolVal)
 
bool isFailureUninitialized ()
 
void setFailureUninitialized (bool boolVal)
 
void setRetryTimeout (const Timespan &timeout)
 
virtual bool isCompleted (void)
 Query if this component is completed. More...
 
void setPeriod (const Timespan &period)
 Set the period of this component... used if it is periodic. More...
 
const TimespangetPeriod (void)
 Returns the component's period (regardless of whether it is periodic) More...
 
ComponentType getComponentType ()
 Getter function for ComponentType. More...
 
virtual bool isFailed (void) const
 
virtual FailureMode::FailType getFailureType (void) const
 
virtual bool getCriticalFailureReported (void) const
 
virtual bool getFailureReported (void) const
 
virtual Timespan getRetryTimeout (void) const
 
virtual FailureMode::FailType setFailure (FailureMode::FailType failureType)
 
virtual int getFailCount (void) const
 
virtual bool isFailureMissionCritical ()
 
virtual int getAllowableFailures (void) const
 
virtual void setAllowableFailures (int fails)
 
LoggergetLogger (void)
 
virtual int incrementFailCount (void)
 
virtual void resetFailCount (void)
 
virtual int getSkippedRunsSinceFail (void) const
 
virtual int incrementSkippedRunsSinceFail (void)
 
virtual void logVoltage (float voltage, float averageVoltage)
 
virtual void logCurrent (float current, float averageCurrent)
 
const TimestampgetWriteTimestamp (void)
 
void setWriteTimestamp (const Timestamp &writeTimestamp)
 
BlobReadernewBlobReader (const BlobURI &blobURI)
 
BlobReadernewBlobReaderFromUniversal (const Str &componentName, const UniversalBlobURI &blobURI)
 
BlobWriternewBlobWriter (const BlobURI &blobURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
 
ConfigReadernewConfigReader (const ConfigURI &configURI)
 
DataReadernewDataReader (const DataURI &dataURI)
 
DataReadernewDataReaderFromUniversal (const Str &componentName, const UniversalURI &universalURI)
 
DataWriternewDataWriter (const DataURI &dataURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
 
UniversalBlobReadernewUniversalBlobReader (const UniversalBlobURI &universalURI)
 
UniversalBlobWriternewUniversalBlobWriter (const UniversalBlobURI &universalURI, const Unit &accuracyUnit=Units::NONE, const float accuracy=DataElement::NO_ACCURACY, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
 
UniversalDataReadernewUniversalReader (const UniversalURI &universalURI)
 
UniversalDataWriternewUniversalWriter (const UniversalURI &universalURI, const Unit &accuracyUnit=Units::NONE, const float accuracy=DataElement::NO_ACCURACY, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS)
 

Private Member Functions

 VerticalControl (const VerticalControl &old)
 
bool readConfig (void)
 Load VerticalControl parameters. More...
 
void controlVertical (void)
 
void controlDepth (float depthCmd)
 
void controlDepthRate (float depthRateCmd)
 
void setPitch (float pitchCmd)
 
void setPitchRate (float pitchRateCmd)
 
void setMassAndElevator (float massPositionCmd, float elevatorAngleCmd)
 attempts to achieve the desired mass and elevator settings More...
 
void setBuoyancy (float buoyancyCmd)
 
float elevatorControl (float pitch, float pitchCmd, float pitchRate)
 
float massControl (float pitch, float pitchCmd, float pitchRate, bool forceIntegrator=false)
 
void massAndElevatorControl (float pitch, float pitchCmd, float pitchRate, float &massPositionAction, float &elevatorAngleAction)
 
void floatAtSurface ()
 
float getMassPitchFilterError (float pitch, float pitchCmd, float dt)
 
void overrideVertical ()
 Apply buoyancy or drop weight overrides if necessary. More...
 

Private Attributes

float elevatorPitchIntegral_
 
float massPitchIntegral_
 
float * massFilter_
 
int massFilterPos_
 
int massFilterBins_
 
float lastPitchCmd_
 
Timestamp lastPitchChange_
 
float depthIntegral_
 
float depth2buoyInt_
 
float lastDepthRateCmd_
 
Trajectory depthTrajectory_
 
bool ok_
 
float buoyancyCmd_
 
float lastBuoyancyCmd_
 
float buoyancyPosition_
 
float lastBuoyancyPosition_
 
float lastPitch_
 
float lastDepthCmd_
 
float periodCmd_
 
float speedCmd_
 
bool waitingForDepthCrossing_
 
Timestamp excursionStartTime_
 
bool previouslyBelowExcursion_
 
float minAscendPitchCfg_
 
float minDepthExcursion_
 
float * depthRateFilter_
 
int depthRateFilterIndex_
 
Timestamp failToGoDownStart_
 
Timestamp failToGoUpStart_
 
float failToGoDownDepth_
 
float failToGoUpDepth_
 
bool missionEnded_
 
bool burnwireActivated_
 
VerticalControlIF::VerticalMode verticalMode_
 
float buoyancyDefault_
 Configuration values. More...
 
float buoyancyLimitHiCC_
 
float buoyancyLimitLoCC_
 
float buoyancyNeutral_
 
float buoyancyPumpDepth_
 
float depthDeadband_
 
float depthRateDeadband_
 
int depthRateSamples_
 
float dropWtDepthExcursion_
 
Timespan dropWtOverrideDelay_
 
float elevDeadband_
 
float elevatorLimit_
 
float elevatorTurnTime_
 
float elevDeviation_
 
Timespan excursionDepthTimeout_
 
float kdDepth_
 
float kdDepthBuoy_
 
float kdDepthRateBuoy_
 
float kdPitchElevator_
 
float kdPitchMass_
 
float kiDepth_
 
float kiDepthBuoy_
 
float kiDepthOff_
 
float kiDepthRateBuoy_
 
float kiPitchElevator_
 
float kiPitchMass_
 
float kpDepth_
 
float kpDepthBuoy_
 
float kpDepthRateBuoy_
 
float kpPitchElevator_
 
float kpPitchMass_
 
int limitDepthTrajectory_
 
float massDeadband_
 
float massDefault_
 
float massFilterLimit_
 
float massFilterWidth_
 
float massPositionLimitFwd_
 
float massPositionLimitAft_
 
float massTurnTime_
 
float maxBuoyDiveAccel_
 
float maxBuoyDiveRate_
 
float maxBuoyInt_
 
float maxDepthInt_
 
float maxDiveAccel_
 
float maxDiveRate_
 
float maxPitchElevatorInt_
 
float maxPitchMassInt_
 
float maxPitchRate_
 
float nominalDt_
 
float pitchLimit_
 
float stopDepthExcursion_
 
Timespan stopOverrideDelay_
 
Timespan stopOverrideDelayBuoy_
 
float surfaceThreshold_
 
int useElevIntInDepthMode_
 
DataReaderverticalModeReader_
 Command readers. More...
 
DataReaderdepthCmdReader_
 
DataReaderdepthRateCmdReader_
 
DataReaderpitchCmdReader_
 
DataReaderpitchRateCmdReader_
 
DataReadermassPositionCmdReader_
 
DataReaderelevatorAngleCmdReader_
 
DataReaderbuoyancyCmdReader_
 
DataReaderperiodCmdReader_
 Other controllers' Command readers. More...
 
DataReaderspeedCmdReader_
 
ConfigReaderbuoyancyDefaultCfgReader_
 Config readers. More...
 
ConfigReaderbuoyancyLimitHiCCCfgReader_
 
ConfigReaderbuoyancyLimitLoCCCfgReader_
 
ConfigReaderbuoyancyNeutralCfgReader_
 
ConfigReaderbuoyancyPumpDepthCfgReader_
 
ConfigReaderdepthDeadbandCfgReader_
 
ConfigReaderdepthRateDeadbandCfgReader_
 
ConfigReaderdepthRateSamplesCfgReader_
 
ConfigReaderdropWtDepthExcursionCfgReader_
 
ConfigReaderdropWtOverrideDelayCfgReader_
 
ConfigReaderelevatorDeadbandCfgReader_
 
ConfigReaderelevatorLimitCfgReader_
 
ConfigReaderelevatorTurnTimeCfgReader_
 
ConfigReaderexcursionDepthTimeoutCfgReader_
 
ConfigReaderkdDepthBuoyCfgReader_
 
ConfigReaderkdDepthCfgReader_
 
ConfigReaderkdDepthRateBuoyCfgReader_
 
ConfigReaderkdPitchElevatorCfgReader_
 
ConfigReaderkdPitchMassCfgReader_
 
ConfigReaderkiDepthBuoyCfgReader_
 
ConfigReaderkiDepthCfgReader_
 
ConfigReaderkiDepthOffCfgReader_
 
ConfigReaderkiDepthRateBuoyCfgReader_
 
ConfigReaderkiPitchElevatorCfgReader_
 
ConfigReaderkiPitchMassCfgReader_
 
ConfigReaderkpDepthBuoyCfgReader_
 
ConfigReaderkpDepthCfgReader_
 
ConfigReaderkpDepthRateBuoyCfgReader_
 
ConfigReaderkpPitchElevatorCfgReader_
 
ConfigReaderkpPitchMassCfgReader_
 
ConfigReaderlimitDepthTrajectoryCfgReader_
 
ConfigReadermassDeadbandCfgReader_
 
ConfigReadermassDefaultCfgReader_
 
ConfigReadermassFilterLimitCfgReader_
 
ConfigReadermassFilterWidthCfgReader_
 
ConfigReadermassPositionLimitFwdCfgReader_
 
ConfigReadermassPositionLimitAftCfgReader_
 
ConfigReadermassTurnTimeCfgReader_
 
ConfigReadermaxBuoyDiveAccelCfgReader_
 
ConfigReadermaxBuoyDiveRateCfgReader_
 
ConfigReadermaxBuoyIntCfgReader_
 
ConfigReadermaxDepthIntCfgReader_
 
ConfigReadermaxDiveAccelCfgReader_
 
ConfigReadermaxDiveRateCfgReader_
 
ConfigReadermaxPitchElevatorIntCfgReader_
 
ConfigReadermaxPitchMassIntCfgReader_
 
ConfigReadermaxPitchRateCfgReader_
 
ConfigReaderminAscendPitchCfgReader_
 
ConfigReaderminDepthExcursionCfgReader_
 
ConfigReadernominalDtCfgReader_
 
ConfigReaderpitchLimitCfgReader_
 
ConfigReaderstopDepthExcursionCfgReader_
 
ConfigReaderstopOverrideDelayCfgReader_
 
ConfigReaderstopOverrideDelayBuoyCfgReader_
 
ConfigReadersurfaceThresholdCfgReader_
 
ConfigReaderuseElevIntInDepthModeCfgReader_
 
ConfigReaderelevDeviationCfgReader_
 
UniversalDataReaderdepthReader_
 Universal Readers. More...
 
UniversalDataReaderpitchReader_
 
UniversalDataReaderpitchRateReader_
 
UniversalDataReaderdepthRateReader_
 
UniversalDataReaderelevatorAngleReader_
 
UniversalDataReadermassPositionReader_
 
UniversalDataReaderbuoyancyPositionReader_
 
DataReaderelevatorAngleActionReader_
 Action Readers – for reading last positions, even if from Maintain command. More...
 
DataReadermassPositionActionReader_
 
DataWriterbuoyancyActionWriter_
 Action Writers. More...
 
DataWriterelevatorAngleActionWriter_
 
DataWritermassPositionActionWriter_
 
DataWriterspeedCmdWriter_
 
DataWriterdepth2buoyIntInternalWriter_
 Debugging Writers. More...
 
DataWriterdepthErrorInternalWriter_
 
DataWriterdepthIntegralInternalWriter_
 
DataWriterdtWriter_
 
DataWriterelevatorIntegralWriter_
 
DataWritermassIntegralWriter_
 
DataWritermassPitchErrorWriter_
 
DataWriterpitchInternalWriter_
 
DataWritersmoothDepthInternalWriter_
 

Additional Inherited Members

- Public Types inherited from Component
enum  ComponentState {
  BLOCK_CONTINUOUS, BLOCK_PERIODIC, BLOCK_NORMAL, BLOCK_COMPLETED,
  BLOCK_UNKNOWN
}
 In this model, the component has basically two states: wanting to run, and completed (no longer needing to run). More...
 
enum  ComponentType { COMPONENT_ASYNC, COMPONENT_CONFIG, COMPONENT_BEHAVIOR, COMPONENT_SYNC }
 Components can indicate how they want to be handled by their type. More...
 
enum  RunState {
  NO_RUN_STATE = 0, START, STARTING, RUNNABLE,
  SATISFIED, PAUSE, PAUSING, PAUSED,
  RESUME, RESUMING, RESETTING, STOP,
  STOPPING, STOPPED
}
 
- Static Public Attributes inherited from SyncComponent
static const int CYCLE_INCREMENT
 
static const int CYCLE_REPEAT_OFFSET
 
static const CycleOrder CYCLE_STARTER
 
static const CycleOrder CYCLE_SIMULATOR
 
static const CycleOrder CYCLE_SENSOR
 
static const CycleOrder CYCLE_DERIVATION
 
static const CycleOrder CYCLE_ESTIMATION
 
static const CycleOrder CYCLE_NAVIGATION
 
static const CycleOrder CYCLE_MISSION_MANAGER
 
static const CycleOrder CYCLE_MISSION
 
static const CycleOrder CYCLE_CONTROL
 
static const CycleOrder CYCLE_SERVO
 
static const CycleOrder CYCLE_TEST
 
static const CycleOrder CYCLE_REPORTER
 
static const CycleOrder CYCLE_LOGGER
 
- Protected Types inherited from Component
enum  ConfigOption { CONFIG_SIMULATE_HARDWARE, CONFIG_POWER, CONFIG_FREQUENCY, CONFIG_LATENCY }
 
- Protected Member Functions inherited from SyncControlComponent
 SyncControlComponent (const Str &name, const Module *module, int divisor=1, int modulo=0)
 
- Protected Member Functions inherited from SyncComponent
void setRepeater (bool repeater)
 
- Protected Member Functions inherited from Component
virtual ConfigURI getConfigURI (ConfigOption configOption) const
 Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc. More...
 
virtual ConfigURI getConfigURI (ConfigOption configOption, ElementURI forElement) const
 Should return [myNamespace]::POWER_[forElement], [myNamespace]::LATENCY_[forElement], etc. More...
 
virtual void setDurationOfLastRun (const Timespan &span)
 
virtual void setTimeOfRun (const Timestamp &time)
 
virtual void setTimeOfLastRun (const Timestamp &time)
 
virtual void setDt (const Timespan &dt)
 
virtual bool setEnabled (bool enabled=true)
 
void setRunState (const RunState runState)
 
const Timespan getPauseTime () const
 
virtual void setFailureMissionCritical (bool failureMissionCritical)
 
bool simulateHardware ()
 
- Protected Attributes inherited from Component
Logger logger_
 
Syslog::Severity debugLevel_
 
ComponentState state_
 Keep track of whether the component has "completed" or should be run again. More...
 
Timespan desiredPeriod_
 
CodedStrname_
 Store the component's name (used for logging purposes) More...
 
Timestamp timeOfRun_
 
Timestamp timeOfLastRun_
 
Timespan durationOfLastRun_
 
Timespan dt_
 
Timespan retryTimeout_
 
bool enabled_
 
bool failureReported_
 Indicates if the failure has been reported – cuts down on syslog. More...
 
bool criticalFailureReported_
 Indicates if a "Critical" failure has been reported – cuts down on syslog. More...
 
bool recoveringFromCritical_
 Indicates that a component had a previous critical failure that has been cleared temporarily awaiting final word from the component itself. More...
 
bool failureUninitialized_
 Indicates if the failure has resulted in an uninitialize call. More...
 
int failCount_
 Number of failures logged by PCaller. More...
 
bool failureMissionCritical_
 If true (default), complete failure ends mission. More...
 
int allowableFailures_
 Number of failures allowed to occur. More...
 
int skippedRunsSinceFail_
 Number of skipped runs since failureMode_ set by failCount_. More...
 
FailureMode::FailType failureType_
 Failed status. If failCount_ > 0, then this may be reset. More...
 
Timestamp timeOfFailure_
 Time of last failure. Relevant only if failed=true. More...
 
Timestamp writeTimestamp_
 Time of last write. More...
 
FlexArray< DataReader * > readers_
 
FlexArray< DataWriter * > writers_
 
const Modulemodule_
 
Timespan pauseTime_
 
bool meteringEnabled_
 If true, metering is enabled. More...
 
DataWriterdurationOfLastRunWriter_
 Writer for durationOfLastRun. More...
 
DataWritervoltageWriter_
 
DataWriteravgVoltageWriter_
 
DataWritercurrentWriter_
 
DataWriteravgCurrentWriter_
 
bool persistentPause_
 True if data is persistent while component is paused. More...
 

Detailed Description

This is the primary "control" for the vehicle's depth.

It accepts a number of inputs that specify the desired depth or pitch of the vehicle, and combined with depth and pitch sensor inputs, converts the settings to commands that are ultimately relayed to devices via ElevatorServo, MovableMassServo, and BuoyancyServo.

VerticalControl.h should only be included by VerticalControl.cpp Other classes should include VerticalControlIF.h

Constructor & Destructor Documentation

VerticalControl::VerticalControl ( const Module module)

References buoyancyActionWriter_, buoyancyCmdReader_, buoyancyDefault_, buoyancyDefaultCfgReader_, buoyancyLimitHiCCCfgReader_, buoyancyLimitLoCCCfgReader_, buoyancyNeutralCfgReader_, buoyancyPositionReader_, buoyancyPumpDepthCfgReader_, UniversalURI::DEPTH, depth2buoyIntInternalWriter_, UniversalURI::DEPTH_RATE, depthCmdReader_, depthDeadbandCfgReader_, depthErrorInternalWriter_, depthIntegralInternalWriter_, depthRateCmdReader_, depthRateDeadbandCfgReader_, depthRateReader_, depthRateSamplesCfgReader_, depthReader_, dropWtDepthExcursionCfgReader_, dropWtOverrideDelayCfgReader_, dtWriter_, elevatorAngleActionReader_, elevatorAngleActionWriter_, elevatorAngleCmdReader_, elevatorAngleReader_, elevatorDeadbandCfgReader_, elevatorIntegralWriter_, elevatorLimitCfgReader_, elevatorTurnTimeCfgReader_, elevDeviationCfgReader_, excursionDepthTimeoutCfgReader_, VerticalControlIF::FLOAT_ON_SURFACE, kdDepthBuoyCfgReader_, kdDepthCfgReader_, kdDepthRateBuoyCfgReader_, kdPitchElevatorCfgReader_, kdPitchMassCfgReader_, kiDepthBuoyCfgReader_, kiDepthCfgReader_, kiDepthOffCfgReader_, kiDepthRateBuoyCfgReader_, kiPitchElevatorCfgReader_, kiPitchMassCfgReader_, kpDepthBuoyCfgReader_, kpDepthCfgReader_, kpDepthRateBuoyCfgReader_, kpPitchElevatorCfgReader_, kpPitchMassCfgReader_, lastBuoyancyCmd_, limitDepthTrajectoryCfgReader_, Component::logger_, massDeadbandCfgReader_, massDefaultCfgReader_, massFilterLimitCfgReader_, massFilterWidthCfgReader_, massIntegralWriter_, massPitchErrorWriter_, massPositionActionReader_, massPositionActionWriter_, massPositionCmdReader_, massPositionLimitAftCfgReader_, massPositionLimitFwdCfgReader_, massPositionReader_, massTurnTimeCfgReader_, maxBuoyDiveAccelCfgReader_, maxBuoyDiveRateCfgReader_, maxBuoyIntCfgReader_, maxDepthIntCfgReader_, maxDiveAccelCfgReader_, maxDiveRateCfgReader_, maxPitchElevatorIntCfgReader_, maxPitchMassIntCfgReader_, maxPitchRateCfgReader_, minAscendPitchCfgReader_, minDepthExcursionCfgReader_, Component::newConfigReader(), Component::newDataReader(), Component::newDataWriter(), Component::newUniversalReader(), nominalDtCfgReader_, periodCmdReader_, pitchCmdReader_, pitchInternalWriter_, pitchLimitCfgReader_, pitchRateCmdReader_, pitchRateReader_, pitchReader_, UniversalURI::PLATFORM_BUOYANCY_POSITION, UniversalURI::PLATFORM_ELEVATOR_ANGLE, UniversalURI::PLATFORM_MASS_POSITION, UniversalURI::PLATFORM_PITCH_ANGLE, UniversalURI::PLATFORM_PITCH_RATE, smoothDepthInternalWriter_, speedCmdReader_, speedCmdWriter_, stopDepthExcursionCfgReader_, stopOverrideDelayBuoyCfgReader_, stopOverrideDelayCfgReader_, surfaceThresholdCfgReader_, Logger::syslog(), useElevIntInDepthModeCfgReader_, verticalMode_, and verticalModeReader_.

VerticalControl::~VerticalControl ( )
virtual

References depthRateFilter_, and massFilter_.

VerticalControl::VerticalControl ( const VerticalControl old)
private

Member Function Documentation

float VerticalControl::getMassPitchFilterError ( float  pitch,
float  pitchCmd,
float  dt 
)
private
void VerticalControl::initialize ( void  )
virtual

Provide a space for initialization before being run.

Reimplemented from Component.

References buoyancyDefault_, Syslog::CRITICAL, excursionStartTime_, Component::logger_, Timestamp::Now(), ok_, readConfig(), and Logger::syslog().

Referenced by run().

bool VerticalControl::readConfig ( void  )
private

Load VerticalControl parameters.

References Units::BOOL, buoyancyDefault_, buoyancyDefaultCfgReader_, buoyancyLimitHiCC_, buoyancyLimitHiCCCfgReader_, buoyancyLimitLoCC_, buoyancyLimitLoCCCfgReader_, buoyancyNeutral_, buoyancyNeutralCfgReader_, buoyancyPumpDepth_, buoyancyPumpDepthCfgReader_, Units::COUNT, Units::CUBIC_CENTIMETER, depthDeadband_, depthDeadbandCfgReader_, depthRateDeadband_, depthRateDeadbandCfgReader_, depthRateFilter_, depthRateFilterIndex_, depthRateSamples_, depthRateSamplesCfgReader_, dropWtDepthExcursion_, dropWtDepthExcursionCfgReader_, dropWtOverrideDelay_, dropWtOverrideDelayCfgReader_, elevatorDeadbandCfgReader_, elevatorLimit_, elevatorLimitCfgReader_, elevatorTurnTime_, elevatorTurnTimeCfgReader_, elevDeadband_, elevDeviation_, elevDeviationCfgReader_, excursionDepthTimeout_, excursionDepthTimeoutCfgReader_, kdDepth_, kdDepthBuoy_, kdDepthBuoyCfgReader_, kdDepthCfgReader_, kdDepthRateBuoy_, kdDepthRateBuoyCfgReader_, kdPitchElevator_, kdPitchElevatorCfgReader_, kdPitchMass_, kdPitchMassCfgReader_, kiDepth_, kiDepthBuoy_, kiDepthBuoyCfgReader_, kiDepthCfgReader_, kiDepthOff_, kiDepthOffCfgReader_, kiDepthRateBuoy_, kiDepthRateBuoyCfgReader_, kiPitchElevator_, kiPitchElevatorCfgReader_, kiPitchMass_, kiPitchMassCfgReader_, kpDepth_, kpDepthBuoy_, kpDepthBuoyCfgReader_, kpDepthCfgReader_, kpDepthRateBuoy_, kpDepthRateBuoyCfgReader_, kpPitchElevator_, kpPitchElevatorCfgReader_, kpPitchMass_, kpPitchMassCfgReader_, limitDepthTrajectory_, limitDepthTrajectoryCfgReader_, massDeadband_, massDeadbandCfgReader_, massDefault_, massDefaultCfgReader_, massFilterLimit_, massFilterLimitCfgReader_, massFilterWidth_, massFilterWidthCfgReader_, massPositionLimitAft_, massPositionLimitAftCfgReader_, massPositionLimitFwd_, massPositionLimitFwdCfgReader_, massTurnTime_, massTurnTimeCfgReader_, maxBuoyDiveAccel_, maxBuoyDiveAccelCfgReader_, maxBuoyDiveRate_, maxBuoyDiveRateCfgReader_, maxBuoyInt_, maxBuoyIntCfgReader_, maxDepthInt_, maxDepthIntCfgReader_, maxDiveAccel_, maxDiveAccelCfgReader_, maxDiveRate_, maxDiveRateCfgReader_, maxPitchElevatorInt_, maxPitchElevatorIntCfgReader_, maxPitchMassInt_, maxPitchMassIntCfgReader_, maxPitchRate_, maxPitchRateCfgReader_, Units::METER, Units::METER_PER_SECOND, Units::METER_PER_SECOND_SQUARED, minAscendPitchCfg_, minAscendPitchCfgReader_, minDepthExcursion_, minDepthExcursionCfgReader_, nominalDt_, nominalDtCfgReader_, pitchLimit_, pitchLimitCfgReader_, Units::RADIAN, Units::RADIAN_PER_METER, Units::RADIAN_PER_SECOND, Units::RADIAN_PER_SECOND_PER_METER, Units::RADIAN_SECOND_PER_METER, Units::RATIO, DataReader::read(), Units::RECIPROCAL_SECOND, Units::SECOND, Timespan::Seconds(), stopDepthExcursion_, stopDepthExcursionCfgReader_, stopOverrideDelay_, stopOverrideDelayBuoy_, stopOverrideDelayBuoyCfgReader_, stopOverrideDelayCfgReader_, surfaceThreshold_, surfaceThresholdCfgReader_, useElevIntInDepthMode_, and useElevIntInDepthModeCfgReader_.

Referenced by controlVertical(), and initialize().

void VerticalControl::setPitchRate ( float  pitchRateCmd)
private
void VerticalControl::uninitialize ( void  )
virtual

Uninit function.

Reimplemented from Component.

References Component::logger_, and Logger::syslog().

Member Data Documentation

DataWriter* VerticalControl::buoyancyActionWriter_
private

Action Writers.

Referenced by setBuoyancy(), and VerticalControl().

float VerticalControl::buoyancyCmd_
private
DataReader* VerticalControl::buoyancyCmdReader_
private

Referenced by controlVertical(), and VerticalControl().

float VerticalControl::buoyancyDefault_
private

Configuration values.

Referenced by initialize(), readConfig(), setBuoyancy(), and VerticalControl().

ConfigReader* VerticalControl::buoyancyDefaultCfgReader_
private

Config readers.

Referenced by readConfig(), and VerticalControl().

float VerticalControl::buoyancyLimitHiCC_
private
ConfigReader* VerticalControl::buoyancyLimitHiCCCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::buoyancyLimitLoCC_
private
ConfigReader* VerticalControl::buoyancyLimitLoCCCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::buoyancyNeutral_
private
ConfigReader* VerticalControl::buoyancyNeutralCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::buoyancyPosition_
private

Referenced by controlVertical().

UniversalDataReader* VerticalControl::buoyancyPositionReader_
private

Referenced by controlVertical(), and VerticalControl().

float VerticalControl::buoyancyPumpDepth_
private
ConfigReader* VerticalControl::buoyancyPumpDepthCfgReader_
private

Referenced by readConfig(), and VerticalControl().

bool VerticalControl::burnwireActivated_
private

Referenced by overrideVertical().

float VerticalControl::depth2buoyInt_
private
DataWriter* VerticalControl::depth2buoyIntInternalWriter_
private

Debugging Writers.

Referenced by run(), and VerticalControl().

DataReader* VerticalControl::depthCmdReader_
private
float VerticalControl::depthDeadband_
private
ConfigReader* VerticalControl::depthDeadbandCfgReader_
private

Referenced by readConfig(), and VerticalControl().

DataWriter* VerticalControl::depthErrorInternalWriter_
private

Referenced by controlDepth(), and VerticalControl().

float VerticalControl::depthIntegral_
private
DataWriter* VerticalControl::depthIntegralInternalWriter_
private

Referenced by run(), and VerticalControl().

DataReader* VerticalControl::depthRateCmdReader_
private
float VerticalControl::depthRateDeadband_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::depthRateDeadbandCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float* VerticalControl::depthRateFilter_
private
int VerticalControl::depthRateFilterIndex_
private

Referenced by overrideVertical(), and readConfig().

UniversalDataReader* VerticalControl::depthRateReader_
private
int VerticalControl::depthRateSamples_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::depthRateSamplesCfgReader_
private

Referenced by readConfig(), and VerticalControl().

UniversalDataReader* VerticalControl::depthReader_
private
Trajectory VerticalControl::depthTrajectory_
private
float VerticalControl::dropWtDepthExcursion_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::dropWtDepthExcursionCfgReader_
private

Referenced by readConfig(), and VerticalControl().

Timespan VerticalControl::dropWtOverrideDelay_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::dropWtOverrideDelayCfgReader_
private

Referenced by readConfig(), and VerticalControl().

DataWriter* VerticalControl::dtWriter_
private
DataReader* VerticalControl::elevatorAngleActionReader_
private

Action Readers – for reading last positions, even if from Maintain command.

Referenced by setMassAndElevator(), and VerticalControl().

DataWriter* VerticalControl::elevatorAngleActionWriter_
private
DataReader* VerticalControl::elevatorAngleCmdReader_
private
UniversalDataReader* VerticalControl::elevatorAngleReader_
private
ConfigReader* VerticalControl::elevatorDeadbandCfgReader_
private

Referenced by readConfig(), and VerticalControl().

DataWriter* VerticalControl::elevatorIntegralWriter_
private

Referenced by run(), and VerticalControl().

float VerticalControl::elevatorLimit_
private
ConfigReader* VerticalControl::elevatorLimitCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::elevatorPitchIntegral_
private
float VerticalControl::elevatorTurnTime_
private

Referenced by readConfig().

ConfigReader* VerticalControl::elevatorTurnTimeCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::elevDeadband_
private

Referenced by readConfig(), and setMassAndElevator().

float VerticalControl::elevDeviation_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::elevDeviationCfgReader_
private

Referenced by readConfig(), and VerticalControl().

Timespan VerticalControl::excursionDepthTimeout_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::excursionDepthTimeoutCfgReader_
private

Referenced by readConfig(), and VerticalControl().

Timestamp VerticalControl::excursionStartTime_
private

Referenced by initialize(), and overrideVertical().

float VerticalControl::failToGoDownDepth_
private

Referenced by overrideVertical().

Timestamp VerticalControl::failToGoDownStart_
private

Referenced by overrideVertical().

float VerticalControl::failToGoUpDepth_
private

Referenced by overrideVertical().

Timestamp VerticalControl::failToGoUpStart_
private

Referenced by overrideVertical().

float VerticalControl::kdDepth_
private

Referenced by controlDepth(), and readConfig().

float VerticalControl::kdDepthBuoy_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::kdDepthBuoyCfgReader_
private

Referenced by readConfig(), and VerticalControl().

ConfigReader* VerticalControl::kdDepthCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kdDepthRateBuoy_
private

Referenced by controlDepthRate(), and readConfig().

ConfigReader* VerticalControl::kdDepthRateBuoyCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kdPitchElevator_
private
ConfigReader* VerticalControl::kdPitchElevatorCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kdPitchMass_
private

Referenced by massControl(), and readConfig().

ConfigReader* VerticalControl::kdPitchMassCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kiDepth_
private

Referenced by controlDepth(), and readConfig().

float VerticalControl::kiDepthBuoy_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::kiDepthBuoyCfgReader_
private

Referenced by readConfig(), and VerticalControl().

ConfigReader* VerticalControl::kiDepthCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kiDepthOff_
private
ConfigReader* VerticalControl::kiDepthOffCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kiDepthRateBuoy_
private

Referenced by controlDepthRate(), and readConfig().

ConfigReader* VerticalControl::kiDepthRateBuoyCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kiPitchElevator_
private
ConfigReader* VerticalControl::kiPitchElevatorCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kiPitchMass_
private
ConfigReader* VerticalControl::kiPitchMassCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kpDepth_
private

Referenced by controlDepth(), and readConfig().

float VerticalControl::kpDepthBuoy_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::kpDepthBuoyCfgReader_
private

Referenced by readConfig(), and VerticalControl().

ConfigReader* VerticalControl::kpDepthCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kpDepthRateBuoy_
private

Referenced by controlDepthRate(), and readConfig().

ConfigReader* VerticalControl::kpDepthRateBuoyCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kpPitchElevator_
private
ConfigReader* VerticalControl::kpPitchElevatorCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::kpPitchMass_
private

Referenced by massControl(), and readConfig().

ConfigReader* VerticalControl::kpPitchMassCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::lastBuoyancyCmd_
private
float VerticalControl::lastBuoyancyPosition_
private

Referenced by controlVertical().

float VerticalControl::lastDepthCmd_
private

Referenced by controlDepth().

float VerticalControl::lastDepthRateCmd_
private

Referenced by controlDepthRate().

float VerticalControl::lastPitch_
private
Timestamp VerticalControl::lastPitchChange_
private
float VerticalControl::lastPitchCmd_
private
int VerticalControl::limitDepthTrajectory_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::limitDepthTrajectoryCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::massDeadband_
private

Referenced by readConfig(), and setMassAndElevator().

ConfigReader* VerticalControl::massDeadbandCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::massDefault_
private
ConfigReader* VerticalControl::massDefaultCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float* VerticalControl::massFilter_
private
int VerticalControl::massFilterBins_
private
float VerticalControl::massFilterLimit_
private
ConfigReader* VerticalControl::massFilterLimitCfgReader_
private

Referenced by readConfig(), and VerticalControl().

int VerticalControl::massFilterPos_
private
float VerticalControl::massFilterWidth_
private

Referenced by controlVertical(), and readConfig().

ConfigReader* VerticalControl::massFilterWidthCfgReader_
private

Referenced by readConfig(), and VerticalControl().

DataWriter* VerticalControl::massIntegralWriter_
private

Referenced by run(), and VerticalControl().

DataWriter* VerticalControl::massPitchErrorWriter_
private
float VerticalControl::massPitchIntegral_
private
DataReader* VerticalControl::massPositionActionReader_
private
DataWriter* VerticalControl::massPositionActionWriter_
private
DataReader* VerticalControl::massPositionCmdReader_
private
float VerticalControl::massPositionLimitAft_
private
ConfigReader* VerticalControl::massPositionLimitAftCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::massPositionLimitFwd_
private
ConfigReader* VerticalControl::massPositionLimitFwdCfgReader_
private

Referenced by readConfig(), and VerticalControl().

UniversalDataReader* VerticalControl::massPositionReader_
private
float VerticalControl::massTurnTime_
private

Referenced by readConfig().

ConfigReader* VerticalControl::massTurnTimeCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxBuoyDiveAccel_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::maxBuoyDiveAccelCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxBuoyDiveRate_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::maxBuoyDiveRateCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxBuoyInt_
private
ConfigReader* VerticalControl::maxBuoyIntCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxDepthInt_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::maxDepthIntCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxDiveAccel_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::maxDiveAccelCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxDiveRate_
private

Referenced by controlDepth(), and readConfig().

ConfigReader* VerticalControl::maxDiveRateCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxPitchElevatorInt_
private
ConfigReader* VerticalControl::maxPitchElevatorIntCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxPitchMassInt_
private
ConfigReader* VerticalControl::maxPitchMassIntCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::maxPitchRate_
private

Referenced by readConfig(), setPitch(), and setPitchRate().

ConfigReader* VerticalControl::maxPitchRateCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::minAscendPitchCfg_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::minAscendPitchCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::minDepthExcursion_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::minDepthExcursionCfgReader_
private

Referenced by readConfig(), and VerticalControl().

bool VerticalControl::missionEnded_
private

Referenced by overrideVertical().

float VerticalControl::nominalDt_
private
ConfigReader* VerticalControl::nominalDtCfgReader_
private

Referenced by readConfig(), and VerticalControl().

bool VerticalControl::ok_
private

Referenced by initialize(), overrideVertical(), and run().

float VerticalControl::periodCmd_
private

Referenced by controlVertical().

DataReader* VerticalControl::periodCmdReader_
private

Other controllers' Command readers.

Referenced by controlVertical(), and VerticalControl().

DataReader* VerticalControl::pitchCmdReader_
private
DataWriter* VerticalControl::pitchInternalWriter_
private

Referenced by setPitch(), and VerticalControl().

float VerticalControl::pitchLimit_
private
ConfigReader* VerticalControl::pitchLimitCfgReader_
private

Referenced by readConfig(), and VerticalControl().

DataReader* VerticalControl::pitchRateCmdReader_
private
UniversalDataReader* VerticalControl::pitchRateReader_
private
bool VerticalControl::previouslyBelowExcursion_
private

Referenced by overrideVertical().

DataWriter* VerticalControl::smoothDepthInternalWriter_
private

Referenced by controlDepth(), and VerticalControl().

float VerticalControl::speedCmd_
private
DataReader* VerticalControl::speedCmdReader_
private

Referenced by controlVertical(), and VerticalControl().

DataWriter* VerticalControl::speedCmdWriter_
private

Referenced by setPitch(), and VerticalControl().

float VerticalControl::stopDepthExcursion_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::stopDepthExcursionCfgReader_
private

Referenced by readConfig(), and VerticalControl().

Timespan VerticalControl::stopOverrideDelay_
private

Referenced by overrideVertical(), and readConfig().

Timespan VerticalControl::stopOverrideDelayBuoy_
private

Referenced by overrideVertical(), and readConfig().

ConfigReader* VerticalControl::stopOverrideDelayBuoyCfgReader_
private

Referenced by readConfig(), and VerticalControl().

ConfigReader* VerticalControl::stopOverrideDelayCfgReader_
private

Referenced by readConfig(), and VerticalControl().

float VerticalControl::surfaceThreshold_
private
ConfigReader* VerticalControl::surfaceThresholdCfgReader_
private

Referenced by readConfig(), and VerticalControl().

int VerticalControl::useElevIntInDepthMode_
private
ConfigReader* VerticalControl::useElevIntInDepthModeCfgReader_
private

Referenced by readConfig(), and VerticalControl().

DataReader* VerticalControl::verticalModeReader_
private

Command readers.

Referenced by controlVertical(), run(), and VerticalControl().

bool VerticalControl::waitingForDepthCrossing_
private

The documentation for this class was generated from the following files: