LRAUV  revA
YoYo Class Reference

Contains the YoYo Behavior. More...

#include <YoYo.h>

Inheritance diagram for YoYo:
Collaboration diagram for YoYo:

Public Member Functions

 YoYo (const Str &prefix, const Module *module)
 
virtual ~YoYo ()
 
void initialize (void)
 Initialize function. More...
 
bool isSatisfied ()
 Returns true when vehicle is starting to inflect. More...
 
bool runIfUnsatisfied ()
 runs only if unsatisfied More...
 
void run ()
 The actual "payload" of the component. More...
 
void uninitialize (void)
 Uninit function. More...
 
- Public Member Functions inherited from Behavior
virtual ~Behavior ()
 
bool executeIfUnsatisfied ()
 Combined run and test with metrics generation. More...
 
virtual void preempted ()
 
virtual bool isRunnable ()
 
virtual bool isSatisfiable ()
 
virtual bool isCommand ()
 
BehaviorState getBehaviorState () const
 
void setBehaviorState (BehaviorState behaviorState)
 
virtual bool isCompleted (void)
 Query if this component is completed. More...
 
SettingReaderfindSettingReader (const Str &settingURI)
 
SettingReaderaddValueClause (const Str &uriPart, ValueClause *valueClause)
 
void addArgWriter (const Str &uriPart, DataWriter *argWriter)
 
const TimespangetTimeout ()
 
void setTimeout (const Timespan &timeout)
 
- 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)
 
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)
 

Static Public Member Functions

static BehaviorCreateBehavior (const Str &prefix, const Module *module)
 Mission Component factory interface. More...
 

Protected Member Functions

void writeCmds ()
 
bool calcSatisfied ()
 
void readConfig ()
 
void readSettings ()
 
bool calculate ()
 
float adjustDepthRate (float depthRate, bool goDown)
 
void setGoingDown (bool goingDown)
 
- Protected Member Functions inherited from Behavior
 Behavior (const Str &name, const Module *module, const bool runnable, const bool satisfiable)
 Protected constructor for abstract base class. More...
 
 Behavior (const Behavior &old)
 
SettingReadernewSettingReader (const Str &uriPart, const DataValue *defaultValue, bool deleteDefaultValue=true)
 
SettingReadernewSettingReader (const SettingURI &uriPart)
 
DataWriterfindArgWriter (const OutputURI &uriPart)
 
- 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

ConfigReaderpitchLimitCfgReader_
 
ConfigReadermaxDiveRateCfgReader_
 
ConfigReadermaxBuoyDiveRateCfgReader_
 
DataReaderverticalModeReader_
 Current vertical control depth mode. More...
 
DataReaderdepthRateCmdReader_
 Current vertical control depth rate command. More...
 
DataReaderpitchCmdReader_
 Current vertical control pitch command. More...
 
DataReaderspeedCmdReader_
 Current speed control speed command. More...
 
SettingReaderpitchSettingReader_
 Behavior pitch setting. More...
 
SettingReaderdownPitchSettingReader_
 
SettingReaderupPitchSettingReader_
 
SettingReaderdepthRateSettingReader_
 
SettingReaderdownDepthRateSettingReader_
 
SettingReaderupDepthRateSettingReader_
 
SettingReadersatisfiedThresholdSettingReader_
 
UniversalDataReaderdepthReader_
 Current depth. More...
 
UniversalDataReaderdepthRateReader_
 Current depth rate. More...
 
UniversalDataReaderpitchReader_
 Current pitch. More...
 
DataWriterverticalModeWriter_
 Sets the vertical mode for VerticalControl. More...
 
DataWriterdepthRateCmdWriter_
 Sets the depth rate for VerticalControl. More...
 
DataWriterpitchCmdWriter_
 Sets the pitch for VerticalControl. More...
 
float downPitchSetting_
 Desired "down" pitch of the vehicle. More...
 
float upPitchSetting_
 Desired "up" pitch of the vehicle. More...
 
float downDepthRateSetting_
 Desired "down" depth rate of the vehicle. More...
 
