|
LRAUV
revA
|
Contains the YoYo Behavior. More...
#include <YoYo.h>


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... | |
| SettingReader * | findSettingReader (const Str &settingURI) |
| SettingReader * | addValueClause (const Str &uriPart, ValueClause *valueClause) |
| void | addArgWriter (const Str &uriPart, DataWriter *argWriter) |
| const Timespan & | getTimeout () |
| 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 Module * | getModule () |
| 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 CodedStr & | getName (void) const |
| Returns the name. More... | |
| const Timestamp & | getTimeOfLastRun (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 Timespan & | getPeriod (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) |
| Logger & | getLogger (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 Timestamp & | getWriteTimestamp (void) |
| void | setWriteTimestamp (const Timestamp &writeTimestamp) |
| BlobReader * | newBlobReader (const BlobURI &blobURI) |
| BlobReader * | newBlobReaderFromUniversal (const Str &componentName, const UniversalBlobURI &blobURI) |
| BlobWriter * | newBlobWriter (const BlobURI &blobURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS) |
| ConfigReader * | newConfigReader (const ConfigURI &configURI) |
| DataReader * | newDataReader (const DataURI &dataURI) |
| DataReader * | newDataReaderFromUniversal (const Str &componentName, const UniversalURI &universalURI) |
| DataWriter * | newDataWriter (const DataURI &dataURI, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS) |
| UniversalBlobReader * | newUniversalBlobReader (const UniversalBlobURI &universalURI) |
| UniversalBlobWriter * | newUniversalBlobWriter (const UniversalBlobURI &universalURI, const Unit &accuracyUnit=Units::NONE, const float accuracy=DataElement::NO_ACCURACY, Logger::TimePrecisionType timePrecision=Logger::TIME_PRECISION_MILLIS) |
| UniversalDataReader * | newUniversalReader (const UniversalURI &universalURI) |
| UniversalDataWriter * | newUniversalWriter (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 Behavior * | CreateBehavior (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) | |
| SettingReader * | newSettingReader (const Str &uriPart, const DataValue *defaultValue, bool deleteDefaultValue=true) |
| SettingReader * | newSettingReader (const SettingURI &uriPart) |
| DataWriter * | findArgWriter (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 | |
| ConfigReader * | pitchLimitCfgReader_ |
| ConfigReader * | maxDiveRateCfgReader_ |
| ConfigReader * | maxBuoyDiveRateCfgReader_ |
| DataReader * | verticalModeReader_ |
| Current vertical control depth mode. More... | |
| DataReader * | depthRateCmdReader_ |
| Current vertical control depth rate command. More... | |
| DataReader * | pitchCmdReader_ |
| Current vertical control pitch command. More... | |
| DataReader * | speedCmdReader_ |
| Current speed control speed command. More... | |
| SettingReader * | pitchSettingReader_ |
| Behavior pitch setting. More... | |
| SettingReader * | downPitchSettingReader_ |
| SettingReader * | upPitchSettingReader_ |
| SettingReader * | depthRateSettingReader_ |
| SettingReader * | downDepthRateSettingReader_ |
| SettingReader * | upDepthRateSettingReader_ |
| SettingReader * | satisfiedThresholdSettingReader_ |
| UniversalDataReader * | depthReader_ |
| Current depth. More... | |
| UniversalDataReader * | depthRateReader_ |
| Current depth rate. More... | |
| UniversalDataReader * | pitchReader_ |
| Current pitch. More... | |
| DataWriter * | verticalModeWriter_ |
| Sets the vertical mode for VerticalControl. More... | |
| DataWriter * | depthRateCmdWriter_ |
| Sets the depth rate for VerticalControl. More... | |
| DataWriter * | pitchCmdWriter_ |
| 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_ |
| CodedStr & | name_ |
| 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 Module * | module_ |
| Timespan | pauseTime_ |
| bool | meteringEnabled_ |
| If true, metering is enabled. More... | |
| DataWriter * | durationOfLastRunWriter_ |
| Writer for durationOfLastRun. More... | |
| DataWriter * | voltageWriter_ |
| DataWriter * | avgVoltageWriter_ |
| DataWriter * | currentWriter_ |
| DataWriter * | avgCurrentWriter_ |
| 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 } |
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
References UniversalURI::DEPTH, UniversalURI::DEPTH_RATE, depthRateCmdReader_, depthRateCmdWriter_, depthRateReader_, depthRateSettingReader_, depthReader_, downDepthRateSettingReader_, downPitchSettingReader_, Component::logger_, maxBuoyDiveRateCfgReader_, maxDiveRateCfgReader_, Component::newConfigReader(), Component::newDataReader(), Component::newDataWriter(), Behavior::newSettingReader(), Component::newUniversalReader(), pitchCmdReader_, pitchCmdWriter_, pitchLimitCfgReader_, pitchReader_, pitchSettingReader_, UniversalURI::PLATFORM_PITCH_ANGLE, readConfig(), satisfiedThresholdSettingReader_, speedCmdReader_, Logger::syslog(), upDepthRateSettingReader_, upPitchSettingReader_, verticalModeReader_, and verticalModeWriter_.
Referenced by CreateBehavior().
|
virtual |
|
private |
|
protected |
References maxBuoyDiveRate_, maxDiveRate_, and speedCmd_.
Referenced by calculate().
|
protected |
References satisfied_.
Referenced by isSatisfied().
|
protected |
References adjustDepthRate(), VerticalControlIF::DEPTH, VerticalControlIF::DEPTH_RATE, depthRateCmd_, depthRateCmdReader_, depthRateReader_, depthReader_, downDepthRateSetting_, downPitchSetting_, Units::ENUM, VerticalControlIF::FLOAT_ON_SURFACE, goingDown_, initialized_, DataReader::isActive(), VerticalControlIF::MASS_AND_ELEVATOR, Units::METER, Units::METER_PER_SECOND, VerticalControlIF::NONE, VerticalControlIF::PITCH, VerticalControlIF::PITCH_RATE, VerticalControlIF::PITCH_ZERO, pitchCmd_, pitchCmdReader_, ranOnce_, DataReader::read(), readConfig(), readSettings(), setGoingDown(), speedCmd_, speedCmdReader_, startDepth_, VerticalControlIF::SURFACE, upDepthRateSetting_, upPitchSetting_, verticalMode_, verticalModeReader_, and DataReader::wasTouchedSinceLastRun().
Referenced by isSatisfied(), run(), and runIfUnsatisfied().
Mission Component factory interface.
References YoYo().
Referenced by GuidanceModule::loadComponents().
|
virtual |
Initialize function.
Reimplemented from Component.
References depthRateReader_, depthReader_, downDepthRateSetting_, downPitchSetting_, goingDown_, initialized_, Component::logger_, pitchReader_, ranOnce_, readSettings(), UniversalDataReader::requestData(), satisfied_, satisfiedThresholdSetting_, Logger::syslog(), upDepthRateSetting_, and upPitchSetting_.
|
virtual |
Returns true when vehicle is starting to inflect.
Reimplemented from Behavior.
References calcSatisfied(), and calculate().
|
protected |
References downPitchSetting_, maxBuoyDiveRate_, maxBuoyDiveRateCfgReader_, maxDiveRate_, maxDiveRateCfgReader_, Units::METER_PER_SECOND, pitchLimitCfgReader_, Units::RADIAN, DataReader::read(), and upPitchSetting_.
Referenced by calculate(), and YoYo().
|
protected |
References depthRateSettingReader_, downDepthRateSetting_, downDepthRateSettingReader_, downPitchSetting_, downPitchSettingReader_, SettingReader::isActive(), Units::METER, Units::METER_PER_SECOND, pitchSettingReader_, Units::RADIAN, SettingReader::read(), satisfiedThresholdSetting_, satisfiedThresholdSettingReader_, upDepthRateSetting_, upDepthRateSettingReader_, upPitchSetting_, and upPitchSettingReader_.
Referenced by calculate(), and initialize().
|
virtual |
The actual "payload" of the component.
Reimplemented from Component.
References calculate(), and writeCmds().
|
virtual |
runs only if unsatisfied
Reimplemented from Behavior.
References calculate(), Syslog::INFO, Component::logger_, satisfied_, Logger::syslog(), and writeCmds().
|
protected |
References depthReader_, goingDown_, Units::METER, ranOnce_, DataReader::read(), satisfied_, satisfiedThresholdSetting_, and startDepth_.
Referenced by calculate().
|
virtual |
Uninit function.
Reimplemented from Component.
References depthRateReader_, depthReader_, initialized_, Component::logger_, pitchReader_, UniversalDataReader::requestData(), and Logger::syslog().
|
protected |
References depthRateCmd_, depthRateCmdWriter_, Units::ENUM, VerticalControlIF::NONE, pitchCmd_, pitchCmdWriter_, Units::RADIAN, verticalMode_, verticalModeWriter_, and DataWriter::write().
Referenced by run(), and runIfUnsatisfied().
|
protected |
Command to set depth rate.
Referenced by calculate(), and writeCmds().
|
protected |
Current vertical control depth rate command.
Referenced by calculate(), and YoYo().
|
protected |
Sets the depth rate for VerticalControl.
Referenced by writeCmds(), and YoYo().
|
protected |
Current depth rate.
Referenced by calculate(), initialize(), uninitialize(), and YoYo().
|
protected |
Referenced by readSettings(), and YoYo().
|
protected |
Current depth.
Referenced by calculate(), initialize(), setGoingDown(), uninitialize(), and YoYo().
|
protected |
Desired "down" depth rate of the vehicle.
Referenced by calculate(), initialize(), and readSettings().
|
protected |
Referenced by readSettings(), and YoYo().
|
protected |
Desired "down" pitch of the vehicle.
Referenced by calculate(), initialize(), readConfig(), and readSettings().
|
protected |
Referenced by readSettings(), and YoYo().
|
protected |
True if going down.
Referenced by calculate(), initialize(), and setGoingDown().
|
protected |
Indicates initialization success.
Referenced by calculate(), initialize(), and uninitialize().
|
protected |
Maximum dive rate of the vehicle under only buoyancy control.
Referenced by adjustDepthRate(), and readConfig().
|
protected |
Referenced by readConfig(), and YoYo().
|
protected |
Maximum dive rate of the vehicle.
Referenced by adjustDepthRate(), and readConfig().
|
protected |
Referenced by readConfig(), and YoYo().
|
protected |
Command to set pitch.
Referenced by calculate(), and writeCmds().
|
protected |
Current vertical control pitch command.
Referenced by calculate(), and YoYo().
|
protected |
Sets the pitch for VerticalControl.
Referenced by writeCmds(), and YoYo().
|
protected |
Referenced by readConfig(), and YoYo().
|
protected |
Current pitch.
Referenced by initialize(), uninitialize(), and YoYo().
|
protected |
Behavior pitch setting.
Referenced by readSettings(), and YoYo().
|
protected |
Referenced by calculate(), initialize(), and setGoingDown().
|
protected |
Referenced by calcSatisfied(), initialize(), runIfUnsatisfied(), and setGoingDown().
|
protected |
Minimum depth change required to enable sequence behavior to be satisfied.
Referenced by initialize(), readSettings(), and setGoingDown().
|
protected |
Referenced by readSettings(), and YoYo().
|
protected |
Current speed cmd.
Referenced by adjustDepthRate(), and calculate().
|
protected |
Current speed control speed command.
Referenced by calculate(), and YoYo().
|
protected |
Referenced by calculate(), and setGoingDown().
|
protected |
Desired "up" depth rate of the vehicle.
Referenced by calculate(), initialize(), and readSettings().
|
protected |
Referenced by readSettings(), and YoYo().
|
protected |
Desired "up" pitch of the vehicle.
Referenced by calculate(), initialize(), readConfig(), and readSettings().
|
protected |
Referenced by readSettings(), and YoYo().
|
protected |
Command to set verticalMode.
Referenced by calculate(), and writeCmds().
|
protected |
Current vertical control depth mode.
Referenced by calculate(), and YoYo().
|
protected |
Sets the vertical mode for VerticalControl.
Referenced by writeCmds(), and YoYo().