61 #define READ_TIMEOUT_MSEC 6000
62 #define MAX_DOWNLINK_MSG_BYTES 340L
63 #define DOWNLINK_DATA_OFFSET ( sizeof(uint32_t) + 2 * sizeof(uint16_t) )
64 #define MAX_DOWNLINK_DATA_BYTES ( MAX_DOWNLINK_MSG_BYTES - DOWNLINK_DATA_OFFSET )
65 #define MAX_UPLINK_MSG_BYTES 270L
66 #define MAX_UPLINKS_PER_SESSION 10
68 #define MAX_GPS_SATS_9602 NAL9602IF::MAX_GPS_SATS_9602
69 #define MAX_SATS_PER_LINE 4
286 bool fillBuffer(
const unsigned char *msg,
size_t nMsgBytes );
virtual ~NAL9602()
Definition: NAL9602.cpp:175
DataWriter * sogWriter_
Definition: NAL9602.h:149
Definition: NAL9602.h:175
bool status_
Status.
Definition: NAL9602.h:389
void sendingTransmit()
SENDING2.
Definition: NAL9602.cpp:656
Definition: NAL9602.h:440
short dgpsDataAge_
DGPS fix age in seconds.
Definition: NAL9602.h:413
void sessionMTQueueVerify()
Definition: NAL9602.cpp:1494
Definition: NAL9602.h:440
Contains the SyncComponent class definition.
Definition: NAL9602.h:204
Timespan iridiumMTQueueTimeout_
Definition: NAL9602.h:228
bool gotFix_
Definition: NAL9602.h:233
Contains the LoadControl class declaration.
UniversalDataReader * depthReader_
Definition: NAL9602.h:141
virtual RunState paused()
Should eventually follow a PAUSE request: should set continueTime.
Definition: NAL9602.cpp:2316
int minutes_
Definition: NAL9602.h:345
Hemisphere nsHemisphere_
North/South hemisphere.
Definition: NAL9602.h:380
bool requestGSV(void)
sends request to get GSV NMEA string and returns when data is ready or timeout has occured...
Definition: NAL9602.cpp:1314
int hours_
Definition: NAL9602.h:344
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
Specifies the interface details for the NAL9602 component in the SensorModule.
double latitude_
Definition: NAL9602.h:377
DataWriter * numSatellitesWriter_
Definition: NAL9602.h:146
Timespan gpsFailTimeout_
Definition: NAL9602.h:227
void waking()
We define a method for each state of the device.
Definition: NAL9602.cpp:233
bool parseGSV(void)
Parses the GSV NMEA string(s)
Definition: NAL9602.cpp:2056
Abstract Base class for components that collect data for use later in the computation cycle...
Definition: SyncComponent.h:172
struct NAL9602::SendPacket sendPacket_
bool getFix(void)
Returns position from GPS or an empty string upon error.
Definition: NAL9602.cpp:1223
bool parseGGAFix(const char *ggaSentence)
Parse Gps fix from NMEA "GGA sentence".
Definition: NAL9602.cpp:1702
static double ParseLatitude(const char *nmeaString)
Parse latitude in radians from NMEA standard latitude string.
Definition: NAL9602.cpp:1158
Definition: NAL9602.h:177
Timestamp powerOffTimeStart_
Definition: NAL9602.h:231
Definition: NAL9602.h:173
Definition: NAL9602.h:182
UniversalDataReader * latitudeReader_
Definition: NAL9602.h:142
short dgpsStationId_
DGPS reference station id.
Definition: NAL9602.h:416
Timestamp startTime_
Definition: NAL9602.h:231
SentenceType
Definition: NAL9602.h:438
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
DataQuality
Definition: NAL9602.h:319
Definition: NAL9602.h:323
Definition: NAL9602.h:339
NmeaUTCDate utcdate_
Datestamp.
Definition: NAL9602.h:374
SNRWriters snrWriters_[MAX_GPS_SATS_9602]
Definition: NAL9602.h:214
Data structure contains items specified by the NMEA GPS data standard.
Definition: NAL9602.h:365
Hemisphere
Definition: NAL9602.h:327
RunState
Definition: Component.h:115
SNRWriters()
Definition: NAL9602.cpp:2196
DataWriter * goodFixWriter_
Definition: NAL9602.h:147
Contains the UartStream class declaration.
Definition: NAL9602.h:178
Fix()
Definition: NAL9602.cpp:2131
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
Definition: NAL9602.h:180
ConfigReader * gpsFailTimeoutCfgReader_
Definition: NAL9602.h:162
virtual RunState stop()
Initial state – can be later followed by START.
Definition: NAL9602.cpp:2447
Definition: NAL9602.h:170
bool verifySessionXmit()
Definition: NAL9602.cpp:1035
void goToSleep()
GO_TO_SLEEP.
Definition: NAL9602.cpp:859
void needFix()
NEED_FIX.
Definition: NAL9602.cpp:307
UniversalDataWriter * communicationsWriter_
Definition: NAL9602.h:156
NmeaUTCTime utctime_
Timestamp, in NmeaUTCTime format.
Definition: NAL9602.h:371
size_t dataSize_
DATA THAT IS NOT SENT TO THE MODEM size of data
Definition: NAL9602.h:496
virtual RunState stopped()
Initial state – can be later followed by START.
Definition: NAL9602.cpp:2474
DataWriter * cogWriter_
Definition: NAL9602.h:150
Definition: NAL9602.h:184
Definition: NAL9602.h:321
Definition: NAL9602.h:179
bool retrieveAndQueueIncoming(int nUplinkBytes)
Retrieve (uplink) message from modem and queue it for clients.
Definition: NAL9602.cpp:1113
float sog_
Speed Over Ground.
Definition: NAL9602.h:392
Implements both InStream and OutStream for the LPC3XXX Standard UART.
Definition: UartStream.h:26
void awake()
AWAKE.
Definition: NAL9602.cpp:278
void receiving1()
RECEIVING1.
Definition: NAL9602.cpp:823
bool gpsTimeoutArmed_
Definition: NAL9602.h:267
DataQuality quality_
Data quality (see above)
Definition: NAL9602.h:398
CommsState commsState_
Definition: NAL9602.h:217
uint16_t index_
Current index of shore file from sendFilename_.
Definition: NAL9602.h:487
bool radioEnabled_
Definition: NAL9602.h:459
UniversalDataWriter * latitudeFixWriter_
Definition: NAL9602.h:153
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
Definition: NAL9602.h:353
bool debug_
Definition: NAL9602.h:311
Definition: ElementURI.h:166
Hemisphere ewHemisphere_
East/West hemisphere.
Definition: NAL9602.h:386
void uninitialize()
Provide a space for uninitialization.
Definition: NAL9602.cpp:884
Contains the FlexArrayBase and FlexArray class declarations.
Definition: NAL9602.h:479
bool initiateSession()
Definition: NAL9602.cpp:980
void receiving2()
RECEIVING2.
Definition: NAL9602.cpp:850
bool loadParams(void)
Definition: NAL9602.cpp:181
Contains the StrValue class definition.
void sendingFillBuffer()
SENDING1.
Definition: NAL9602.cpp:498
ConfigReader * iridiumFailTimeoutCfgReader_
Definition: NAL9602.h:163
int requestGGA_
Definition: NAL9602.h:246
Timestamp needMTQueueStartTime_
Definition: NAL9602.h:231
Definition: NAL9602.h:181
float hdop_
Horizontal dilution of precision.
Definition: NAL9602.h:404
Definition: NAL9602.h:333
bool gotMTQueue_
Definition: NAL9602.h:234
UniversalDataWriter * timeFixWriter_
Definition: NAL9602.h:152
virtual RunState start()
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Definition: NAL9602.cpp:2205
Hemisphere char2Hemisphere(unsigned char hem)
Returns the hemisphere from the NMEA string.
Definition: NAL9602.cpp:1194
Definition: NAL9602.h:330
int month_
Definition: NAL9602.h:359
short nSatellites_
Number of satellites used in fix.
Definition: NAL9602.h:401
int seconds_
Definition: NAL9602.h:346
Timespan powerDownTimeout_
Definition: NAL9602.h:225
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
Definition: NAL9602.h:440
static double ParseLongitude(const char *nmeaString)
Parse longitude in radians from NMEA standard longitude string.
Definition: NAL9602.cpp:1176
Definition: NAL9602.h:183
bool ok_
Definition: NAL9602.h:239
bool gsvRequested_
Definition: NAL9602.h:273
float altitude_
Altitude above mean sealevel in meters.
Definition: NAL9602.h:407
Timespan requestTimeout_
Definition: NAL9602.h:226
Timestamp powerOnTimeStart_
Definition: NAL9602.h:231
bool cmdReceived_
Definition: NAL9602.h:261
Timespan bufferFillTimeout_
Definition: NAL9602.h:229
Timespan poResetTimeout_
Definition: NAL9602.h:225
Definition: NAL9602.h:174
NmeaUTCTime()
Definition: NAL9602.cpp:2117
void getMTQueueSignalStrength()
Definition: NAL9602.cpp:1410
Replacement for standard template class string.
Definition: Str.h:12
Timestamp utcTime_
Definition: NAL9602.h:231
FlexArray< int * > snrData_
Definition: NAL9602.h:236
float surfaceThreshold_
*----------------— vehicle parameters -----------------------—*/
Definition: NAL9602.h:242
#define MAX_GPS_SATS_9602
Definition: NAL9602.h:68
double longitude_
Definition: NAL9602.h:383
int debug_
Definition: NAL9602.h:497
unsigned int nUplinkBytes_
Definition: NAL9602.h:255
char * resendSBDFilename_
Name of SBD currently being re-sent to shore.
Definition: NAL9602.h:477
This class allows one to control loads on a load controller channel.
Definition: LoadControl.h:24
virtual RunState resuming()
Might follow a PAUSE...RESUME sequence.
Definition: NAL9602.cpp:2346
ConfigReader * checkMTQueueCfgReader_
Definition: NAL9602.h:161
DataWriter * sigQualityWriter_
Definition: NAL9602.h:148
void getReceivedSignalStrength()
Stores modem signal quality (0-5), -1 on error.
Definition: NAL9602.cpp:1343
virtual RunState resume()
Resume from PAUSE.
Definition: NAL9602.cpp:2339
Definition: NAL9602.h:322
Definition: UniversalDataWriter.h:55
Definition: ConfigReader.h:13
ConfigReader * surfaceThresholdCfgReader_
Configuration readers.
Definition: NAL9602.h:159
virtual RunState starting()
Might follow a STOP...START sequence.
Definition: NAL9602.cpp:2259
NmeaUTCDate()
Definition: NAL9602.cpp:2125
int day_
Definition: NAL9602.h:358
void cmdMode()
CMDMODE.
Definition: NAL9602.cpp:252
Contains the Logger class definition.
int year_
Definition: NAL9602.h:360
char command_[512]
Stores the decrypted command.
Definition: NAL9602.h:223
bool sendDataToShore_
Definition: NAL9602.h:243
NAL9602(const Module *module)
Definition: NAL9602.cpp:84
UniversalDataWriter * longitudeFixWriter_
Definition: NAL9602.h:154
bool clearMOBuffer()
Definition: NAL9602.cpp:1094
Fix fix_
Definition: NAL9602.h:419
bool iridiumTimeoutArmed_
Definition: NAL9602.h:270
void sendingVerify()
SENDING3.
Definition: NAL9602.cpp:690
char modemResponse_[512]
Stores the response from the modem.
Definition: NAL9602.h:220
float geoidHeight_
Geoid height above mean sealevel in meters.
Definition: NAL9602.h:410
Timestamp needFixStartTime_
Definition: NAL9602.h:231
void needGSV()
needGSV
Definition: NAL9602.cpp:451
Definition: NAL9602.h:171
Definition: NAL9602.h:176
Definition: NAL9602.h:440
int centiSeconds_
Definition: NAL9602.h:347
float cog_
Course Over Ground.
Definition: NAL9602.h:395
bool checkMTQueue_
Definition: NAL9602.h:244
bool fixRequested_
Definition: NAL9602.h:264
Definition: NAL9602.h:329
bool parseRMCFix(const char *rmcSentence)
Parse Gps fix from NMEA "RMC sentence".
Definition: NAL9602.cpp:1871
int uplinkStatus_
Definition: NAL9602.h:254
virtual ConfigURI getConfigURI(ConfigOption configOption) const
Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc.
Definition: NAL9602.cpp:2162
bool isDataRequested()
Definition: NAL9602.cpp:2151
uint8_t data_[MAX_DOWNLINK_DATA_BYTES]
the payload
Definition: NAL9602.h:491
CommsState
Definition: NAL9602.h:168
Code unit that represents a unique name for a DataElement.
Definition: ElementURI.h:27
Definition: NAL9602.h:324
Contains the Timestamp and Timespan class declarations.
Str sendFilename_
Name of file currently being sent to shore.
Definition: NAL9602.h:499
DataWriter * snrWriter_
Definition: NAL9602.h:210
bool readConfig()
Definition: NAL9602.cpp:190
bool goodRMCFixIndicator(const char *rmcSentence)
Definition: NAL9602.cpp:1635
Provides software interface to the NAL Research NAL9602 Iridium modem and compass.
Definition: NAL9602.h:80
static SentenceType GetNmeaSentenceType(const char *sentence)
Returns type of NMEA sentence.
Definition: NAL9602.cpp:1547
bool communicationsDone_
Definition: NAL9602.h:258
ConfigOption
Definition: Component.h:456
bool qualityRequested_
Definition: NAL9602.h:276
#define MAX_DOWNLINK_DATA_BYTES
Definition: NAL9602.h:64
virtual RunState resetting()
Might occur in case of Error.
Definition: NAL9602.h:113
uint32_t timeT_
DATA THAT IS SENT TO THE MODEM Timestamp of log folder from sendFilename_
Definition: NAL9602.h:485
virtual RunState runnable()
Should eventually follow a START request or RESETTING.
Definition: NAL9602.cpp:2353
Wraps a string (see Str) as a DataValue, so strings can be written to and read from the slate...
Definition: StrValue.h:34
int uplinkSeqNo_
Definition: NAL9602.h:254
UniversalDataReader * longitudeReader_
Definition: NAL9602.h:143
Definition: NAL9602.h:331
ConfigReader * sendDataToShoreCfgReader_
Definition: NAL9602.h:160
virtual void run()
The actual "payload" of the component.
Definition: NAL9602.cpp:219
ConfigReader * requestGGACfgReader_
Definition: NAL9602.h:164
uint16_t packetsLeft_
of packets left to send
Definition: NAL9602.h:489
short sigQuality_
Holds most recent Iridium signal quality.
Definition: NAL9602.h:425
unsigned int nPendingUplinks_
Definition: NAL9602.h:255
virtual RunState stopping()
Might follow a STOP request.
Definition: NAL9602.cpp:2455
Represents absolute times.
Definition: Timestamp.h:31
LoadControl loadControl_
Definition: NAL9602.h:314
Definition: NAL9602.h:172
size_t sendFilesize_
Size of file currently being sent to shore.
Definition: NAL9602.h:501
bool requestFix(void)
sends request to get a fix and returns when data is ready or timeout has occured. ...
Definition: NAL9602.cpp:1276
bool goodGGAFixIndicator(const char *ggaSentence)
Check to see if a fix has been acquired.
Definition: NAL9602.cpp:1580
StrValue keyText_
Definition: NAL9602.h:245
virtual RunState pause()
Pause for a short period (indicated by pauseTime)
Definition: NAL9602.cpp:2278
Definition: NAL9602.h:332
UniversalBlobWriter * locationFixWriter_
Definition: NAL9602.h:155
UartStream uart_
Definition: NAL9602.h:313
bool belowSurfaceThreshold(void)
Definition: NAL9602.cpp:223
unsigned int sentIndex_
Keeps track of how many packets have been sent to shore.
Definition: NAL9602.h:505
bool fillBuffer(const unsigned char *msg, size_t nMsgBytes)
Send (downlink) a message.
Definition: NAL9602.cpp:906