LRAUV  revA
Point Class Reference

Contains the Point Behavior/Command. More...

#include <Point.h>

Inheritance diagram for Point:
Collaboration diagram for Point:

Public Member Functions

 Point (const Str &prefix, const Module *module)
 Is our starting point latitude > than the latitude of the starting longitude on the crossing line? More...
 
virtual ~Point ()
 
void initialize ()
 Initialize function. More...
 
bool readParams ()
 Read in the parameters for satisfied or runIfUnsatisfied: return true if OK. More...
 
bool calcSatisfied ()
 Perform the satisfied: return true if envelope "satisfied". More...
 
void run ()
 Just do the run: ignore the results of the satisfied. More...
 
bool isSatisfied ()
 Just do the satisfied: return true if envelope "satisfied". More...
 
bool runIfUnsatisfied ()
 Do the run, and return true if envelope "satisfied". More...
 
void uninitialize ()
 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 Attributes

SettingReaderheadingSettingReader_
 Desired absolute bearing to direct the vehicle to. More...
 
SettingReaderheadingDeltaSettingReader_
 Desired change in heading to direct the vehicle to. More...
 
SettingReaderheadingRateSettingReader_
 Desired rate of change in heading. More...
 
SettingReaderrudderAngleSettingReader_
 Desired rudder angle for the vehicle. More...
 
SettingReaderlatitudeSettingReader_
 Desired latitude to achieve. More...
 
SettingReaderlatitudeDeltaSettingReader_
 Desired change in latitude to achieve. More...
 
SettingReadernorthingsDeltaSettingReader_
 Desired change in latitude to achieve, expressed as a distance. More...
 
SettingReaderlongitudeSettingReader_
 Desired longitude to achieve. More...
 
SettingReaderlongitudeDeltaSettingReader_
 Desired change in longitude to achieve. More...
 
SettingReadereastingsDeltaSettingReader_
 Desired change in longitude to achieve, expressed as a distance. More...
 
UniversalDataReaderlatitudeReader_
 Current latitude of the vehicle. More...
 
UniversalDataReaderlongitudeReader_
 Current longitude of the vehicle. More...
 
UniversalDataReaderorientationReader_
 Current orientation of the vehicle. More...
 
DataWriterhorizontalModeWriter_
 Sets the mode for HorizontalControl. More...
 
DataWriterlatitudeCmdWriter_
 Sets the specified latitude for HorizontalControl. More...
 
DataWriterlongitudeCmdWriter_
 Sets the specified longitude for HorizontalControl. More...
 
DataWriterheadingCmdWriter_
 Sets the specified bearing for HorizontalControl. More...
 
DataWriterheadingRateCmdWriter_
 Sets the specified yaw rate for HorizontalControl. More...
 
DataWriterrudderAngleCmdWriter_
 Sets the specified rudder angle for HorizontalControl. More...
 
float latitudeSetting_
 Desired latitude of the vehicle. More...
 
float longitudeSetting_
 Desired longitude of the vehicle. More...
 
float headingSetting_
 Desired orientation of the vehicle. More...
 
float headingRateSetting_
 Desired yaw rate of the vehicle. More...
 
float rudderAngleSetting_
 Desired rudder angle for the vehicle. More...
 
float initialLatitude_
 Initial latitude of the vehicle. More...
 
float initialLongitude_
 Initial longitude of the vehicle. More...
 
float initialOrientation_
 Initial orientation of the vehicle. More...
 
float latitude_
 Current Latitude of the vehicle. More...
 
float longitude_
 Current Longitude of the vehicle. More...
 
float orientation_
 Current Orientation of the vehicle. More...
 
float lastOrientationDelta_
 Last orientation delta of the vehicle. More...
 
float perpendicularSlope_
 Slope for crossing line (thru wapoint) More...
 
bool startOverLine_
 Is our starting point latitude > than the latitude of the starting longitude on the crossing line? More...
 
bool initialized_
 Have we learned all our initial settings? 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

 Point (const Point &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 }
 
- 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 ()
 

Detailed Description

Contains the Point Behavior/Command.

Points the nose of the vehicle in the indicated direction. Can point the vehicle towards a latitude, longitude, or both. Can point towards a depth.

Point.h should only be included by Point.cpp Other classes should include PointIF.h

Constructor & Destructor Documentation

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

Member Function Documentation

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

Mission Component factory interface.

References Point().

Referenced by GuidanceModule::loadComponents().

bool Point::isSatisfied ( )
virtual

Just do the satisfied: return true if envelope "satisfied".

Reimplemented from Behavior.

References calcSatisfied(), and readParams().

bool Point::readParams ( )
void Point::run ( void  )
virtual

Just do the run: ignore the results of the satisfied.

Just do the run.

Reimplemented from Component.

References runIfUnsatisfied().

void Point::uninitialize ( void  )
virtual

Uninit function.

Reimplemented from Component.

References orientationReader_, and UniversalDataReader::requestData().

Member Data Documentation

SettingReader* Point::eastingsDeltaSettingReader_
protected

Desired change in longitude to achieve, expressed as a distance.

If specified with Longitude, added to the specified Longitude Otherwise added to the Longitude at initialization time This variable is used as a test for sequential completion

Referenced by initialize(), and Point().

DataWriter* Point::headingCmdWriter_
protected

Sets the specified bearing for HorizontalControl.

Referenced by Point(), and runIfUnsatisfied().

SettingReader* Point::headingDeltaSettingReader_
protected

Desired change in heading to direct the vehicle to.

If specified with Bearing, Yaw is added to the Bearing. This variable is used as a test for sequential completion if none of Latitude, Longitude, Northings, or Eastings are specified

