|
LRAUV
revA
|
Provides software interface to the NAL Research NAL9602 Iridium modem and compass. More...
#include <NAL9602.h>


Classes | |
| struct | Fix |
| Data structure contains items specified by the NMEA GPS data standard. More... | |
| struct | NmeaUTCDate |
| struct | NmeaUTCTime |
| struct | SendPacket |
| struct | SNRWriters |
Public Member Functions | |
| NAL9602 (const Module *module) | |
| virtual | ~NAL9602 () |
| 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... | |
| virtual ConfigURI | getConfigURI (ConfigOption configOption, ElementURI forElement) const |
| Should return [myNamespace]::POWER_[forElement], [myNamespace]::LATENCY_[forElement], 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 Types | |
| enum | CommsState { SLEEPING, WAKING, CMDMODE, AWAKE, NEED_FIX, NEED_GSV, GET_SIG_QUALITY, SENDING_FILL_BUFFER, SENDING_TRANSMIT, SENDING_VERIFY, RECEIVING_1, RECEIVING_2, MTQUEUE_QUALITY, MTQUEUE_SESSION, GO_TO_SLEEP } |
| enum | DataQuality { INVALID, VALID_ONE, VALID_TWO, DEAD_RECKON } |
| enum | Hemisphere { NORTHERN_HEMI, SOUTHERN_HEMI, EASTERN_HEMI, WESTERN_HEMI, INVALID_HEMISPHERE } |
| enum | SentenceType { GPGGA, GPGSA, GPRMC, UNKNOWN_NMEA_TYPE } |
Private Member Functions | |
| NAL9602 (const NAL9602 &old) | |
| void | waking () |
| We define a method for each state of the device. More... | |
| void | cmdMode () |
| CMDMODE. More... | |
| void | awake () |
| AWAKE. More... | |
| void | needFix () |
| NEED_FIX. More... | |
| void | needGSV () |
| needGSV More... | |
| void | getSigQuality () |
| void | sendingFillBuffer () |
| SENDING1. More... | |
| void | sendingTransmit () |
| SENDING2. More... | |
| void | sendingVerify () |
| SENDING3. More... | |
| void | receiving1 () |
| RECEIVING1. More... | |
| void | receiving2 () |
| RECEIVING2. More... | |
| void | goToSleep () |
| GO_TO_SLEEP. More... | |
| void | getMTQueueSignalStrength () |
| void | sessionMTQueueVerify () |
| bool | loadParams (void) |
| bool | readConfig () |
| bool | fillBuffer (const unsigned char *msg, size_t nMsgBytes) |
| Send (downlink) a message. More... | |
| bool | initiateSession () |
| bool | verifySessionXmit () |
| bool | clearMOBuffer () |
| bool | retrieveAndQueueIncoming (int nUplinkBytes) |
| Retrieve (uplink) message from modem and queue it for clients. More... | |
| bool | isDataRequested () |
| void | getReceivedSignalStrength () |
| Stores modem signal quality (0-5), -1 on error. More... | |
| bool | belowSurfaceThreshold (void) |
| bool | getFix (void) |
| Returns position from GPS or an empty string upon error. More... | |
| bool | requestFix (void) |
| sends request to get a fix and returns when data is ready or timeout has occured. More... | |
| bool | requestGSV (void) |
| sends request to get GSV NMEA string and returns when data is ready or timeout has occured. More... | |
| bool | parseGGAFix (const char *ggaSentence) |
| Parse Gps fix from NMEA "GGA sentence". More... | |
| bool | parseRMCFix (const char *rmcSentence) |
| Parse Gps fix from NMEA "RMC sentence". More... | |
| bool | parseGSV (void) |
| Parses the GSV NMEA string(s) More... | |
| bool | goodGGAFixIndicator (const char *ggaSentence) |
| Check to see if a fix has been acquired. More... | |
| bool | goodRMCFixIndicator (const char *rmcSentence) |
| Hemisphere | char2Hemisphere (unsigned char hem) |
| Returns the hemisphere from the NMEA string. More... | |
Static Private Member Functions | |
| static SentenceType | GetNmeaSentenceType (const char *sentence) |
| Returns type of NMEA sentence. More... | |
| static double | ParseLatitude (const char *nmeaString) |
| Parse latitude in radians from NMEA standard latitude string. More... | |
| static double | ParseLongitude (const char *nmeaString) |
| Parse longitude in radians from NMEA standard longitude string. More... | |
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 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 NAL Research NAL9602 Iridium modem and compass.
NAL9602.h should only be included by NAL9602.cpp Other classes should include NAL9602IF.h
| NAL9602::NAL9602 | ( | const Module * | module | ) |
References Units::BOOL, checkMTQueueCfgReader_, cogWriter_, communicationsWriter_, Units::COUNT, NAL9602::SendPacket::data_, NAL9602::SendPacket::dataSize_, Units::DEGREE, UniversalURI::DEPTH, depthReader_, Str::EMPTY_STR, goodFixWriter_, gpsFailTimeoutCfgReader_, NAL9602::SendPacket::index_, iridiumFailTimeoutCfgReader_, UniversalURI::LATITUDE, UniversalURI::LATITUDE_FIX, latitudeFixWriter_, latitudeReader_, UniversalURI::LOCATION_FIX, locationFixWriter_, UniversalURI::LONGITUDE, UniversalURI::LONGITUDE_FIX, longitudeFixWriter_, longitudeReader_, MAX_GPS_SATS_9602, Component::newConfigReader(), Component::newDataWriter(), Slate::NewOutputWriter(), Component::newUniversalBlobWriter(), Component::newUniversalReader(), Component::newUniversalWriter(), Timestamp::Now(), numSatellitesWriter_, NAL9602::SendPacket::packetsLeft_, Component::persistentPause_, UniversalURI::PLATFORM_COMMUNICATIONS, powerOnTimeStart_, requestGGACfgReader_, Units::SECOND, sendDataToShoreCfgReader_, NAL9602::SendPacket::sendFilename_, NAL9602::SendPacket::sendFilesize_, sendPacket_, Component::setAllowableFailures(), Component::setRetryTimeout(), Component::setRunState(), sigQualityWriter_, NAL9602::SNRWriters::snrWriter_, snrWriters_, sogWriter_, Component::START, surfaceThresholdCfgReader_, UniversalURI::TIME_FIX, timeFixWriter_, and NAL9602::SendPacket::timeT_.
|
virtual |
|
private |
|
private |
AWAKE.
References commsState_, communicationsDone_, communicationsWriter_, debug_, GET_SIG_QUALITY, GO_TO_SLEEP, Syslog::INFO, DataReader::isActive(), DataWriter::isDataRequested(), latitudeFixWriter_, latitudeReader_, Component::logger_, longitudeFixWriter_, longitudeReader_, NEED_FIX, Component::resetFailCount(), Logger::syslog(), and timeFixWriter_.
Referenced by runnable().
|
private |
References depthReader_, DataReader::isActive(), Units::METER, DataReader::read(), surfaceThreshold_, and surfaceThresholdCfgReader_.
Referenced by needFix().
|
private |
Returns the hemisphere from the NMEA string.
References EASTERN_HEMI, Syslog::ERROR, Component::logger_, NORTHERN_HEMI, SOUTHERN_HEMI, Logger::syslog(), and WESTERN_HEMI.
Referenced by parseGGAFix(), and parseRMCFix().
|
private |
|
private |
CMDMODE.
References AWAKE, UartStream::canReadUntil(), commsState_, FailureMode::COMMUNICATIONS, debug_, Timestamp::elapsed(), Syslog::ERROR, Syslog::INFO, Component::logger_, poResetTimeout_, Component::setFailure(), Component::simulateHardware(), startTime_, Logger::syslog(), and uart_.
Referenced by runnable().
|
private |
Send (downlink) a message.
References UartStream::canReadUntil(), Syslog::ERROR, UartStream::errorString(), UartStream::flush(), UartStream::hasError(), Component::logger_, Timespan::Milliseconds(), modemResponse_, UartStream::read(), sigQuality_, Component::simulateHardware(), Timespan::sleepFor(), Logger::syslog(), uart_, and UartStream::write().
Referenced by sendingFillBuffer().
|
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.
|
virtual |
Should return [myNamespace]::POWER_[forElement], [myNamespace]::LATENCY_[forElement], etc.
Reimplemented from Component.
References Component::CONFIG_POWER, ConfigURI::NO_CONFIG_URI, and UniversalURI::PLATFORM_COMMUNICATIONS.
|
private |
Returns position from GPS or an empty string upon error.
References Syslog::ERROR, UartStream::errorString(), UartStream::flush(), UartStream::flushCRLF(), goodGGAFixIndicator(), goodRMCFixIndicator(), UartStream::hasError(), Component::logger_, parseGGAFix(), parseRMCFix(), UartStream::readLines(), requestGGA_, UartStream::resetStartTimeout(), UartStream::setStartTimeout(), Component::simulateHardware(), Logger::syslog(), and uart_.
Referenced by needFix().
|
private |
References UartStream::canReadUntil(), commsState_, Units::COUNT, FailureMode::DATA, debug_, Timestamp::elapsed(), Syslog::ERROR, UartStream::errorString(), Syslog::FAULT, UartStream::flush(), GO_TO_SLEEP, gotMTQueue_, UartStream::hasError(), Syslog::INFO, iridiumMTQueueTimeout_, iridiumTimeoutArmed_, Component::logger_, modemResponse_, MTQUEUE_SESSION, needMTQueueStartTime_, Timestamp::Now(), UartStream::read(), requestTimeout_, Component::setFailure(), sigQuality_, sigQualityWriter_, Component::simulateHardware(), startTime_, Logger::syslog(), uart_, and DataWriter::write().
Referenced by runnable().
|
staticprivate |
Returns type of NMEA sentence.
References GGA_PREFIX, GPGGA, GPGSA, GPRMC, GSA_PREFIX, RMC_PREFIX, and UNKNOWN_NMEA_TYPE.
Referenced by goodGGAFixIndicator(), goodRMCFixIndicator(), parseGGAFix(), and parseRMCFix().
|
private |
Stores modem signal quality (0-5), -1 on error.
References UartStream::canReadUntil(), commsState_, communicationsDone_, Units::COUNT, FailureMode::DATA, debug_, Timestamp::elapsed(), Syslog::ERROR, UartStream::errorString(), Syslog::FAULT, UartStream::flush(), GO_TO_SLEEP, UartStream::hasError(), Syslog::INFO, Component::logger_, modemResponse_, Timestamp::Now(), UartStream::read(), requestTimeout_, SENDING_FILL_BUFFER, Component::setFailure(), sigQuality_, sigQualityWriter_, Component::simulateHardware(), startTime_, Logger::syslog(), uart_, and DataWriter::write().
Referenced by runnable().
|
private |
|
private |
Check to see if a fix has been acquired.
References Syslog::ERROR, GetNmeaSentenceType(), GPGGA, Component::logger_, MIN, and Logger::syslog().
Referenced by getFix().
|
private |
References Syslog::ERROR, GetNmeaSentenceType(), GPRMC, Component::logger_, MIN, and Logger::syslog().
Referenced by getFix().
|
private |
GO_TO_SLEEP.
References AWAKE, commsState_, communicationsWriter_, debug_, Syslog::INFO, DataReader::isActive(), DataWriter::isDataRequested(), latitudeFixWriter_, latitudeReader_, Component::logger_, longitudeFixWriter_, longitudeReader_, NEED_FIX, Timestamp::Now(), SLEEPING, startTime_, Logger::syslog(), and timeFixWriter_.
Referenced by runnable().
|
private |
References Syslog::ERROR, UartStream::errorString(), UartStream::flush(), UartStream::flushCRLF(), UartStream::hasError(), Component::logger_, modemResponse_, UartStream::readLine(), UartStream::readUntil(), UartStream::resetStartTimeout(), UartStream::setStartTimeout(), Component::simulateHardware(), Logger::syslog(), and uart_.
Referenced by sendingTransmit().
|
private |
|
private |
References keyText_, Component::logger_, readConfig(), and Slate::ReadOnce().
Referenced by start().
|
private |
NEED_FIX.
References Timestamp::asDouble(), belowSurfaceThreshold(), Units::BOOL, NAL9602::NmeaUTCTime::centiSeconds_, NAL9602::Fix::cog_, cogWriter_, commsState_, Units::COUNT, FailureMode::DATA, NAL9602::NmeaUTCDate::day_, DEAD_RECKON, debug_, Units::DEGREE, Timestamp::elapsed(), Units::EPOCH_SECOND, Syslog::ERROR, Syslog::FAULT, fix_, getFix(), goodFixWriter_, gotFix_, gpsFailTimeout_, gpsTimeoutArmed_, NAL9602::NmeaUTCTime::hours_, Syslog::INFO, INVALID, Units::KNOT, NAL9602::Fix::latitude_, SimSlate::LATITUDE_DEGREE, latitudeFixWriter_, locationFixWriter_, Component::logger_, NAL9602::Fix::longitude_, SimSlate::LONGITUDE_DEGREE, longitudeFixWriter_, NAL9602::NmeaUTCTime::minutes_, NAL9602::NmeaUTCDate::month_, NEED_GSV, needFixStartTime_, Timestamp::Now(), NAL9602::Fix::nSatellites_, numSatellitesWriter_, NAL9602::Fix::quality_, Units::RADIAN, SimSlate::Read(), requestFix(), requestGGA_, NAL9602::NmeaUTCTime::seconds_, Component::setFailure(), DataWriter::setInvalid(), Component::simulateHardware(), NAL9602::Fix::sog_, sogWriter_, Logger::syslog(), timeFixWriter_, Timestamp::toSmallString(), NAL9602::Fix::utcdate_, utcTime_, NAL9602::Fix::utctime_, VALID_ONE, VALID_TWO, DataWriter::write(), AbstractBlobWriter::write1DClass(), and NAL9602::NmeaUTCDate::year_.
Referenced by runnable().
|
private |
needGSV
References checkMTQueue_, commsState_, communicationsWriter_, Units::COUNT, debug_, GET_SIG_QUALITY, GO_TO_SLEEP, gotMTQueue_, Syslog::INFO, DataWriter::isDataRequested(), FlexArrayBase::isEmpty(), Component::logger_, MAX_GPS_SATS_9602, MTQUEUE_QUALITY, parseGSV(), FlexArray< T >::pop(), requestGSV(), Component::simulateHardware(), snrData_, NAL9602::SNRWriters::snrWriter_, snrWriters_, Logger::syslog(), and DataWriter::write().
Referenced by runnable().
|
private |
Parse Gps fix from NMEA "GGA sentence".
References NAL9602::Fix::altitude_, NAL9602::NmeaUTCTime::centiSeconds_, char2Hemisphere(), NAL9602::Fix::dgpsDataAge_, NAL9602::Fix::dgpsStationId_, Syslog::ERROR, NAL9602::Fix::ewHemisphere_, fix_, NAL9602::Fix::geoidHeight_, GetNmeaSentenceType(), GPGGA, NAL9602::Fix::hdop_, NAL9602::NmeaUTCTime::hours_, NAL9602::Fix::latitude_, Component::logger_, NAL9602::Fix::longitude_, MIN, NAL9602::NmeaUTCTime::minutes_, NAL9602::Fix::nSatellites_, NAL9602::Fix::nsHemisphere_, ParseLatitude(), ParseLongitude(), NAL9602::Fix::quality_, NAL9602::NmeaUTCTime::seconds_, SOUTHERN_HEMI, Logger::syslog(), NAL9602::Fix::utctime_, and WESTERN_HEMI.
Referenced by getFix().
|
private |
Parses the GSV NMEA string(s)
References Syslog::ERROR, UartStream::errorString(), UartStream::flushCRLF(), UartStream::hasError(), FlexArrayBase::isEmpty(), Component::logger_, MAX_GPS_SATS_9602, MAX_SATS_PER_LINE, FlexArray< T >::pop(), FlexArray< T >::push(), UartStream::readUntil(), UartStream::resetStartTimeout(), UartStream::setStartTimeout(), Component::simulateHardware(), snrData_, Logger::syslog(), and uart_.
Referenced by needGSV().
|
staticprivate |
Parse latitude in radians from NMEA standard latitude string.
Referenced by parseGGAFix(), and parseRMCFix().
|
staticprivate |
Parse longitude in radians from NMEA standard longitude string.
Referenced by parseGGAFix(), and parseRMCFix().
|
private |
Parse Gps fix from NMEA "RMC sentence".
References NAL9602::NmeaUTCTime::centiSeconds_, char2Hemisphere(), NAL9602::Fix::cog_, NAL9602::NmeaUTCDate::day_, Syslog::ERROR, NAL9602::Fix::ewHemisphere_, fix_, GetNmeaSentenceType(), GPRMC, NAL9602::NmeaUTCTime::hours_, NAL9602::Fix::latitude_, Component::logger_, NAL9602::Fix::longitude_, MIN, NAL9602::NmeaUTCTime::minutes_, NAL9602::NmeaUTCDate::month_, NAL9602::Fix::nsHemisphere_, ParseLatitude(), ParseLongitude(), NAL9602::Fix::quality_, NAL9602::NmeaUTCTime::seconds_, NAL9602::Fix::sog_, SOUTHERN_HEMI, NAL9602::Fix::status_, Logger::syslog(), NAL9602::Fix::utcdate_, NAL9602::Fix::utctime_, WESTERN_HEMI, and NAL9602::NmeaUTCDate::year_.
Referenced by getFix().
|
virtual |
Pause for a short period (indicated by pauseTime)
Reimplemented from Component.
References AWAKE, Units::BOOL, cmdReceived_, cogWriter_, commsState_, Units::COUNT, debug_, Units::DEGREE, Timestamp::elapsed(), Syslog::ERROR, goodFixWriter_, gotMTQueue_, Syslog::INFO, isDataRequested(), Units::KNOT, loadControl_, Component::logger_, MAX_GPS_SATS_9602, numSatellitesWriter_, Component::PAUSE, Component::PAUSED, LoadControl::powerDown(), powerDownTimeout_, Component::RUNNABLE, sigQualityWriter_, NAL9602::SNRWriters::snrWriter_, snrWriters_, sogWriter_, startTime_, Logger::syslog(), and DataWriter::write().
|
virtual |
Should eventually follow a PAUSE request: should set continueTime.
Reimplemented from Component.
References debug_, Syslog::ERROR, FailureMode::HARDWARE, Syslog::INFO, isDataRequested(), loadControl_, Component::logger_, Timestamp::Now(), Component::PAUSED, powerOnTimeStart_, LoadControl::powerUp(), Component::setFailure(), Component::simulateHardware(), Component::STARTING, and Logger::syslog().
|
private |
References Units::BOOL, checkMTQueue_, checkMTQueueCfgReader_, gpsFailTimeout_, gpsFailTimeoutCfgReader_, iridiumFailTimeoutCfgReader_, iridiumMTQueueTimeout_, Units::METER, DataReader::read(), requestGGA_, requestGGACfgReader_, Units::SECOND, Timespan::Seconds(), sendDataToShore_, sendDataToShoreCfgReader_, surfaceThreshold_, and surfaceThresholdCfgReader_.
Referenced by loadParams(), and runnable().
|
private |
RECEIVING1.
References cmdReceived_, commsState_, debug_, GO_TO_SLEEP, Syslog::INFO, Component::logger_, nPendingUplinks_, nUplinkBytes_, retrieveAndQueueIncoming(), SENDING_FILL_BUFFER, Component::simulateHardware(), and Logger::syslog().
Referenced by runnable().
|
private |
RECEIVING2.
Referenced by runnable().
|
private |
sends request to get a fix and returns when data is ready or timeout has occured.
References UartStream::dataAvailable(), Timestamp::elapsed(), fixRequested_, UartStream::flush(), Timestamp::Now(), requestGGA_, requestTimeout_, Component::simulateHardware(), startTime_, and uart_.
Referenced by needFix().
|
private |
sends request to get GSV NMEA string and returns when data is ready or timeout has occured.
References UartStream::canReadUntil(), Timestamp::elapsed(), UartStream::flush(), gsvRequested_, Timestamp::Now(), requestTimeout_, Component::simulateHardware(), startTime_, and uart_.
Referenced by needGSV().
|
inlinevirtual |
|
virtual |
Resume from PAUSE.
Reimplemented from Component.
References debug_, Syslog::INFO, Component::logger_, Component::RESUMING, and Logger::syslog().
|
virtual |
Might follow a PAUSE...RESUME sequence.
Reimplemented from Component.
References debug_, Syslog::INFO, Component::logger_, Component::RUNNABLE, and Logger::syslog().
|
private |
Retrieve (uplink) message from modem and queue it for clients.
References StrValue::asString(), Syslog::CRITICAL, Str::cStr(), Syslog::ERROR, UartStream::errorString(), UartStream::flush(), InStream::getBytesRead(), UartStream::hasError(), keyText_, Component::logger_, modemResponse_, UartStream::read(), UartStream::readUntil(), DataReceiver::ReceiveSbd(), UartStream::resetStartTimeout(), UartStream::setStartTimeout(), Component::simulateHardware(), Logger::syslog(), uart_, and OutStream::writeHex().
Referenced by receiving1().
|
virtual |
The actual "payload" of the component.
Reimplemented from Component.
|
virtual |
Should eventually follow a START request or RESETTING.
Reimplemented from Component.
References AWAKE, awake(), CMDMODE, cmdMode(), commsState_, debug_, Syslog::ERROR, LoadControl::errorString(), Syslog::FAULT, Str::find(), GET_SIG_QUALITY, getMTQueueSignalStrength(), getReceivedSignalStrength(), GO_TO_SLEEP, goToSleep(), FailureMode::HARDWARE, LoadControl::hasError(), Syslog::INFO, loadControl_, Component::logger_, MTQUEUE_QUALITY, MTQUEUE_SESSION, NEED_FIX, NEED_GSV, needFix(), needGSV(), Component::PAUSE, readConfig(), receiving1(), receiving2(), RECEIVING_1, RECEIVING_2, LoadControl::requestVoltageAndCurrent(), Component::RUNNABLE, SENDING_FILL_BUFFER, SENDING_TRANSMIT, SENDING_VERIFY, sendingFillBuffer(), sendingTransmit(), sendingVerify(), sessionMTQueueVerify(), Component::setFailure(), Component::simulateHardware(), SLEEPING, Component::STOP, Logger::syslog(), WAKING, and waking().
|
private |
SENDING1.
References InStream::bytesRead(), commsState_, Syslog::CRITICAL, Str::cStr(), NAL9602::SendPacket::data_, NAL9602::SendPacket::dataSize_, debug_, DOWNLINK_DATA_OFFSET, Str::EMPTY_STR, Syslog::ERROR, Syslog::FAULT, fillBuffer(), UartStream::flush(), Supervisor::GetQueuedSBD(), Supervisor::GetToShoreFilename(), GO_TO_SLEEP, Syslog::IMPORTANT, NAL9602::SendPacket::index_, Syslog::INFO, FileInStream::isReadable(), Str::length(), Component::logger_, MAX_DOWNLINK_DATA_BYTES, Timestamp::Now(), NAL9602::SendPacket::packetsLeft_, FileInStream::read(), resendSBDFilename_, sendDataToShore_, NAL9602::SendPacket::sendFilename_, NAL9602::SendPacket::sendFilesize_, SENDING_TRANSMIT, SENDING_VERIFY, sendPacket_, LogWriter::SERVICE_COURIER, LogWriter::SERVICE_EXPRESS, sigQuality_, Component::simulateHardware(), startTime_, Str::substr(), Logger::syslog(), NAL9602::SendPacket::timeT_, and uart_.
Referenced by runnable().
|
private |
SENDING2.
References Timespan::asFloat(), bufferFillTimeout_, commsState_, UartStream::dataAvailable(), debug_, Timestamp::elapsed(), Syslog::ERROR, Syslog::INFO, initiateSession(), Component::logger_, Timestamp::Now(), SENDING_FILL_BUFFER, SENDING_TRANSMIT, SENDING_VERIFY, Component::simulateHardware(), startTime_, Logger::syslog(), and uart_.
Referenced by runnable().
|
private |
SENDING3.
References AWAKE, Units::BOOL, bufferFillTimeout_, UartStream::canReadUntil(), clearMOBuffer(), cmdReceived_, commsState_, communicationsDone_, communicationsWriter_, Str::cStr(), FailureMode::DATA, NAL9602::SendPacket::dataSize_, Syslog::DEBUG, debug_, DOWNLINK_DATA_OFFSET, Timestamp::elapsed(), Str::EMPTY_STR, Syslog::ERROR, Syslog::FAULT, UartStream::flush(), GO_TO_SLEEP, gotFix_, gotMTQueue_, gpsTimeoutArmed_, Supervisor::IncrementShoreFile(), Syslog::INFO, DataWriter::isDataRequested(), Component::logger_, nPendingUplinks_, NAL9602::SendPacket::packetsLeft_, RECEIVING_1, resendSBDFilename_, Component::resetFailCount(), NAL9602::SendPacket::sendFilename_, SENDING_FILL_BUFFER, sendPacket_, Component::setFailure(), Component::simulateHardware(), startTime_, Logger::syslog(), uart_, uplinkStatus_, verifySessionXmit(), and DataWriter::write().
Referenced by runnable().
|
private |
References bufferFillTimeout_, UartStream::canReadUntil(), commsState_, FailureMode::DATA, debug_, Timestamp::elapsed(), Syslog::FAULT, GO_TO_SLEEP, gotMTQueue_, Syslog::INFO, iridiumTimeoutArmed_, Component::logger_, MTQUEUE_QUALITY, nPendingUplinks_, RECEIVING_1, Component::resetFailCount(), Component::setFailure(), Component::simulateHardware(), startTime_, Logger::syslog(), uart_, uplinkStatus_, and verifySessionXmit().
Referenced by runnable().
|
virtual |
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Reimplemented from Component.
References AWAKE, commsState_, FailureMode::COMMUNICATIONS, Syslog::CRITICAL, debug_, Timestamp::elapsed(), UartStream::enableUART(), Syslog::ERROR, UartStream::errorString(), UartStream::hasError(), Syslog::INFO, loadControl_, loadParams(), Component::logger_, modemResponse_, Timestamp::Now(), ok_, UartStream::open(), powerDownTimeout_, powerOnTimeStart_, LoadControl::powerUp(), Component::setFailure(), sigQuality_, Component::simulateHardware(), Component::START, Component::STARTING, startTime_, Component::STOP, Logger::syslog(), and uart_.
|
virtual |
Might follow a STOP...START sequence.
Reimplemented from Component.
References commsState_, debug_, Timestamp::elapsed(), Syslog::INFO, Component::logger_, poResetTimeout_, powerOnTimeStart_, Component::RUNNABLE, Component::simulateHardware(), Component::STARTING, Logger::syslog(), and WAKING.
|
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(), Component::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(), cmdReceived_, debug_, UartStream::disableUART(), Syslog::ERROR, Syslog::INFO, loadControl_, Component::logger_, Timestamp::Now(), LoadControl::powerDown(), powerOnTimeStart_, Component::simulateHardware(), Logger::syslog(), and uart_.
Referenced by stop().
|
private |
References checkMTQueue_, Str::EMPTY_STR, Syslog::ERROR, UartStream::errorString(), UartStream::hasError(), Syslog::IMPORTANT, Syslog::INFO, Component::logger_, modemResponse_, nPendingUplinks_, nUplinkBytes_, UartStream::readUntil(), resendSBDFilename_, NAL9602::SendPacket::sendFilename_, sendPacket_, Component::simulateHardware(), Logger::syslog(), uart_, uplinkSeqNo_, and uplinkStatus_.
Referenced by sendingVerify(), and sessionMTQueueVerify().
|
private |
We define a method for each state of the device.
WAKING.
References CMDMODE, commsState_, debug_, UartStream::flush(), Syslog::INFO, Component::logger_, Timestamp::Now(), Component::simulateHardware(), startTime_, Logger::syslog(), and uart_.
Referenced by runnable().
|
private |
Referenced by sendingTransmit(), sendingVerify(), and sessionMTQueueVerify().
|
private |
Referenced by needGSV(), readConfig(), and verifySessionXmit().
|
private |
Referenced by NAL9602(), and readConfig().
|
private |
Referenced by pause(), receiving1(), sendingVerify(), and uninitialize().
|
private |
|
private |
Stores the decrypted command.
|
private |
|
private |
Referenced by awake(), getReceivedSignalStrength(), and sendingVerify().
|
private |
Referenced by awake(), goToSleep(), isDataRequested(), NAL9602(), needGSV(), and sendingVerify().
|
private |
Referenced by awake(), cmdMode(), getMTQueueSignalStrength(), getReceivedSignalStrength(), goToSleep(), needFix(), needGSV(), pause(), paused(), receiving1(), resume(), resuming(), runnable(), sendingFillBuffer(), sendingTransmit(), sendingVerify(), sessionMTQueueVerify(), start(), starting(), stop(), stopped(), stopping(), uninitialize(), and waking().
|
private |
Referenced by belowSurfaceThreshold(), and NAL9602().
|
private |
Referenced by needFix(), parseGGAFix(), and parseRMCFix().
|
private |
Referenced by requestFix().
|
private |
|
private |
Referenced by needFix(), and sendingVerify().
|
private |
Referenced by getMTQueueSignalStrength(), needGSV(), pause(), sendingVerify(), and sessionMTQueueVerify().
|
private |
Referenced by needFix(), and readConfig().
|
private |
Referenced by NAL9602(), and readConfig().
|
private |
Referenced by needFix(), and sendingVerify().
|
private |
Referenced by requestGSV().
|
private |
Referenced by NAL9602(), and readConfig().
|
private |
Referenced by getMTQueueSignalStrength(), and readConfig().
|
private |
Referenced by getMTQueueSignalStrength(), and sessionMTQueueVerify().
|
private |
Referenced by loadParams(), and retrieveAndQueueIncoming().
|
private |
Referenced by awake(), goToSleep(), isDataRequested(), NAL9602(), and needFix().
|
private |
Referenced by awake(), goToSleep(), isDataRequested(), and NAL9602().
|
private |
Referenced by pause(), paused(), runnable(), start(), stopped(), stopping(), and uninitialize().
|
private |
|
private |
Referenced by awake(), goToSleep(), isDataRequested(), NAL9602(), and needFix().
|
private |
Referenced by awake(), goToSleep(), isDataRequested(), and NAL9602().
|
private |
Stores the response from the modem.
Referenced by clearMOBuffer(), fillBuffer(), getMTQueueSignalStrength(), getReceivedSignalStrength(), initiateSession(), retrieveAndQueueIncoming(), start(), and verifySessionXmit().
|
private |
Referenced by getMTQueueSignalStrength().
|
private |
Referenced by receiving1(), sendingVerify(), sessionMTQueueVerify(), and verifySessionXmit().
|
private |
|
private |
Referenced by receiving1(), and verifySessionXmit().
|
private |
Referenced by start().
|
private |
Referenced by cmdMode(), and starting().
|
private |
|
private |
Referenced by NAL9602(), paused(), start(), starting(), and uninitialize().
|
private |
|
private |
|
private |
Referenced by getFix(), needFix(), readConfig(), and requestFix().
|
private |
Referenced by NAL9602(), and readConfig().
|
private |
Referenced by getMTQueueSignalStrength(), getReceivedSignalStrength(), requestFix(), and requestGSV().
|
private |
Name of SBD currently being re-sent to shore.
Referenced by sendingFillBuffer(), sendingVerify(), and verifySessionXmit().
|
private |
Referenced by readConfig(), and sendingFillBuffer().
|
private |
Referenced by NAL9602(), and readConfig().
|
private |
Referenced by NAL9602(), sendingFillBuffer(), sendingVerify(), and verifySessionXmit().
|
private |
Keeps track of how many packets have been sent to shore.
|
private |
Holds most recent Iridium signal quality.
Referenced by fillBuffer(), getMTQueueSignalStrength(), getReceivedSignalStrength(), sendingFillBuffer(), and start().
|
private |
Referenced by getMTQueueSignalStrength(), getReceivedSignalStrength(), NAL9602(), and pause().
|
private |
Referenced by needGSV(), and parseGSV().
|
private |
|
private |
|
private |
|
private |
*----------------— vehicle parameters -----------------------—*/
Referenced by belowSurfaceThreshold(), and readConfig().
|
private |
Configuration readers.
Referenced by belowSurfaceThreshold(), NAL9602(), and readConfig().
|
private |
Referenced by awake(), goToSleep(), isDataRequested(), NAL9602(), and needFix().
|
private |
Referenced by clearMOBuffer(), cmdMode(), fillBuffer(), getFix(), getMTQueueSignalStrength(), getReceivedSignalStrength(), initiateSession(), parseGSV(), requestFix(), requestGSV(), retrieveAndQueueIncoming(), sendingFillBuffer(), sendingTransmit(), sendingVerify(), sessionMTQueueVerify(), start(), stopped(), uninitialize(), verifySessionXmit(), and waking().
|
private |
Referenced by verifySessionXmit().
|
private |
Referenced by sendingVerify(), sessionMTQueueVerify(), and verifySessionXmit().