LRAUV  revA
WetLabsBB2FL.h
Go to the documentation of this file.
1 
12 #ifndef WETLABSBB2FL_H
13 #define WETLABSBB2FL_H
14 
15 #include "WetLabsBB2FLIF.h"
16 
17 #include <vector> // std::vector
18 
20 #include "io/LoadControl.h"
21 #include "io/UartStream.h"
22 #include "logger/Logger.h"
23 
25 
33 {
34 public:
35 
36  WetLabsBB2FL( const Module* module );
37 
38  virtual ~WetLabsBB2FL();
39 
40  virtual void run();
41 
44  virtual RunState start();
45 
47  virtual RunState starting();
48 
50  virtual RunState pause();
51 
53  virtual RunState paused();
54 
56  virtual RunState resume();
57 
59  virtual RunState resuming();
60 
62  virtual RunState runnable();
63 
65  virtual RunState resetting()
66  {
67  return stop();
68  }
69 
71  virtual RunState stop();
72 
73  virtual RunState stopping();
74 
76  virtual RunState stopped();
77 
78  void uninitialize( void );
79 
81  virtual ConfigURI getConfigURI( ConfigOption configOption ) const;
82 
83 private:
84  // Note that the copy constructor below is private and not given a body.
85  // Any attempt to call it will return a compiler error.
86  WetLabsBB2FL( const WetLabsBB2FL& old ); // disallow copy constructor
87 
88  void readConfig();
89 
90  // Parses the header information sent back
91  bool parseHeader();
92 
93  // Parses the information sent back
94  bool parse();
95 
96  // returns true if data is requested from one of the readers
97  bool isDataRequested();
98 
99  // Sends data to DataWriters
100  void writeData();
101 
102  // updates the bin used for onboard binning
103  void update_temporal_bin();
104 
105  // calculates bin statistics and writes to the slate
107 
108 
109 #define MAX_DEVICE_RESPONSE ( 255U )
110 
111  // Stores the current response from the device
113 
116 
119 
122 
125 
128 
131 
140 
144 
146 
158 
160 
168 
171 
174 
175  // container for history to use in temporal binning
177  std::vector<float> temporal_bin_;
179 
180  // Serial number of this device
182 
184  bool debug_;
185 
186  // Raw measurement for backscatter at 470nm
188 
189  // Raw measurement for backscatter at 650nm
191 
192  // Raw measurement for chl fluorescence
194 
195  // Output variable
196  float volScat470_;
197 
198  // Output variable
200 
201  // Output variable
202  float volScat650_;
203 
204  // Output variable
206 
207  // Output variable
208  float chlConc_;
209 
210 };
211 #endif /*WETLABSBB2FL_H*/
int samplesToAverage_
Desired number of samples to average.
Definition: WetLabsBB2FL.h:170
DataWriter * outputChlWriter_
Definition: WetLabsBB2FL.h:135
void update_temporal_bin()
Definition: WetLabsBB2FL.cpp:477
ConfigReader * darkCounts650CfgReader_
Definition: WetLabsBB2FL.h:154
LoadControl loadControl_
Power.
Definition: WetLabsBB2FL.h:118
ConfigReader * scaleFactor650CfgReader_
Definition: WetLabsBB2FL.h:153
UniversalDataReader * salinityReader_
Definition: WetLabsBB2FL.h:159
int darkCountsChl_
Definition: WetLabsBB2FL.h:167
Contains the LoadControl class declaration.
Specifies the interface details for the WetLabsBB2FL component in the ScienceModule.
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
DataWriter * binMedianChlWriter_
Definition: WetLabsBB2FL.h:141
virtual RunState resuming()
Might follow a PAUSE...RESUME sequence.
Definition: WetLabsBB2FL.cpp:240
DataWriter * backScat470Writer_
Definition: WetLabsBB2FL.h:138
virtual RunState start()
Do what needs to be done to run Similar to initialize, in old init/run/uninit sequence.
Definition: WetLabsBB2FL.cpp:134
int output470_
Definition: WetLabsBB2FL.h:187
DataWriter * output650Writer_
Definition: WetLabsBB2FL.h:134
virtual RunState starting()
Might follow a STOP...START sequence.
Definition: WetLabsBB2FL.cpp:174
float backScat470_
Definition: WetLabsBB2FL.h:199
ConfigReader * serialCfgReader_
Definition: WetLabsBB2FL.h:150
int output650_
Definition: WetLabsBB2FL.h:190
void uninitialize(void)
Provide a space for uninitialization.
Definition: WetLabsBB2FL.cpp:611
ConfigReader * timeoutCfgReader_
Inputs.
Definition: WetLabsBB2FL.h:148
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
float volScat470_
Definition: WetLabsBB2FL.h:196
RunState
Definition: Component.h:115
virtual RunState pause()
Pause for a short period (indicated by pauseTime)
Definition: WetLabsBB2FL.cpp:219
Contains the UartStream class declaration.
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
ConfigReader * scaleFactorChlCfgReader_
Definition: WetLabsBB2FL.h:155
DataWriter * backScat650Writer_
Definition: WetLabsBB2FL.h:139
float volScat650_
Definition: WetLabsBB2FL.h:202
int darkCounts470_
Definition: WetLabsBB2FL.h:163
int currentSamplesToAverage_
Current umber of samples to average.
Definition: WetLabsBB2FL.h:173
ConfigReader * chlAccuracyCfgReader_
Definition: WetLabsBB2FL.h:157
Implements both InStream and OutStream for the LPC3XXX Standard UART.
Definition: UartStream.h:26
void readConfig()
Definition: WetLabsBB2FL.cpp:100
virtual RunState resume()
Resume from PAUSE.
Definition: WetLabsBB2FL.cpp:234
DataWriter * binMeanChlWriter_
Definition: WetLabsBB2FL.h:142
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
float scaleFactor650_
Definition: WetLabsBB2FL.h:164
std::vector< float > temporal_bin_
Definition: WetLabsBB2FL.h:177
Definition: ElementURI.h:166
WetLabsBB2FL(const Module *module)
Definition: WetLabsBB2FL.cpp:28
virtual RunState stopping()
Might follow a STOP request.
Definition: WetLabsBB2FL.cpp:359
float scaleFactorChl_
Definition: WetLabsBB2FL.h:166
Provides software interface to the Wetlabs puck.
Definition: WetLabsBB2FL.h:32
bool parse()
Definition: WetLabsBB2FL.cpp:428
ConfigReader * darkCounts470CfgReader_
Definition: WetLabsBB2FL.h:152
Timestamp dataTime_
Time the data was collected.
Definition: WetLabsBB2FL.h:130
ConfigReader * scaleFactor470CfgReader_
Definition: WetLabsBB2FL.h:151
virtual ~WetLabsBB2FL()
Definition: WetLabsBB2FL.cpp:96
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
DataWriter * binVarianceChlWriter_
Definition: WetLabsBB2FL.h:143
Replacement for standard template class string.
Definition: Str.h:12
ConfigReader * periodCfgReader_
Definition: WetLabsBB2FL.h:149
float chlConc_
Definition: WetLabsBB2FL.h:208
This class allows one to control loads on a load controller channel.
Definition: LoadControl.h:24
bool parseHeader()
Definition: WetLabsBB2FL.cpp:407
DataWriter * volScat470Writer_
Definition: WetLabsBB2FL.h:136
Definition: ConfigReader.h:13
Timespan timeout_
Timeout for getting data.
Definition: WetLabsBB2FL.h:124
Abstract Base class for software components that run independently from the computation cycle...
Definition: AsyncComponent.h:20
virtual void run()
The actual "payload" of the component.
Definition: WetLabsBB2FL.cpp:127
Contains the Logger class definition.
virtual RunState runnable()
Should eventually follow a START request or RESETTING.
Definition: WetLabsBB2FL.cpp:245
int darkCounts650_
Definition: WetLabsBB2FL.h:165
bool debug_
Debugging outputs.
Definition: WetLabsBB2FL.h:184
Str serial_
Definition: WetLabsBB2FL.h:181
float backScat650_
Definition: WetLabsBB2FL.h:205
Timespan pausePeriod_
How often to run the loop when paused.
Definition: WetLabsBB2FL.h:127
virtual RunState paused()
Should eventually follow a PAUSE request: should set continueTime.
Definition: WetLabsBB2FL.cpp:226
Timestamp binTime_
Definition: WetLabsBB2FL.h:178
virtual RunState resetting()
Might occur in case of Error.
Definition: WetLabsBB2FL.h:65
UniversalDataWriter * chlConcWriter_
Definition: WetLabsBB2FL.h:145
virtual RunState stop()
Initial state – can be later followed by START.
Definition: WetLabsBB2FL.cpp:336
Timestamp startTime_
Time data request started.
Definition: WetLabsBB2FL.h:121
virtual ConfigURI getConfigURI(ConfigOption configOption) const
Should return [myNamespace]::SIMULATE_HARDWARE, or [myNamespace]::POWER, etc.
Definition: WetLabsBB2FL.cpp:591
void calculate_and_report_temporal_bin_statistics()
Definition: WetLabsBB2FL.cpp:493
UartStream uart_
Holds the communications device.
Definition: WetLabsBB2FL.h:115
size_t temporal_bin_count_
Definition: WetLabsBB2FL.h:176
ConfigReader * darkCountsChlCfgReader_
Definition: WetLabsBB2FL.h:156
DataWriter * output470Writer_
Outputs.
Definition: WetLabsBB2FL.h:133
void writeData()
Definition: WetLabsBB2FL.cpp:515
ConfigOption
Definition: Component.h:456
bool isDataRequested()
Definition: WetLabsBB2FL.cpp:604
float scaleFactor470_
Calibration coefficients.
Definition: WetLabsBB2FL.h:162
#define MAX_DEVICE_RESPONSE
Definition: WetLabsBB2FL.h:109
int outputChl_
Definition: WetLabsBB2FL.h:193
Represents absolute times.
Definition: Timestamp.h:31
DataWriter * volScat650Writer_
Definition: WetLabsBB2FL.h:137
virtual RunState stopped()
Initial state – can be later followed by START.
Definition: WetLabsBB2FL.cpp:377
char deviceResponse_[MAX_DEVICE_RESPONSE+1]
Definition: WetLabsBB2FL.h:112
Contains the AsyncComponent class definition.