Referenced by initialize(), and Point().

DataWriter* Point::headingRateCmdWriter_
protected

Sets the specified yaw rate for HorizontalControl.

Referenced by Point(), and runIfUnsatisfied().

float Point::headingRateSetting_
protected

Desired yaw rate of the vehicle.

Referenced by initialize(), and runIfUnsatisfied().

SettingReader* Point::headingRateSettingReader_
protected

Desired rate of change in heading.

If specified with Bearing, Yaw, Latitude, or Longitude, only active until the desired heading change is achieved. Otherwise drives the vehicle in an arc. This variable is not used as a test for sequential completion

Referenced by initialize(), and Point().

float Point::headingSetting_
protected

Desired orientation of the vehicle.

Referenced by calcSatisfied(), initialize(), readParams(), and runIfUnsatisfied().

SettingReader* Point::headingSettingReader_
protected

Desired absolute bearing to direct the vehicle to.

If specified with Bearing, Yaw is added to the Bearing. This variable is used as a test for sequential completion if none of Latitude, Longitude, Northings, or Eastings are specified

Referenced by initialize(), and Point().

DataWriter* Point::horizontalModeWriter_
protected

Sets the mode for HorizontalControl.

Referenced by Point(), and runIfUnsatisfied().

bool Point::initialized_
protected

Have we learned all our initial settings?

Referenced by initialize(), and readParams().

float Point::initialLatitude_
protected

Initial latitude of the vehicle.

Referenced by calcSatisfied(), and initialize().

float Point::initialLongitude_
protected

Initial longitude of the vehicle.

Referenced by calcSatisfied(), and initialize().

float Point::initialOrientation_
protected

Initial orientation of the vehicle.

Referenced by initialize().

float Point::lastOrientationDelta_
protected

Last orientation delta of the vehicle.

Referenced by calcSatisfied(), and initialize().

float Point::latitude_
protected

Current Latitude of the vehicle.

Referenced by calcSatisfied(), initialize(), readParams(), and runIfUnsatisfied().

DataWriter* Point::latitudeCmdWriter_
protected

Sets the specified latitude for HorizontalControl.

Referenced by Point().

SettingReader* Point::latitudeDeltaSettingReader_
protected

Desired change in latitude to achieve.

If specified with Latitude, added to the specified Latitude Otherwise added to the Latitude at initialization time This variable is used as a test for sequential completion

Referenced by initialize(), and Point().

UniversalDataReader* Point::latitudeReader_
protected

Current latitude of the vehicle.

Referenced by initialize(), Point(), and readParams().

float Point::latitudeSetting_
protected

Desired latitude of the vehicle.

Referenced by calcSatisfied(), initialize(), readParams(), and runIfUnsatisfied().

SettingReader* Point::latitudeSettingReader_
protected

Desired latitude to achieve.

Nominally drives the vehicle due east or west. Can be specified with Longitude, Bearing, or Yaw to drive the vehicle diagonally. This variable is used as a test for sequential completion

Referenced by initialize(), and Point().

float Point::longitude_
protected

Current Longitude of the vehicle.

Referenced by calcSatisfied(), initialize(), readParams(), and runIfUnsatisfied().

DataWriter* Point::longitudeCmdWriter_
protected

Sets the specified longitude for HorizontalControl.

Referenced by Point().

SettingReader* Point::longitudeDeltaSettingReader_
protected

Desired change in longitude to achieve.

If specified with Longitude, added to the specified Longitude Otherwise added to the Longitude at initialization time This variable is used as a test for sequential completion

Referenced by initialize(), and Point().

UniversalDataReader* Point::longitudeReader_
protected

Current longitude of the vehicle.

Referenced by initialize(), Point(), and readParams().

float Point::longitudeSetting_
protected

Desired longitude of the vehicle.

Referenced by calcSatisfied(), initialize(), readParams(), and runIfUnsatisfied().

SettingReader* Point::longitudeSettingReader_
protected

Desired longitude to achieve.

Nominally drives the vehicle due north or south. Can be specified with Latitude, Bearing, or Yaw to drive the vehicle diagonally. This variable is used as a test for sequential completion

Referenced by initialize(), and Point().

SettingReader* Point::northingsDeltaSettingReader_
protected

Desired change in latitude to achieve, expressed as a distance.

If specified with Latitude, added to the specified Latitude Otherwise added to the Latitude at initialization time This variable is used as a test for sequential completion

Referenced by initialize(), and Point().

float Point::orientation_
protected

Current Orientation of the vehicle.

Referenced by calcSatisfied(), initialize(), and readParams().

UniversalDataReader* Point::orientationReader_
protected

Current orientation of the vehicle.

Referenced by initialize(), Point(), readParams(), and uninitialize().

float Point::perpendicularSlope_
protected

Slope for crossing line (thru wapoint)

Referenced by calcSatisfied(), and initialize().

DataWriter* Point::rudderAngleCmdWriter_
protected

Sets the specified rudder angle for HorizontalControl.

Referenced by Point(), and runIfUnsatisfied().

float Point::rudderAngleSetting_
protected

Desired rudder angle for the vehicle.

Referenced by initialize(), and runIfUnsatisfied().

SettingReader* Point::rudderAngleSettingReader_
protected

Desired rudder angle for the vehicle.

If specified with Bearing, Yaw, Latitude, or Longitude, only active until the desired heading change is achieved. Otherwise drives the vehicle in an arc. Overrides yawRate command. This variable is not used as a test for sequential completion

Referenced by initialize(), and Point().

bool Point::startOverLine_
protected

Is our starting point latitude > than the latitude of the starting longitude on the crossing line?

Referenced by calcSatisfied(), and initialize().


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