float upDepthRateSetting_
 Desired "up" depth rate of the vehicle. More...
 
float satisfiedThresholdSetting_
 Minimum depth change required to enable sequence behavior to be satisfied. More...
 
float maxDiveRate_
 Maximum dive rate of the vehicle. More...
 
float maxBuoyDiveRate_
 Maximum dive rate of the vehicle under only buoyancy control. More...
 
float speedCmd_
 Current speed cmd. More...
 
bool initialized_
 Indicates initialization success. More...
 
bool goingDown_
 True if going down. More...
 
bool satisfied_
 
bool ranOnce_
 
float startDepth_
 
VerticalControlIF::VerticalMode verticalMode_
 Command to set verticalMode. More...
 
float pitchCmd_
 Command to set pitch. More...
 
float depthRateCmd_
 Command to set depth rate. More...
 
- Protected Attributes inherited from Behavior
bool runnable_
 
bool satisfiable_
 
BehaviorState behaviorState_
 
Timespan timeout_
 Time before this behavior must end – defaults no timeout. More...
 
FastMap< const Str, SettingReader * > * settingReaderMap_
 
FastMap< const Str, DataWriter * > * argWriterMap_
 
- 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...
 

Private Member Functions

 YoYo (const YoYo &old)
 

Additional Inherited Members

- Public Types inherited from Behavior
enum  BehaviorState {
  BEHAVIOR_INACTIVE, BEHAVIOR_CALLED, BEHAVIOR_ACTIVE, BEHAVIOR_TIMEOUT,
  BEHAVIOR_COMPLETED
}
 
- 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
}
 
- Protected Types inherited from Component
enum  ConfigOption { CONFIG_SIMULATE_HARDWARE, CONFIG_POWER, CONFIG_FREQUENCY, CONFIG_LATENCY }
 

Detailed Description

Contains the YoYo Behavior.

YoYo is very simple – it simply causes the vehicle to descend as quickly as possible when it it pointing down, and to ascend as quickly as possible when it is pointing up. An outer DepthEnvelope is responsible for causing the inflections at the top and bottom of the yo-yos.

YoYo.h should only be included by YoYo.cpp Other classes should include YoYoIF.h

Constructor & Destructor Documentation

YoYo::~YoYo ( )
virtual
YoYo::YoYo ( const YoYo old)
private

Member Function Documentation

float YoYo::adjustDepthRate ( float  depthRate,
bool  goDown 
)
protected

References maxBuoyDiveRate_, maxDiveRate_, and speedCmd_.

Referenced by calculate().

bool YoYo::calcSatisfied ( )
protected

References satisfied_.

Referenced by isSatisfied().

Behavior * YoYo::CreateBehavior ( const Str prefix,
const Module module 
)
static

Mission Component factory interface.

References YoYo().

Referenced by GuidanceModule::loadComponents().

bool YoYo::isSatisfied ( )
virtual

Returns true when vehicle is starting to inflect.

Reimplemented from Behavior.

References calcSatisfied(), and calculate().

void YoYo::run ( void  )
virtual

The actual "payload" of the component.

Reimplemented from Component.

References calculate(), and writeCmds().

bool YoYo::runIfUnsatisfied ( void  )
virtual

runs only if unsatisfied

Reimplemented from Behavior.

References calculate(), Syslog::INFO, Component::logger_, satisfied_, Logger::syslog(), and writeCmds().

void YoYo::setGoingDown ( bool  goingDown)
protected
void YoYo::uninitialize ( void  )
virtual

Member Data Documentation

float YoYo::depthRateCmd_
protected

Command to set depth rate.

Referenced by calculate(), and writeCmds().

DataReader* YoYo::depthRateCmdReader_
protected

Current vertical control depth rate command.

Referenced by calculate(), and YoYo().

DataWriter* YoYo::depthRateCmdWriter_
protected

Sets the depth rate for VerticalControl.

Referenced by writeCmds(), and YoYo().

UniversalDataReader* YoYo::depthRateReader_
protected

Current depth rate.

Referenced by calculate(), initialize(), uninitialize(), and YoYo().

SettingReader* YoYo::depthRateSettingReader_
protected

