|
LRAUV
revA
|
Provides software interface to the Microstrain 3DMGX1 AHRS. More...
#include <AHRS_3DMGX3.h>


Public Member Functions | |
| AHRS_3DMGX3 (const Module *module) | |
| virtual | ~AHRS_3DMGX3 () |
| virtual void | run () |
| The actual "payload" of the component. 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. More... | |
| virtual RunState | pause () |
| Pause for a short period (indicated by pauseTime) 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 | runnable () |
| Should eventually follow a START request or RESETTING. 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 () |
| Initial state – can be later followed by START. More... | |
| void | uninitialize () |
| Provide a space for uninitialization. More... | |
| virtual ConfigURI | getConfigURI (ConfigOption configOption) const |
| Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc. 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 Module * | getModule () |
| virtual void | initialize () |
| Provide a space for initialization before being run. More... | |
| 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 | satisfied () |
| Possible return value of a Behavior. More... | |
| virtual RunState | pausing () |
| Might follow a PAUSE 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 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) |
Private Member Functions | |
| AHRS_3DMGX3 (const AHRS_3DMGX3 &old) | |
| void | readConfig () |
| bool | isDataRequested () |
| float | extractFloat (char *convertFloat) |
| FailureMode::FailType | readTemperature (float &temperature) |
| FailureMode::FailType | readTransducers (float &roll, float &pitch, float &magHeading, float &rollRate, float &pitchRate, float &yawRate) |
Private Attributes | |
| UniversalDataReader * | latitudeReader_ |
| UniversalDataReader * | longitudeReader_ |
| DataWriter * | compassHeadingWriter_ |
| UniversalDataWriter * | magneticHeadingWriter_ |
| UniversalDataWriter * | trueHeadingWriter_ |
| UniversalDataWriter * | pitchWriter_ |
| UniversalDataWriter * | rollWriter_ |
| UniversalBlobWriter * | rotationMatrixWriter_ |
| UniversalDataWriter * | rollRateWriter_ |
| UniversalDataWriter * | pitchRateWriter_ |
| UniversalDataWriter * | yawRateWriter_ |
| ConfigReader * | magDeviationCfgReader_ |
| ConfigReader * | pitchOffsetCfgReader_ |
| ConfigReader * | rollOffsetCfgReader_ |
| bool | debug_ |
| LoadControl | loadControl_ |
| Timespan | ahrsTimeout_ |
| Timestamp | startTime_ |
| bool | usingSimWarned_ |
| float | magDeviation_ |
| Deviation of this compass in the vehicle. More... | |
| float | magVariation_ |
| float | pitchOffset_ |
| Offset for mounting. In degrees. More... | |
| float | rollOffset_ |
| float | gyroGain_ |
| char | deviceResponse_ [96] |
| UartStream | uart_ |
| FailureMode::FailType | fault_ |
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 SyncSensorComponent | |
| SyncSensorComponent (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, 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_ |
| 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... | |
Provides software interface to the Microstrain 3DMGX1 AHRS.
Can also use SimSlate to provide simulated AHRS values when they are available.
AHRS_3DMGX3.h should only be included by AHRS_3DMGX3.cpp Other classes should include AHRS_3DMGX3IF.h
| AHRS_3DMGX3::AHRS_3DMGX3 | ( | const Module * | module | ) |
References AHRS_ACCURACY, AHRS_RATE_ACCURACY, compassHeadingWriter_, Units::DEGREE, UniversalURI::LATITUDE, latitudeReader_, UniversalURI::LONGITUDE, longitudeReader_, magDeviationCfgReader_, magneticHeadingWriter_, Component::newConfigReader(), Component::newDataWriter(), Component::newUniversalBlobWriter(), Component::newUniversalReader(), Component::newUniversalWriter(), Units::NONE, pitchOffsetCfgReader_, pitchRateWriter_, pitchWriter_, UniversalURI::PLATFORM_MAGNETIC_ORIENTATION, UniversalURI::PLATFORM_ORIENTATION, UniversalURI::PLATFORM_ORIENTATION_MATRIX, UniversalURI::PLATFORM_PITCH_ANGLE, UniversalURI::PLATFORM_PITCH_RATE, UniversalURI::PLATFORM_ROLL_ANGLE, UniversalURI::PLATFORM_ROLL_RATE, UniversalURI::PLATFORM_YAW_RATE, Units::RADIAN_PER_SECOND, rollOffsetCfgReader_, rollRateWriter_, rollWriter_, rotationMatrixWriter_, Component::setRunState(), Component::START, trueHeadingWriter_, and yawRateWriter_.
|
virtual |
|
private |
|
private |
Referenced by readTransducers().
|
virtual |
Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc.
Reimplemented from Component.
References Component::CONFIG_POWER, Component::CONFIG_SIMULATE_HARDWARE, and ConfigURI::NO_CONFIG_URI.
|
private |
References compassHeadingWriter_, DataWriter::isDataRequested(), magneticHeadingWriter_, pitchRateWriter_, pitchWriter_, rollRateWriter_, rollWriter_, rotationMatrixWriter_, trueHeadingWriter_, and yawRateWriter_.
Referenced by paused(), runnable(), and stopped().
|
virtual |
Pause for a short period (indicated by pauseTime)
Reimplemented from Component.
References UartStream::close(), debug_, Syslog::FAULT, FailureMode::HARDWARE, Syslog::INFO, loadControl_, Component::logger_, Component::PAUSED, LoadControl::powerDown(), Component::setFailure(), Component::simulateHardware(), Component::STOP, Logger::syslog(), and uart_.
|
virtual |
Should eventually follow a PAUSE request: should set continueTime.
Reimplemented from Component.
References debug_, Syslog::INFO, isDataRequested(), Component::logger_, Component::PAUSED, resume(), and Logger::syslog().
|
private |
References magDeviation_, magDeviationCfgReader_, pitchOffset_, pitchOffsetCfgReader_, Units::RADIAN, DataReader::read(), rollOffset_, and rollOffsetCfgReader_.
Referenced by runnable(), and starting().
|
private |
|
private |
References FailureMode::COMMUNICATIONS, FailureMode::DATA, deviceResponse_, Syslog::ERROR, UartStream::errorString(), extractFloat(), UartStream::flush(), UartStream::hasError(), Component::logger_, FailureMode::NONE, UartStream::read(), Logger::syslog(), and uart_.
Referenced by runnable(), and starting().
|
inlinevirtual |
|
virtual |
Resume from PAUSE.
Reimplemented from Component.
References FailureMode::COMMUNICATIONS, debug_, Syslog::ERROR, UartStream::errorString(), Syslog::FAULT, FailureMode::HARDWARE, UartStream::hasError(), Syslog::INFO, loadControl_, Component::logger_, UartStream::open(), LoadControl::powerUp(), Component::RESUMING, Component::setFailure(), Component::simulateHardware(), Component::STOP, Logger::syslog(), and uart_.
Referenced by paused().
|
virtual |
Might follow a PAUSE...RESUME sequence.
Reimplemented from Component.
References debug_, Syslog::INFO, Component::logger_, Component::RUNNABLE, and Logger::syslog().
|
virtual |
The actual "payload" of the component.
Reimplemented from Component.
|
virtual |
Should eventually follow a START request or RESETTING.
Reimplemented from Component.
References ahrsTimeout_, compassHeadingWriter_, debug_, Timestamp::elapsed(), LoadControl::errorString(), Syslog::FAULT, fault_, Str::find(), FailureMode::HARDWARE, LoadControl::hasError(), SimSlate::HEADING_RADIAN, Syslog::INFO, DataReader::isActive(), isDataRequested(), latitudeReader_, loadControl_, Component::logger_, longitudeReader_, magDeviation_, magneticHeadingWriter_, magVariation_, AuvMath::ModPi(), FailureMode::NONE, Units::NONE, Timestamp::Now(), Component::PAUSE, SimSlate::PITCH_RADIAN, SimSlate::PITCH_RATE_RADIAN_PER_SECOND, pitchOffset_, pitchRateWriter_, pitchWriter_, MagneticVariation::Radian(), Units::RADIAN, Units::RADIAN_PER_SECOND, DataReader::read(), SimSlate::Read(), readConfig(), readTransducers(), LoadControl::requestVoltageAndCurrent(), Component::resetFailCount(), SimSlate::ROLL_RADIAN, SimSlate::ROLL_RATE_RADIAN_PER_SECOND, rollOffset_, rollRateWriter_, rollWriter_, rotationMatrixWriter_, Component::RUNNABLE, Component::setFailure(), Component::simulateHardware(), Component::START, startTime_, Component::STOP, Logger::syslog(), trueHeadingWriter_, DataWriter::write(), AbstractBlobWriter::write2DClass(), SimSlate::YAW_RATE_RADIAN_PER_SECOND, and yawRateWriter_.
|
virtual |
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Reimplemented from Component.
References FailureMode::COMMUNICATIONS, debug_, deviceResponse_, Syslog::ERROR, UartStream::errorString(), Syslog::FAULT, fault_, FailureMode::HARDWARE, UartStream::hasError(), Syslog::INFO, loadControl_, Component::logger_, FailureMode::NONE, Timestamp::Now(), UartStream::open(), LoadControl::powerUp(), Component::setAllowableFailures(), Component::setFailure(), Component::simulateHardware(), Component::START, Component::STARTING, startTime_, Component::STOP, Logger::syslog(), and uart_.
Referenced by stopped().
|
virtual |
Might follow a STOP...START sequence.
Reimplemented from Component.
References debug_, Syslog::ERROR, Syslog::FAULT, fault_, Syslog::INFO, Component::logger_, magVariation_, FailureMode::NONE, Timestamp::Now(), SimSlate::PITCH_RADIAN, MagneticVariation::Radian(), Units::RADIAN, SimSlate::Read(), readConfig(), Slate::ReadOnce(), readTransducers(), Component::RUNNABLE, Component::setFailure(), Component::simulateHardware(), Component::STOP, Logger::syslog(), and usingSimWarned_.
|
virtual |
Initial state – can be later followed by START.
Reimplemented from Component.
References debug_, Syslog::INFO, Component::logger_, Component::STOPPING, Logger::syslog(), and uninitialize().
Referenced by resetting(), and stopped().
|
virtual |
Initial state – can be later followed by START.
Reimplemented from Component.
References UartStream::close(), debug_, LoadControl::getPowerState(), Syslog::INFO, isDataRequested(), UartStream::isReadable(), loadControl_, Component::logger_, LoadControl::OFF, LoadControl::POWER_DOWN, Component::simulateHardware(), start(), stop(), Component::STOPPED, Logger::syslog(), and uart_.
|
virtual |
Might follow a STOP request.
Reimplemented from Component.
References debug_, LoadControl::errorString(), Syslog::FAULT, FailureMode::HARDWARE, LoadControl::hasError(), Syslog::INFO, loadControl_, Component::logger_, LoadControl::readFaults(), Component::setFailure(), Component::simulateHardware(), Component::STOPPED, and Logger::syslog().
|
virtual |
Provide a space for uninitialization.
Reimplemented from Component.
References UartStream::close(), Syslog::FAULT, FailureMode::HARDWARE, Syslog::INFO, loadControl_, Component::logger_, LoadControl::powerDown(), Component::setFailure(), Component::simulateHardware(), Logger::syslog(), and uart_.
Referenced by stop().
|
private |
Referenced by runnable().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by pause(), paused(), resume(), resuming(), runnable(), start(), starting(), stop(), stopped(), and stopping().
|
private |
Referenced by readTemperature(), readTransducers(), and start().
|
private |
Referenced by runnable(), start(), and starting().
|
private |
|
private |
Referenced by AHRS_3DMGX3(), and runnable().
|
private |
Referenced by pause(), resume(), runnable(), start(), stopped(), stopping(), and uninitialize().
|
private |
Referenced by AHRS_3DMGX3(), and runnable().
|
private |
Deviation of this compass in the vehicle.
compass orientation +/- deviation due to vehicle = Magnetic orientation magnetic orientation +/- variation from map = True orientation
Referenced by readConfig(), and runnable().
|
private |
Referenced by AHRS_3DMGX3(), and readConfig().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by runnable(), and starting().
|
private |
Offset for mounting. In degrees.
Referenced by readConfig(), and runnable().
|
private |
Referenced by AHRS_3DMGX3(), and readConfig().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by readConfig(), and runnable().
|
private |
Referenced by AHRS_3DMGX3(), and readConfig().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by runnable(), and start().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().
|
private |
Referenced by pause(), readTemperature(), readTransducers(), resume(), start(), stopped(), and uninitialize().
|
private |
Referenced by starting().
|
private |
Referenced by AHRS_3DMGX3(), isDataRequested(), and runnable().