LRAUV  revA
Rowe_600.h
Go to the documentation of this file.
1 
12 // TODO: Following the apparent naming convention, perhaps this module should
13 // actually be called [ADCP_Rowe]. Nothing in the interface is specific to the
14 // 600 kHz nominal center frequency anyway.
15 
16 #ifndef Rowe_600_H
17 #define Rowe_600_H
18 
20 #include "data/Matrix3x3.h"
21 #include "data/Point3D.h"
22 #include "data/Mtx.h"
23 #include "io/UartStream.h"
24 #include "io/LoadControl.h"
25 #include "logger/Logger.h"
26 
27 #include "sensorModule/Rowe_600IF.h" // for Rowe_600IF::MAX_SIZE_OF_ENSEMBLE
28 
29 static const unsigned char RTI_PREAMBLE[16] =
30 {
31  0x80, 0x80, 0x80, 0x80, \
32  0x80, 0x80, 0x80, 0x80, \
33  0x80, 0x80, 0x80, 0x80, \
34  0x80, 0x80, 0x80, 0x80
35 };
36 #define SIZE_OF_RTI_HEADER 16 // additional bytes in RTI header -- gives ensemble number & payload size
37 #define SIZE_OF_RTI_CHECKSUM 4 // additional bytes in device response after MATv4 payload
38 #define MAT_HEADER_SIZE 20 // bytes
39 #define MAT_NAME_SIZE 8 // bytes
40 static const char RTI_MAT_SIGNATURE[7] = { 0x00, 0x08, 0x45, 0x30, 0x30, 0x30, 0x30 };
41 
43 
50 class Rowe_600 : public AsyncComponent
51 {
52 public:
53 
54  Rowe_600( const Module* module );
55 
56  virtual ~Rowe_600();
57 
58 // void run();
59 
62  virtual RunState start();
63 
65  virtual RunState starting();
66 
68  virtual RunState pause();
69 
71  virtual RunState paused();
72 
74  virtual RunState resume();
75 
77  virtual RunState resuming();
78 
80  virtual RunState runnable();
81 
83  virtual RunState resetting()
84  {
85  return start();
86  }
87 
89  virtual RunState stop();
90 
91  virtual RunState stopping();
92 
94  virtual RunState stopped();
95 
96  virtual void uninitialize();
97 
99  virtual ConfigURI getConfigURI( ConfigOption configOption ) const;
100 
101 private:
102  // Note that the copy constructor below is private and not given a body.
103  // Any attempt to call it will return a compiler error.
104  Rowe_600( const Rowe_600& old ); // disallow copy constructor
105 
106  //*------------------- vehicle parameters --------------------------*/
107 
108 
110 
111  // initialize vehicle config variables
112  bool loadParams( void );
113 
114  // scan configuration settings
115  bool readConfig( void );
116 
117  // read configuration settings controlling interface functions
118  bool readInterfaceConfigs( void );
119 
120  // read config settings controlling where data is logged
121  bool readWriterConfigs( void );
122 
123  // read config settings controlling accuracy settings
124  bool readAccuracyConfigs( void );
125 
126  // read config settings controlling offset settings
127  bool readOffsetConfigs( void );
128 
129  // returns true if data is requested from one of the readers
130  bool isDataRequested( void );
131 
132  // sets the system time on the instrument
133  bool setInstrumentTime( void ); // TODO: Implement this.
134 
135  // read a full RTI ensemble from the uart
136  bool readEnsemble( void );
137 
138  // skip the preamble -- parse the ensemble number and payload size
139  // readEnsemble uses this to make sure it gets the entire ensemble
140  bool parseRoweHeader( void );
141 
142  // reset all of the matrix offsets
143  void resetMatrixOffsets( const int i = 0 );
144 
145  // pull the data out of deviceResponse_ into member parameters of this instance
146  void processEnsemble( void );
147 
148  // write a message to the syslog with some information about hte matrix you found in the buffer
149  void logMatrixOffset( int i );
150 
151  // read the ensemble data out of the int32 array
152  int readEnsembleDataMatrix( void );
153 
154  // read the bottom track data out of the E000010 matrix (or the simulator)
155  int readBottomTrackMatrix( void );
156 
157  // read ancillary data out of the E0000xx matrix
158  int readAncillaryDataMatrix( void );
159 
160  // rotate the vector data from the instrument into the vehicle frame
161  void rotateDataIntoVehicleFrame( void );
162 
163  // compute derived measurements (height above seafloor, speed, etc.) and scalar data quality metrics
164  void preprocessData( void );
165 
166  // set bottom track writers as valid or invalid
167  void setBottomTrackWritersInvalid( bool invalid );
168 
169  // set ensemble data writers as valid or invalid
170  void setEnsembleDataWritersInvalid( bool invalid );
171 
172  // set water reference layer writers as valid or invalid
173  void setWaterReferenceLayerWritersInvalid( bool invalid );
174 
175  // finally, write the data to the slate
176  void writeData( void );
177 
178  // write waw ENS blob to a separate file
179  void appendEnsembleToFile( void );
180 
181  // optionally report vector components from bottom track data to the syslog (controlled by verbosity config setting)
182  void reportBottomTrackComponents( void );
183 
184  // Read a MATv4 matrix of single-precision floats into a Mtx container.
185  int readMATv4float32( Mtx &tgt, const char* mat ); // TODO: Migrate this somewhere more suitable in the codebase.
186 
187  // standard member parameters TODO: should these be moved up to the superclass?
188  bool debug_; // flag for debugging outputs
189  int verbosity_; // counter for verbosity level (messages to syslog, etc.)
190  LoadControl loadControl_; // the interface for the assigned load control board
191  Timespan powerOnTimeout_; // timeout for powering down/up
192  UartStream uart_; // holds the communications device
193  Timespan pausePeriod_; // pause period for Asynchronous component
194 
195  // device-specific member parameters
196  Timestamp dataTimestamp_; // time the RTI preamble was successfully read
198  Timestamp startTime_; // time data request started
199  char deviceResponse_[ sizeof( RTI_PREAMBLE ) + SIZE_OF_RTI_HEADER + Rowe_600IF::MAX_SIZE_OF_ENSEMBLE + SIZE_OF_RTI_CHECKSUM ]; // stores the current response from Rowe_600.
200  bool hasDeviceResponse_; // flag indicating whether the interface received a complete & valid ensemble
209 // float waterProfileVelocityAccuracyCfg_;
213 
216 
217  // filename for external ensemble file
218  char ens_filename_[128]; // TODO: could be 32?
219 
220  // data from the Rowe binary packet
221  int32_t ensembleNumber_; // int32 (4 byte integer) max 2147483647
222  int32_t payloadSize_; // int32 (4 byte integer) max 2147483647
223  Mtx beamVelocity_; // float32 [bins x beams] Beam velocity in m/s. (Contains the Beam coordinate velocity profile data as measured along each beam. The data is useful for diagnostic purposes and for when the user wants to perform their own transformation. It is arranged beam 0 to 3 for all bins.) Beam velocity is positive pointing (away from/toward?) the transducer.
225  Mtx instrumentVelocity_; // float32 [bins x beams] Instrument velocity in m/s. (Contains the Instrument coordinate velocity profile. It is arranged X, Y, Z, Q for all bins.) X points from transducer _ to _, Y points from _ to _, and Z points from _ to _.
227  Mtx earthVelocity_; // float32 [bins x beams] Earth velocity in m/s. (Contains the Earth coordinate velocity profile. It is arranged E, N, U, Q for all bins.)
229  Mtx amplitude_; // float32 [bins x beams] Amplitude in dB. (Contains the Beam Amplitude profile. It is arranged beam 0 to 3 for all bins.)
231  Mtx correlation_; // float32 [bins x beams] Correlation where 1.0 = 100% and 0.5 = 50% correlation. (Contains the Beam Correlation profile. It is arranged beam 0 to 3 for all bins.)
233  Mtx goodBeamPings_; // int32 [bins x beams] (Contains the number of good pings for each bin/beam in the beam velocity data matrix E000001. It is arranged beam 0 to 3 for all bins.)
235  Mtx goodEarthPings_; // int32 [bins x beams] (Contains the number of good pings for each bin/beam in the ENUQ velocity data matrix E000003. It is arranged NG3, NG3, NG3, NG4 for each bin. Where: NG3 = the Number of Good 3 beam solutions and NG4 = the Number of Good 4 beam solutions in the bin.)
237  int ensembleData_[22]; // int32 [22 x 1] ensemble number, bins, beams, pings desired, pings acquired, status, time, serial number, firmware version, subsystem configuration
239  Mtx ancillaryData_; // float32 [13 x 1] more ensemble data (E000009)
241  Mtx bottomTrack_; // float32 [54 x 1] bottom track data (E000010)
243  // Since we are not planning to send NMEA strings to the ADCP, we will not bother parsing the variable-length E000011 data. That can be captured to the slate using the raw ensemble writer.
245 
246  // individual ensemble parameters
247  // ensembleNumber_ initially comes from the Rowe header, but is also at ensembleData_[0]. Check that they match for consistency, but do not keep track of two member parameters.
252  int status_;
253  Timestamp ensembleTimestamp_; // Set from the ensemble integers for year, month, day, hour, minute, second, hundredths
254  // TODO: Decide whether to really deal with the serial number.
255  // TODO: Decide whether to really deal with the system type & firmware version.
256  // TODO: Decide whether to really deal with the subsystem configuration.
257  // The system type, firmware, and subsystem configuration variables will be necessary to handle if we get a multifrequency or multidirectional system in the future.
258  // TODO: fill in the ancillary parameters from E000009
259 
260  // individual bottom track parameters
262  float headingDegrees_, pitchDegrees_, rollDegrees_; // TODO: Deprecated -- go straight to orientationVector_ and orientationMatrix_
268  float soundspeed_;
269  bool statusOr_; // explicit cast from float32
270  int numberOfBottomTrackBeams_; // explicit cast from float32
271  int pingCount_; // explicit cast from float32
272  Mtx verticalRange_; // float32 [4 x 1]
273  Mtx signalToNoiseRatio_; // float32 [4 x 1]
274  Mtx bottomTrackAmplitude_; // float32 [4 x 1]
275  Mtx bottomTrackCorrelation_; // float32 [4 x 1]
276  Mtx bottomTrackBeamVelocity_; // float32 [4 x 1]
280  Mtx bottomTrackEarthVelocity_; // float32 [4 x 1]
282 
283  // additional parameters for LRAUV software interface
284  float altitude_; // we will probably use the minimum from Mtx verticalRange_
287 
288  // Config readers
289  ConfigReader* verbosityCfgReader_; // reads an int to set the verbosity level
290  ConfigReader* pausePeriodCfgReader_; // reads an int to set the verbosity level
298  ConfigReader* writeRawEnsembleCfgReader_; // reads a boolean indicating whether to record the raw ensemble to an external ENS file
300  ConfigReader* numberOfBeamsCfgReader_; // reads an int to specify the expected number of beams
301  ConfigReader* numberOfBinsCfgReader_; // reads an int to specify the expected number of bins
302  ConfigReader* sampleTimeCfgReader_; // reads a float to specify the number of seconds a sample is allowed to take
303  ConfigReader* bottomTrackVelocityAccuracyCfgReader_; // reads a float indicating the rated accuracy of the bottom track velocity
304  ConfigReader* waterTrackVelocityAccuracyCfgReader_; // reads a float indicating the rated accuracy of the bottom track velocity
305  ConfigReader* altitudeAccuracyCfgReader_; // reads a float indicating the rated accuracy of the bottom track velocity
306 // ConfigReader* waterProfileVelocityAccuracyCfgReader_; // reads a float indicating the rated accuracy of the bottom track velocity
307  // TODO: A configuration reader pointing to a file with the instrument firmware configuration.
308  // TODO: A configuration reader pointing to a file with the calibrated transformation from instrument to vehicle coordinates. (This should be a binary file of some sort -- could use Mtx for now, but mat-file might be better in the future, since we'd like double-precision for something critical like this...)
309  ConfigReader* rollOffsetCfgReader_; // reads a double
312  ConfigReader* maxSpeedCfgReader_; // reads a float
314 
315  // Universal readers
316  // TODO: Does the Rowe ADCP interface actually need to know location for anything?
317 
318  // Universal writers
321  // UniversalBlobWriter* velocityWrtWaterWriter_;
323 
324  // component-level writers to the slate
339 
350 
359 
367 
369 };
370 #endif /*Rowe_600_H*/
Contains a 3x3 array of double precision floating point numbers, along with methods for performing co...
Definition: Matrix3x3.h:27
virtual RunState stop()
Initial state – can be later followed by START.
Definition: Rowe_600.cpp:488
BlobWriter * bottomTrackInstrumentVelocityWriter_
Definition: Rowe_600.h:346
float salinityPPT_
Definition: Rowe_600.h:265
DataWriter * depthWriter_
Definition: Rowe_600.h:334
Mtx goodBeamPings_
Definition: Rowe_600.h:233
DataWriter * payloadSizeWriter_
Definition: Rowe_600.h:352
Mtx correlation_
Definition: Rowe_600.h:231
virtual RunState resuming()
Might follow a PAUSE...RESUME sequence.
Definition: Rowe_600.cpp:391
bool hasDeviceResponse_
Definition: Rowe_600.h:200
void setBottomTrackWritersInvalid(bool invalid)
Definition: Rowe_600.cpp:1117
DataWriter * pitchWriter_
Definition: Rowe_600.h:328
ConfigReader * writeCorrelationProfileCfgReader_
Definition: Rowe_600.h:295
virtual RunState runnable()
Should eventually follow a START request or RESETTING.
Definition: Rowe_600.cpp:410
bool writeInstrumentVelocityProfileCfg_
Definition: Rowe_600.h:204
Point3D velocityRelativeToWaterInVehicleFrame_
Definition: Rowe_600.h:286
Contains the LoadControl class declaration.
virtual RunState resetting()
Might occur in case of Error.
Definition: Rowe_600.h:83
DataWriter * numberOfDesiredPingsWriter_
Definition: Rowe_600.h:355
DataWriter * numberOfBinsWriter_
Definition: Rowe_600.h:354
ConfigReader * altitudeAccuracyCfgReader_
Definition: Rowe_600.h:305
void writeData(void)
Definition: Rowe_600.cpp:1156
ConfigReader * maxSpeedCfgReader_
Definition: Rowe_600.h:312
float waterTrackVelocityAccuracyCfg_
Definition: Rowe_600.h:207
Mtx bottomTrackCorrelation_
Definition: Rowe_600.h:275
Timestamp startTime_
Definition: Rowe_600.h:198
LoadControl loadControl_
Definition: Rowe_600.h:190
BlobWriter * bottomTrackNumberOfPingsAveragedWriter_
Definition: Rowe_600.h:345
void resetMatrixOffsets(const int i=0)
Definition: Rowe_600.cpp:701
virtual RunState paused()
Should eventually follow a PAUSE request: should set continueTime.
Definition: Rowe_600.cpp:358
Timespan pausePeriod_
Definition: Rowe_600.h:193
DataWriter * statusOrWriter_
Definition: Rowe_600.h:336
float maxSpeedCfg_
Definition: Rowe_600.h:211
virtual void uninitialize()
Provide a space for uninitialization.
Definition: Rowe_600.cpp:547
Mtx verticalRange_
Definition: Rowe_600.h:272
Specifies the interface details for the Rowe_600 component in the SensorModule.
Provides software interface to the Rowe Rowe_600 DVL.
Definition: Rowe_600.h:50
BlobWriter * bottomTrackNumberOfInstrumentSolutionsAveragedWriter_
Definition: Rowe_600.h:347
DataWriter * salinityWriter_
Definition: Rowe_600.h:332
int ancillaryDataOffset_
Definition: Rowe_600.h:240
Mtx earthVelocity_
Definition: Rowe_600.h:227
float systemTemperatureDegreesCelsius_
Definition: Rowe_600.h:264
float waterTemperatureDegreesCelsius_
Definition: Rowe_600.h:263
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
UartStream uart_
Definition: Rowe_600.h:192
Mtx bottomTrackNumberOfEarthSolutionsAveraged_
Definition: Rowe_600.h:281
bool parseRoweHeader(void)
Definition: Rowe_600.cpp:677
int readAncillaryDataMatrix(void)
Definition: Rowe_600.cpp:997
BlobWriter * bottomTrackCorrelationWriter_
Definition: Rowe_600.h:343
RunState
Definition: Component.h:115
int numberOfBeams_
Definition: Rowe_600.h:249
Matrix3x3 rotationFromVehicleToInstrumentFrame_
Definition: Rowe_600.h:215
ConfigReader * writeBeamVelocityProfileCfgReader_
Definition: Rowe_600.h:291
Contains the UartStream class declaration.
bool writeEarthVelocityProfileCfg_
Definition: Rowe_600.h:204
virtual RunState resume()
Resume from PAUSE.
Definition: Rowe_600.cpp:376
float lastBottomTrackPingTime_
Definition: Rowe_600.h:261
int ensembleData_[22]
Definition: Rowe_600.h:237
float pressureBar_
Definition: Rowe_600.h:266
BlobWriter * amplitudeWriter_
Definition: Rowe_600.h:363
void setWaterReferenceLayerWritersInvalid(bool invalid)
Definition: Rowe_600.cpp:1146
int readBottomTrackMatrix(void)
Definition: Rowe_600.cpp:914
Mtx bottomTrackNumberOfInstrumentSolutionsAveraged_
Definition: Rowe_600.h:279
DataWriter * lastBottomTrackPingTimeWriter_
Definition: Rowe_600.h:326
UniversalDataWriter * altitudeWriter_
Definition: Rowe_600.h:319
DataWriter * waterTemperatureWriter_
Definition: Rowe_600.h:330
float depthMeters_
Definition: Rowe_600.h:267
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
Mtx bottomTrackBeamVelocity_
Definition: Rowe_600.h:276
Mtx beamVelocity_
Definition: Rowe_600.h:223
BlobWriter * signalToNoiseRatioWriter_
Definition: Rowe_600.h:341
Contains the Point3D class definition.
int goodBeamPingsOffset_
Definition: Rowe_600.h:234
int waterReferenceLayerBin_
Definition: Rowe_600.h:212
Matrix3x3 rotationFromInstrumentToVehicleFrame_
Definition: Rowe_600.h:214
DataWriter * statusWriter_
Definition: Rowe_600.h:357
Mtx signalToNoiseRatio_
Definition: Rowe_600.h:273
Implements both InStream and OutStream for the LPC3XXX Standard UART.
Definition: UartStream.h:26
ConfigReader * numberOfBeamsCfgReader_
Definition: Rowe_600.h:300
virtual ~Rowe_600()
Definition: Rowe_600.cpp:208
bool debug_
Definition: Rowe_600.h:188
ConfigReader * verbosityCfgReader_
Definition: Rowe_600.h:289
float altitudeAccuracyCfg_
Definition: Rowe_600.h:208
UniversalBlobWriter * velocityWrtGroundWriter_
Definition: Rowe_600.h:320
Definition: Mtx.h:24
BlobWriter * earthVelocityWriter_
Definition: Rowe_600.h:362
ConfigReader * waterTrackVelocityAccuracyCfgReader_
Definition: Rowe_600.h:304
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
virtual RunState starting()
Might follow a STOP...START sequence.
Definition: Rowe_600.cpp:323
BlobWriter * goodBeamPingsWriter_
Definition: Rowe_600.h:365
float pitchDegrees_
Definition: Rowe_600.h:262
char deviceResponse_[sizeof(RTI_PREAMBLE)+SIZE_OF_RTI_HEADER+Rowe_600IF::MAX_SIZE_OF_ENSEMBLE+SIZE_OF_RTI_CHECKSUM]
Definition: Rowe_600.h:199
Definition: BlobWriter.h:227
void appendEnsembleToFile(void)
Definition: Rowe_600.cpp:1272
Mtx instrumentVelocity_
Definition: Rowe_600.h:225
Definition: ElementURI.h:166
BlobWriter * bottomTrackAmplitudeWriter_
Definition: Rowe_600.h:342
bool writeCorrelationProfileCfg_
Definition: Rowe_600.h:204
ConfigReader * bottomTrackVelocityAccuracyCfgReader_
Definition: Rowe_600.h:303
Wraps three double precision (8-byte) floating point numbers.
Definition: Point3D.h:28
BlobWriter * bottomTrackNumberOfEarthSolutionsAveragedWriter_
Definition: Rowe_600.h:349
ConfigReader * acousticBlankingDistanceCfgReader_
Definition: Rowe_600.h:299
Mtx ancillaryData_
Definition: Rowe_600.h:239
virtual ConfigURI getConfigURI(ConfigOption configOption) const
Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc.
Definition: Rowe_600.cpp:564
Mtx bottomTrackNumberOfPingsAveraged_
Definition: Rowe_600.h:277
int instrumentVelocityOffset_
Definition: Rowe_600.h:226
int amplitudeOffset_
Definition: Rowe_600.h:230
BlobWriter * rawEnsembleWriter_
Definition: Rowe_600.h:368
DataWriter * pingCountWriter_
Definition: Rowe_600.h:338
Mtx bottomTrackInstrumentVelocity_
Definition: Rowe_600.h:278
int numberOfAcquiredPings_
Definition: Rowe_600.h:251
double headingOffsetCfg_
Definition: Rowe_600.h:210
ConfigReader * pitchOffsetCfgReader_
Definition: Rowe_600.h:310
ConfigReader * sampleTimeCfgReader_
Definition: Rowe_600.h:302
DataWriter * numberOfBeamsWriter_
Definition: Rowe_600.h:353
int32_t ensembleNumber_
Definition: Rowe_600.h:221
ConfigReader * pausePeriodCfgReader_
Definition: Rowe_600.h:290
void preprocessData(void)
Definition: Rowe_600.cpp:1048
Point3D velocityRelativeToGroundInVehicleFrame_
Definition: Rowe_600.h:285
Mtx bottomTrack_
Definition: Rowe_600.h:241
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
ConfigReader * rollOffsetCfgReader_
Definition: Rowe_600.h:309
int pingCount_
Definition: Rowe_600.h:271
int numberOfBins_
Definition: Rowe_600.h:248
DataWriter * soundspeedWriter_
Definition: Rowe_600.h:335
void reportBottomTrackComponents(void)
Definition: Rowe_600.cpp:1305
#define SIZE_OF_RTI_HEADER
Definition: Rowe_600.h:36
#define SIZE_OF_RTI_CHECKSUM
Definition: Rowe_600.h:37
bool writeRawEnsembleCfg_
Definition: Rowe_600.h:204
Timestamp ensembleTimestamp_
Definition: Rowe_600.h:253
virtual RunState pause()
Pause for a short period (indicated by pauseTime)
Definition: Rowe_600.cpp:338
BlobWriter * bottomTrackBeamVelocityWriter_
Definition: Rowe_600.h:344
float firstBottomTrackPingTime_
Definition: Rowe_600.h:261
This class allows one to control loads on a load controller channel.
Definition: LoadControl.h:24
DataWriter * headingWriter_
Definition: Rowe_600.h:327
BlobWriter * correlationWriter_
Definition: Rowe_600.h:364
bool statusOr_
Definition: Rowe_600.h:269
int earthVelocityOffset_
Definition: Rowe_600.h:228
ConfigReader * numberOfBinsCfgReader_
Definition: Rowe_600.h:301
DataWriter * ensembleNumberWriter_
Definition: Rowe_600.h:351
float altitude_
Definition: Rowe_600.h:284
int bottomTrackOffset_
Definition: Rowe_600.h:242
int ensembleDataOffset_
Definition: Rowe_600.h:238
virtual RunState stopped()
Initial state – can be later followed by START.
Definition: Rowe_600.cpp:529
Definition: UniversalDataWriter.h:55
Definition: ConfigReader.h:13
Timespan sampleTime_
Definition: Rowe_600.h:197
int status_
Definition: Rowe_600.h:252
float headingDegrees_
Definition: Rowe_600.h:262
bool waterReferenceLayerVelocitiesInvalid_
Definition: Rowe_600.h:244
BlobWriter * verticalRangeWriter_
Definition: Rowe_600.h:340
char ens_filename_[128]
Definition: Rowe_600.h:218
ConfigReader * headingOffsetCfgReader_
Definition: Rowe_600.h:311
Abstract Base class for software components that run independently from the computation cycle...
Definition: AsyncComponent.h:20
bool hasRoweHeader_
Definition: Rowe_600.h:201
Mtx bottomTrackAmplitude_
Definition: Rowe_600.h:274
bool writeAmplitudeProfileCfg_
Definition: Rowe_600.h:204
BlobWriter * instrumentVelocityWriter_
Definition: Rowe_600.h:361
double pitchOffsetCfg_
Definition: Rowe_600.h:210
int32_t payloadSize_
Definition: Rowe_600.h:222
bool writeBeamVelocityProfileCfg_
Definition: Rowe_600.h:204
void rotateDataIntoVehicleFrame(void)
Definition: Rowe_600.cpp:1027
Contains the Logger class definition.
float soundspeed_
Definition: Rowe_600.h:268
Contains the Matrix3x3 class definition.
bool writeGoodEarthPingsProfileCfg_
Definition: Rowe_600.h:204
int beamVelocityOffset_
Definition: Rowe_600.h:224
bool readOffsetConfigs(void)
Definition: Rowe_600.cpp:270
DataWriter * numberOfAcquiredPingsWriter_
Definition: Rowe_600.h:356
Timespan powerOnTimeout_
Definition: Rowe_600.h:191
float rollDegrees_
Definition: Rowe_600.h:262
BlobWriter * goodEarthPingsWriter_
Definition: Rowe_600.h:366
ConfigReader * writeInstrumentVelocityProfileCfgReader_
Definition: Rowe_600.h:292
DataWriter * numberOfBottomTrackBeamsWriter_
Definition: Rowe_600.h:337
int goodEarthPingsOffset_
Definition: Rowe_600.h:236
bool readWriterConfigs(void)
Definition: Rowe_600.cpp:246
BlobWriter * beamVelocityWriter_
Definition: Rowe_600.h:360
int numberOfBinsCfg_
Definition: Rowe_600.h:203
ConfigReader * writeRawEnsembleCfgReader_
Definition: Rowe_600.h:298
bool isDataRequested(void)
Definition: Rowe_600.cpp:569
BlobWriter * bottomTrackEarthVelocityWriter_
Definition: Rowe_600.h:348
Rowe_600(const Module *module)
Definition: Rowe_600.cpp:24
ConfigReader * writeAmplitudeProfileCfgReader_
Definition: Rowe_600.h:294
int readMATv4float32(Mtx &tgt, const char *mat)
Definition: Rowe_600.cpp:1326
DataWriter * systemTemperatureWriter_
Definition: Rowe_600.h:331
DataWriter * rollWriter_
Definition: Rowe_600.h:329
ConfigReader * waterReferenceLayerBinCfgReader_
Definition: Rowe_600.h:313
Mtx amplitude_
Definition: Rowe_600.h:229
virtual RunState stopping()
Might follow a STOP request.
Definition: Rowe_600.cpp:511
Mtx goodEarthPings_
Definition: Rowe_600.h:235
int numberOfDesiredPings_
Definition: Rowe_600.h:250
ConfigOption
Definition: Component.h:456
bool readEnsemble(void)
Definition: Rowe_600.cpp:603
virtual RunState start()
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Definition: Rowe_600.cpp:281
ConfigReader * writeEarthVelocityProfileCfgReader_
Definition: Rowe_600.h:293
Mtx bottomTrackEarthVelocity_
Definition: Rowe_600.h:280
void processEnsemble(void)
Definition: Rowe_600.cpp:715
int verbosity_
Definition: Rowe_600.h:189
DataWriter * ensembleTimestampWriter_
Definition: Rowe_600.h:358
double rollOffsetCfg_
Definition: Rowe_600.h:210
BlobWriter * velocityWrtWaterWriter_
Definition: Rowe_600.h:322
DataWriter * firstBottomTrackPingTimeWriter_
Definition: Rowe_600.h:325
int numberOfBottomTrackBeams_
Definition: Rowe_600.h:270
int readEnsembleDataMatrix(void)
Definition: Rowe_600.cpp:875
bool setInstrumentTime(void)
bool readAccuracyConfigs(void)
Definition: Rowe_600.cpp:261
float bottomTrackVelocityAccuracyCfg_
Definition: Rowe_600.h:206
void setEnsembleDataWritersInvalid(bool invalid)
Definition: Rowe_600.cpp:1151
int numberOfBeamsCfg_
Definition: Rowe_600.h:202
DataWriter * pressureWriter_
Definition: Rowe_600.h:333
int correlationOffset_
Definition: Rowe_600.h:232
bool readConfig(void)
Definition: Rowe_600.cpp:211
void logMatrixOffset(int i)
Definition: Rowe_600.cpp:866
bool writeGoodBeamPingsProfileCfg_
Definition: Rowe_600.h:204
Represents absolute times.
Definition: Timestamp.h:31
float acousticBlankingDistanceCfg_
Definition: Rowe_600.h:205
bool readInterfaceConfigs(void)
Definition: Rowe_600.cpp:235
ConfigReader * writeGoodEarthPingsProfileCfgReader_
Definition: Rowe_600.h:297
Timestamp dataTimestamp_
Definition: Rowe_600.h:196
ConfigReader * writeGoodBeamPingsProfileCfgReader_
Definition: Rowe_600.h:296
Contains the AsyncComponent class definition.
bool loadParams(void)