LRAUV  revA
DVL_micro.h
Go to the documentation of this file.
1 
12 #ifndef DVL_MICRO_H
13 #define DVL_MICRO_H
14 
15 #include "DVL_microIF.h"
16 
18 #include "io/LoadControl.h"
19 #include "io/UartStream.h"
20 #include "logger/Logger.h"
21 
22 #include "data/Point3D.h"
23 #include "data/Point6D.h"
24 #include "data/Matrix3x3.h"
25 
28 
35 #define UART_BUFSIZE 10240L
36 
38 {
39 public:
40 
41  DVL_micro( const Module* module );
42 
43  virtual ~DVL_micro();
44 
45  virtual void run();
46  virtual RunState start();
47  virtual RunState starting();
48  virtual RunState pause();
49  virtual RunState paused();
50  virtual RunState resume();
51  virtual RunState resuming();
52  virtual RunState runnable();
53 
54  virtual RunState resetting()
55  {
56  return stop();
57  }
58 
59  virtual RunState stop();
60  virtual RunState stopping();
61  virtual RunState stopped();
62  void uninitialize();
63  void logVoltageAndCurrent();
65  virtual ConfigURI getConfigURI( ConfigOption configOption ) const;
66 
67 private:
68  DVL_micro( const DVL_micro& old );
69 
70  // scan configuraiton settings
71  void readConfig();
72 
73  void startPing();
74  void endPing();
75  bool simNQ1( void );
76  bool readNQ1( void );
77  bool parseNQ1( const char* nq1 );
78  void processNQ1( void );
79  void writeData( void );
80  void setAcousticWritersInvalid( bool invalid );
81 
82  bool hasNQ1_;
83 
85 
87  Timespan dvlFailTimeout_; // How long we can go without valid data
89 
118 
125 
129 
130  bool isDataRequested();
131  bool isAHRSRequested();
132  bool isPingRequested();
133 
134  bool debug_;
140 
141  int status_;
142 
143  int beam1_;
144  int beam2_;
145  int beam3_;
146  int beam4_;
147 
148  float altitude1_;
149  float altitude2_;
150  float altitude3_;
151  float altitude4_;
152 
153  double veloRad1_;
154  double veloRad2_;
155  double veloRad3_;
156  double veloRad4_;
157 
158  double wveloRad1_;
159  double wveloRad2_;
160  double wveloRad3_;
161  double wveloRad4_;
162 
167 
169  double veloInstX_;
170  double veloInstY_;
171  double veloInstZ_;
173 
174  double veloEarthN_;
175  double veloEarthE_;
176  double veloEarthD_;
178 
180  double wVeloInstX_;
181  double wVeloInstY_;
182  double wVeloInstZ_;
184 
185  double wVeloEarthN_;
186  double wVeloEarthE_;
187  double wVeloEarthD_;
189 
192 
193  double rollOffset_;
194  double pitchOffset_;
195 // double headingOffset_;
196 
197  double rollDeg_;
198  double pitchDeg_;
201  double headingDeg_;
204 
205  double altEstimate_;
206 
207  float temp_;
208  float press_;
209  float salinity_;
210  float sndSpeed_;
211 
212  int cksum_;
213 
214  float speedGnd_;
215  float speedWater_;
216 
217 };
218 #endif /*DVL_MICRO_H*/
double veloRad1_
Definition: DVL_micro.h:153
bool pingRequested_
Definition: DVL_micro.h:135
float altitude4_
Definition: DVL_micro.h:151
Contains a 3x3 array of double precision floating point numbers, along with methods for performing co...
Definition: Matrix3x3.h:27
bool parseNQ1(const char *nq1)
Definition: DVL_micro.cpp:686
double wVeloEarthN_
Definition: DVL_micro.h:185
virtual RunState starting()
Might follow a STOP...START sequence.
Definition: DVL_micro.cpp:237
int status_
Definition: DVL_micro.h:141
UniversalBlobWriter * orientationMatrixWriter_
Definition: DVL_micro.h:95
DataWriter * alt2Writer_
Definition: DVL_micro.h:113
float wveloCredit2_
Definition: DVL_micro.h:164
UniversalDataWriter * yVelCurrentWriter_
Definition: DVL_micro.h:105
double veloEarthE_
Definition: DVL_micro.h:175
Contains the SyncComponent class definition.
bool nq1Requested_
Definition: DVL_micro.h:84
Contains the LoadControl class declaration.
UniversalDataWriter * rollWriter_
Definition: DVL_micro.h:94
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
double pitchOffset_
Definition: DVL_micro.h:194
double rollOffset_
Definition: DVL_micro.h:193
double veloEarthD_
Definition: DVL_micro.h:176
Abstract Base class for components that collect data for use later in the computation cycle...
Definition: SyncComponent.h:172
float altitude1_
Definition: DVL_micro.h:148
bool isPingRequested()
Definition: DVL_micro.cpp:1006
UniversalDataReader * depthReader_
Definition: DVL_micro.h:121
void processNQ1(void)
Definition: DVL_micro.cpp:766
void readConfig()
Definition: DVL_micro.cpp:534
bool dvlTimeoutArmed_
Definition: DVL_micro.h:136
UniversalDataReader * longitudeReader_
Definition: DVL_micro.h:120
float speedWater_
Definition: DVL_micro.h:215
double compassHeadingDeg_
Definition: DVL_micro.h:199
float sndSpeed_
Definition: DVL_micro.h:210
void uninitialize()
Provide a space for uninitialization.
Definition: DVL_micro.cpp:482
#define UART_BUFSIZE
Provides software interface to the DVL Micro.
Definition: DVL_micro.h:35
double wveloRad2_
Definition: DVL_micro.h:159
Timestamp startTime_
Definition: DVL_micro.h:88
double veloEarthN_
Definition: DVL_micro.h:174
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
double pitchDeg_
Definition: DVL_micro.h:198
Specifies the interface details for the DVL_micro component in the SensorModule.
RunState
Definition: Component.h:115
float wveloCredit3_
Definition: DVL_micro.h:165
Contains the UartStream class declaration.
double wveloRad3_
Definition: DVL_micro.h:160
DataWriter * beam3Writer_
Definition: DVL_micro.h:110
UniversalDataWriter * headingWriter_
Definition: DVL_micro.h:91
LoadControl loadControl_
Definition: DVL_micro.h:139
float speedGnd_
Definition: DVL_micro.h:214
UniversalBlobWriter * velocityWrtGroundWriter_
Definition: DVL_micro.h:96
UniversalDataWriter * yVelWrtSeaWriter_
Definition: DVL_micro.h:102
Wraps six double precision (8-byte) floating point numbers.
Definition: Point6D.h:31
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
UniversalBlobWriter * velocityWrtSeaWriter_
Definition: DVL_micro.h:100
UniversalDataWriter * zVelWrtSeaWriter_
Definition: DVL_micro.h:103
void setAcousticWritersInvalid(bool invalid)
Definition: DVL_micro.cpp:955
Definition: DVL_micro.h:37
int wVeloInstFlag_
Definition: DVL_micro.h:183
Contains the Point3D class definition.
Timespan dvlFailTimeout_
Definition: DVL_micro.h:87
double magVariationDeg_
Definition: DVL_micro.h:191
double magneticHeadingDeg_
Definition: DVL_micro.h:200
virtual RunState stopping()
Might follow a STOP request.
Definition: DVL_micro.cpp:430
ConfigReader * pitchOffsetCfgReader_
Definition: DVL_micro.h:127
bool readNQ1(void)
Definition: DVL_micro.cpp:650
Implements both InStream and OutStream for the LPC3XXX Standard UART.
Definition: UartStream.h:26
UniversalDataReader * pitchReader_
Definition: DVL_micro.h:122
bool simNQ1(void)
Definition: DVL_micro.cpp:566
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
Point3D veloInst_
Definition: DVL_micro.h:168
Definition: ElementURI.h:166
UniversalDataWriter * zVelCurrentWriter_
Definition: DVL_micro.h:106
Wraps three double precision (8-byte) floating point numbers.
Definition: Point3D.h:28
UniversalDataWriter * xVelWrtSeaWriter_
Definition: DVL_micro.h:101
float salinity_
Definition: DVL_micro.h:209
void logVoltageAndCurrent()
Definition: DVL_micro.cpp:500
void writeData(void)
Definition: DVL_micro.cpp:906
UniversalDataWriter * xVelWrtGroundWriter_
Definition: DVL_micro.h:97
UniversalDataReader * headingReader_
Definition: DVL_micro.h:123
float altitude3_
Definition: DVL_micro.h:150
int beam4_
Definition: DVL_micro.h:146
void startPing()
Definition: DVL_micro.cpp:541
double veloRad4_
Definition: DVL_micro.h:156
virtual ConfigURI getConfigURI(ConfigOption configOption) const
Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc.
Definition: DVL_micro.cpp:522
virtual RunState start()
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Definition: DVL_micro.cpp:181
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
UartStream uart_
Definition: DVL_micro.h:138
int wVeloEarthFlag_
Definition: DVL_micro.h:188
bool debug_
Definition: DVL_micro.h:134
int veloEarthFlag_
Definition: DVL_micro.h:177
double veloRad2_
Definition: DVL_micro.h:154
double veloRad3_
Definition: DVL_micro.h:155
virtual RunState paused()
Should eventually follow a PAUSE request: should set continueTime.
Definition: DVL_micro.cpp:299
int veloInstFlag_
Definition: DVL_micro.h:172
double wveloRad1_
Definition: DVL_micro.h:158
virtual RunState pause()
Pause for a short period (indicated by pauseTime)
Definition: DVL_micro.cpp:268
double wVeloInstY_
Definition: DVL_micro.h:181
float wveloCredit4_
Definition: DVL_micro.h:166
This class allows one to control loads on a load controller channel.
Definition: LoadControl.h:24
int beam1_
Definition: DVL_micro.h:143
UniversalDataReader * rollReader_
Definition: DVL_micro.h:124
Definition: UniversalDataWriter.h:55
Definition: ConfigReader.h:13
virtual RunState stop()
Initial state – can be later followed by START.
Definition: DVL_micro.cpp:413
float altitude2_
Definition: DVL_micro.h:149
Point3D wVeloInst_
Definition: DVL_micro.h:179
virtual ~DVL_micro()
Definition: DVL_micro.cpp:171
double veloInstY_
Definition: DVL_micro.h:170
DataWriter * alt1Writer_
Definition: DVL_micro.h:112
double wVeloEarthD_
Definition: DVL_micro.h:187
Contains the Logger class definition.
virtual RunState resume()
Resume from PAUSE.
Definition: DVL_micro.cpp:311
double rollDeg_
Definition: DVL_micro.h:197
int cksum_
Definition: DVL_micro.h:212
bool isDataRequested()
Definition: DVL_micro.cpp:986
double wveloRad4_
Definition: DVL_micro.h:161
Contains the Matrix3x3 class definition.
float wveloCredit1_
Definition: DVL_micro.h:163
Matrix3x3 orientationMatrix_
Definition: DVL_micro.h:203
UniversalDataWriter * pitchWriter_
Definition: DVL_micro.h:93
DataWriter * veloInstFlagWriter_
Definition: DVL_micro.h:116
Point6D orientationVector_
Definition: DVL_micro.h:202
UniversalDataWriter * magneticHeadingWriter_
Definition: DVL_micro.h:92
bool hasNQ1_
Definition: DVL_micro.h:82
ConfigReader * rollOffsetCfgReader_
Definition: DVL_micro.h:128
int beam3_
Definition: DVL_micro.h:145
UniversalDataWriter * zVelWrtGroundWriter_
Definition: DVL_micro.h:99
double wVeloEarthE_
Definition: DVL_micro.h:186
DataWriter * beam2Writer_
Definition: DVL_micro.h:109
double veloInstZ_
Definition: DVL_micro.h:171
Timespan dvlTimeout_
Definition: DVL_micro.h:86
bool isAHRSRequested()
Definition: DVL_micro.cpp:998
UniversalDataReader * latitudeReader_
Definition: DVL_micro.h:119
DVL_micro(const Module *module)
Definition: DVL_micro.cpp:34
double altEstimate_
Definition: DVL_micro.h:205
virtual RunState resetting()
Might occur in case of Error.
Definition: DVL_micro.h:54
virtual RunState stopped()
Should eventually follow a STOP request.
Definition: DVL_micro.cpp:457
double magDeviationDeg_
Definition: DVL_micro.h:190
double wVeloInstZ_
Definition: DVL_micro.h:182
UniversalDataWriter * yVelWrtGroundWriter_
Definition: DVL_micro.h:98
DataWriter * alt4Writer_
Definition: DVL_micro.h:115
double wVeloInstX_
Definition: DVL_micro.h:180
DataWriter * alt3Writer_
Definition: DVL_micro.h:114
virtual RunState runnable()
Should eventually follow a START request or RESETTING.
Definition: DVL_micro.cpp:348
double veloInstX_
Definition: DVL_micro.h:169
virtual RunState resuming()
Might follow a PAUSE...RESUME sequence.
Definition: DVL_micro.cpp:338
DataWriter * statusWriter_
Definition: DVL_micro.h:107
UniversalDataWriter * altitudeWriter_
Definition: DVL_micro.h:90
ConfigOption
Definition: Component.h:456
float temp_
Definition: DVL_micro.h:207
DataWriter * wVeloInstFlagWriter_
Definition: DVL_micro.h:117
virtual void run()
The actual "payload" of the component.
Definition: DVL_micro.cpp:175
char deviceResponse_[UART_BUFSIZE]
Definition: DVL_micro.h:137
DataWriter * beam1Writer_
Definition: DVL_micro.h:108
DataWriter * beam4Writer_
Definition: DVL_micro.h:111
UniversalDataWriter * xVelCurrentWriter_
Definition: DVL_micro.h:104
Timestamp dvlFailTime_
Definition: DVL_micro.h:88
int beam2_
Definition: DVL_micro.h:144
Represents absolute times.
Definition: Timestamp.h:31
ConfigReader * magDeviationCfgReader_
Definition: DVL_micro.h:126
float press_
Definition: DVL_micro.h:208
void endPing()
Definition: DVL_micro.cpp:554
double headingDeg_
Definition: DVL_micro.h:201
Contains the Point6D class definition.