Referenced by readSettings(), and YoYo().

UniversalDataReader* YoYo::depthReader_
protected

Current depth.

Referenced by calculate(), initialize(), setGoingDown(), uninitialize(), and YoYo().

float YoYo::downDepthRateSetting_
protected

Desired "down" depth rate of the vehicle.

Referenced by calculate(), initialize(), and readSettings().

SettingReader* YoYo::downDepthRateSettingReader_
protected

Referenced by readSettings(), and YoYo().

float YoYo::downPitchSetting_
protected

Desired "down" pitch of the vehicle.

Referenced by calculate(), initialize(), readConfig(), and readSettings().

SettingReader* YoYo::downPitchSettingReader_
protected

Referenced by readSettings(), and YoYo().

bool YoYo::goingDown_
protected

True if going down.

Referenced by calculate(), initialize(), and setGoingDown().

bool YoYo::initialized_
protected

Indicates initialization success.

Referenced by calculate(), initialize(), and uninitialize().

float YoYo::maxBuoyDiveRate_
protected

Maximum dive rate of the vehicle under only buoyancy control.

Referenced by adjustDepthRate(), and readConfig().

ConfigReader* YoYo::maxBuoyDiveRateCfgReader_
protected

Referenced by readConfig(), and YoYo().

float YoYo::maxDiveRate_
protected

Maximum dive rate of the vehicle.

Referenced by adjustDepthRate(), and readConfig().

ConfigReader* YoYo::maxDiveRateCfgReader_
protected

Referenced by readConfig(), and YoYo().

float YoYo::pitchCmd_
protected

Command to set pitch.

Referenced by calculate(), and writeCmds().

DataReader* YoYo::pitchCmdReader_
protected

Current vertical control pitch command.

Referenced by calculate(), and YoYo().

DataWriter* YoYo::pitchCmdWriter_
protected

Sets the pitch for VerticalControl.

Referenced by writeCmds(), and YoYo().

ConfigReader* YoYo::pitchLimitCfgReader_
protected

Referenced by readConfig(), and YoYo().

UniversalDataReader* YoYo::pitchReader_
protected

Current pitch.

Referenced by initialize(), uninitialize(), and YoYo().

SettingReader* YoYo::pitchSettingReader_
protected

Behavior pitch setting.

Referenced by readSettings(), and YoYo().

bool YoYo::ranOnce_
protected

Referenced by calculate(), initialize(), and setGoingDown().

bool YoYo::satisfied_
protected
float YoYo::satisfiedThresholdSetting_
protected

Minimum depth change required to enable sequence behavior to be satisfied.

Referenced by initialize(), readSettings(), and setGoingDown().

SettingReader* YoYo::satisfiedThresholdSettingReader_
protected

Referenced by readSettings(), and YoYo().

float YoYo::speedCmd_
protected

Current speed cmd.

Referenced by adjustDepthRate(), and calculate().

DataReader* YoYo::speedCmdReader_
protected

Current speed control speed command.

Referenced by calculate(), and YoYo().

float YoYo::startDepth_
protected

Referenced by calculate(), and setGoingDown().

float YoYo::upDepthRateSetting_
protected

Desired "up" depth rate of the vehicle.

Referenced by calculate(), initialize(), and readSettings().

SettingReader* YoYo::upDepthRateSettingReader_
protected

Referenced by readSettings(), and YoYo().

float YoYo::upPitchSetting_
protected

Desired "up" pitch of the vehicle.

Referenced by calculate(), initialize(), readConfig(), and readSettings().

SettingReader* YoYo::upPitchSettingReader_
protected

Referenced by readSettings(), and YoYo().

VerticalControlIF::VerticalMode YoYo::verticalMode_
protected

Command to set verticalMode.

Referenced by calculate(), and writeCmds().

DataReader* YoYo::verticalModeReader_
protected

Current vertical control depth mode.

Referenced by calculate(), and YoYo().

DataWriter* YoYo::verticalModeWriter_
protected

Sets the vertical mode for VerticalControl.

Referenced by writeCmds(), and YoYo().


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