OceanDirect  1.30.1-rc.4
OceanDirect C++/C API
FeatureFamilies.h
1 /*****************************************************
2  * @file FeatureFamilies.h
3  * @date March 2021
4  * @author Ocean Optics, Inc.
5  *
6  * This provides a way to get references to different kinds
7  * of features (e.g. spectrometer, TEC) generically.
8  */
9  /************************************************************************
10  *
11  * OCEAN INSIGHT CONFIDENTIAL
12  * __________________
13  *
14  * [2018] - [2021] Ocean Insight Incorporated
15  * All Rights Reserved.
16  *
17  * NOTICE: All information contained herein is, and remains
18  * the property of Ocean Insight Incorporated and its suppliers,
19  * if any. The intellectual and technical concepts contained
20  * herein are proprietary to Ocean Insight Incorporated
21  * and its suppliers and may be covered by U.S. and Foreign Patents,
22  * patents in process, and are protected by trade secret or copyright law.
23  * Dissemination of this information or reproduction of this material
24  * is strictly forbidden unless prior written permission is obtained
25  * from Ocean Insight Incorporated.
26  *
27  **************************************************************************/
28 
29 #ifndef OCEANDIRECT_FEATUREFAMILIES_H
30 #define OCEANDIRECT_FEATUREFAMILIES_H
31 
32 #include "common/features/FeatureFamily.h"
33 #include <vector>
34 
35 namespace oceandirect {
36  namespace api {
37 
38  class UndefinedFeatureFamily : public FeatureFamily {
39  public:
41  virtual ~UndefinedFeatureFamily();
42  };
43 
44  class SerialNumberFeatureFamily : public FeatureFamily {
45  public:
47  virtual ~SerialNumberFeatureFamily();
48  };
49 
50  class SpectrometerFeatureFamily : public FeatureFamily {
51  public:
53  virtual ~SpectrometerFeatureFamily();
54  };
55 
56  class ThermoElectricFeatureFamily : public FeatureFamily {
57  public:
59  virtual ~ThermoElectricFeatureFamily();
60  };
61 
62  class IrradCalFeatureFamily : public FeatureFamily {
63  public:
65  virtual ~IrradCalFeatureFamily();
66  };
67 
68  class EEPROMFeatureFamily : public FeatureFamily {
69  public:
71  virtual ~EEPROMFeatureFamily();
72  };
73 
74  class LightSourceFeatureFamily : public FeatureFamily {
75  public:
77  virtual ~LightSourceFeatureFamily();
78  };
79 
80  class StrobeLampFeatureFamily : public FeatureFamily {
81  public:
83  virtual ~StrobeLampFeatureFamily();
84  };
85 
86  class ContinuousStrobeFeatureFamily : public FeatureFamily {
87  public:
90  };
91 
92  class WaveCalFeatureFamily : public FeatureFamily {
93  public:
95  virtual ~WaveCalFeatureFamily();
96  };
97 
98  class NonlinearityCoeffsFeatureFamily : public FeatureFamily {
99  public:
102  };
103 
104  class TemperatureFeatureFamily : public FeatureFamily {
105  public:
107  virtual ~TemperatureFeatureFamily();
108  };
109 
110  class RevisionFeatureFamily : public FeatureFamily {
111  public:
113  virtual ~RevisionFeatureFamily();
114  };
115 
116  class OpticalBenchFeatureFamily : public FeatureFamily {
117  public:
119  virtual ~OpticalBenchFeatureFamily();
120  };
121 
122  class StrayLightCoeffsFeatureFamily : public FeatureFamily {
123  public:
126  };
127 
128  class RawBusAccessFeatureFamily : public FeatureFamily {
129  public:
131  virtual ~RawBusAccessFeatureFamily();
132  };
133 
134  class DataBufferFeatureFamily : public FeatureFamily {
135  public:
137  virtual ~DataBufferFeatureFamily();
138  };
139 
140  class BackToBackFeatureFamily : public FeatureFamily {
141  public:
143  virtual ~BackToBackFeatureFamily();
144  };
145 
146  class AcquisitionDelayFeatureFamily : public FeatureFamily {
147  public:
150  };
151 
152  class PixelBinningFeatureFamily : public FeatureFamily {
153  public:
155  virtual ~PixelBinningFeatureFamily();
156  };
157 
158  class GpioFeatureFamily : public FeatureFamily {
159  public:
161  virtual ~GpioFeatureFamily();
162  };
163 
164  class SingleStrobeFeatureFamily : public FeatureFamily {
165  public:
167  virtual ~SingleStrobeFeatureFamily();
168  };
169 
170  class QueryStatusFeatureFamily : public FeatureFamily {
171  public:
173  virtual ~QueryStatusFeatureFamily();
174  };
175 
176  class LEDActivityFeatureFamily : public FeatureFamily {
177  public:
179  virtual ~LEDActivityFeatureFamily();
180  };
181 
182  class TimeFeatureFamily : public FeatureFamily {
183  public:
185  virtual ~TimeFeatureFamily();
186  };
187 
188  class AnalogInFeatureFamily : public FeatureFamily {
189  public:
191  virtual ~AnalogInFeatureFamily();
192  };
193 
194  class AnalogOutFeatureFamily : public FeatureFamily {
195  public:
197  virtual ~AnalogOutFeatureFamily();
198  };
199 
200  class DHCPServerConfigurationFeatureFamily : public FeatureFamily {
201  public:
204  };
205 
206  class ShutterFeatureFamily : public FeatureFamily {
207  public:
209  virtual ~ShutterFeatureFamily();
210  };
211 
212  class PixelFeatureFamily : public FeatureFamily {
213  public:
215  virtual ~PixelFeatureFamily();
216  };
217 
218  class AutoNullingFeatureFamily : public FeatureFamily {
219  public:
221  virtual ~AutoNullingFeatureFamily();
222  };
223 
224  class UserStringFeatureFamily : public FeatureFamily {
225  public:
227  virtual ~UserStringFeatureFamily();
228  };
229 
230  class DeviceInformationFeatureFamily : public FeatureFamily {
231  public:
234  };
235 
236  class DeviceAliasFeatureFamily : public FeatureFamily {
237  public:
239  virtual ~DeviceAliasFeatureFamily();
240  };
241 
242  class SerialPortFeatureFamily : public FeatureFamily {
243  public:
245  virtual ~SerialPortFeatureFamily();
246  };
247 
248  class Ipv4AddressFeatureFamily : public FeatureFamily {
249  public:
251  virtual ~Ipv4AddressFeatureFamily();
252  };
253 
254  class SpectrumAcquisitionControlFeatureFamily : public FeatureFamily {
255  public:
258  };
259 
261  public:
262  const UndefinedFeatureFamily UNDEFINED;
263  const SerialNumberFeatureFamily SERIAL_NUMBER;
264  const SpectrometerFeatureFamily SPECTROMETER;
265  const ThermoElectricFeatureFamily THERMOELECTRIC;
266  const IrradCalFeatureFamily IRRAD_CAL;
267  const EEPROMFeatureFamily EEPROM;
268  const LightSourceFeatureFamily LIGHT_SOURCE;
269  const StrobeLampFeatureFamily STROBE_LAMP_ENABLE;
270  const ContinuousStrobeFeatureFamily CONTINUOUS_STROBE;
271  const WaveCalFeatureFamily WAVELENGTH_CAL;
272  const NonlinearityCoeffsFeatureFamily NONLINEARITY_COEFFS;
273  const TemperatureFeatureFamily TEMPERATURE;
274  const RevisionFeatureFamily REVISION;
275  const OpticalBenchFeatureFamily OPTICAL_BENCH;
276  const StrayLightCoeffsFeatureFamily STRAY_LIGHT_COEFFS;
277  const RawBusAccessFeatureFamily RAW_BUS_ACCESS;
278  const DataBufferFeatureFamily DATA_BUFFER;
279  const BackToBackFeatureFamily BACK_TO_BACK;
280  const AcquisitionDelayFeatureFamily ACQUISITION_DELAY;
281  const PixelBinningFeatureFamily PIXEL_BINNING;
282  const GpioFeatureFamily GPIO;
283  const SingleStrobeFeatureFamily SINGLE_STROBE;
284  const QueryStatusFeatureFamily QUERY_STATUS;
285  const LEDActivityFeatureFamily LED_ACTIVITY;
286  const TimeFeatureFamily TIME;
287  const AnalogInFeatureFamily ANALOG_INPUT;
288  const AnalogOutFeatureFamily ANALOG_OUTPUT;
290  const ShutterFeatureFamily SHUTTER;
291  const PixelFeatureFamily PIXEL;
292  const AutoNullingFeatureFamily AUTONULLING;
293  const UserStringFeatureFamily USER_STRING;
294  const DeviceInformationFeatureFamily DEVICE_INFORMATION;
295  const DeviceAliasFeatureFamily DEVICE_ALIAS;
296  const SerialPortFeatureFamily SERIAL_PORT;
297  const Ipv4AddressFeatureFamily IPV4_ADDRESS;
298  const SpectrumAcquisitionControlFeatureFamily SPECTRUM_ACQUISITION_CONTROL;
299 
300  static const int FEATURE_FAMILY_ID_UNDEFINED;
301  static const int FEATURE_FAMILY_ID_SERIAL_NUMBER;
302  static const int FEATURE_FAMILY_ID_SPECTROMETER;
303  static const int FEATURE_FAMILY_ID_THERMOELECTRIC;
304  static const int FEATURE_FAMILY_ID_IRRADCAL;
305  static const int FEATURE_FAMILY_ID_EEPROM;
306  static const int FEATURE_FAMILY_ID_STROBE_LAMP;
307  static const int FEATURE_FAMILY_ID_WAVECAL;
308  static const int FEATURE_FAMILY_ID_NONLINEARITYCAL;
309  static const int FEATURE_FAMILY_ID_STRAYLIGHTCAL;
310  static const int FEATURE_FAMILY_ID_RAW_BUS_ACCESS;
311  static const int FEATURE_FAMILY_ID_CONTINUOUS_STROBE;
312  static const int FEATURE_FAMILY_ID_LIGHT_SOURCE;
313  static const int FEATURE_FAMILY_ID_TEMPERATURE;
314  static const int FEATURE_FAMILY_ID_OPTICAL_BENCH;
315  static const int FEATURE_FAMILY_ID_REVISION;
316  static const int FEATURE_FAMILY_ID_DATA_BUFFER;
317  static const int FEATURE_FAMILY_ID_ACQUISITION_DELAY;
318  static const int FEATURE_FAMILY_ID_PIXEL_BINNING;
319  static const int FEATURE_FAMILY_ID_GPIO;
320  static const int FEATURE_FAMILY_ID_SINGLE_STROBE;
321  static const int FEATURE_FAMILY_ID_QUERY_STATUS;
322  static const int FEATURE_FAMILY_ID_BACK_TO_BACK;
323  static const int FEATURE_FAMILY_ID_LED_ACTIVITY;
324  static const int FEATURE_FAMILY_ID_TIME;
325  static const int FEATURE_FAMILY_ID_ANALOG_IN;
326  static const int FEATURE_FAMILY_ID_ANALOG_OUT;
327  static const int FEATURE_FAMILY_ID_DHCP;
328  static const int FEATURE_FAMILY_ID_SHUTTER;
329  static const int FEATURE_FAMILY_ID_PIXEL;
330  static const int FEATURE_FAMILY_ID_AUTONULLING;
331  static const int FEATURE_FAMILY_ID_USER_STRING;
332  static const int FEATURE_FAMILY_ID_DEVICE_INFORMATION;
333  static const int FEATURE_FAMILY_ID_DEVICE_ALIAS;
334  static const int FEATURE_FAMILY_ID_SERIAL_PORT;
335  static const int FEATURE_FAMILY_ID_IPV4_ADDRESS;
336  static const int FEATURE_FAMILY_ID_SPECTRUM_ACQUISITION_CONTROL;
337 
338  FeatureFamilies();
339  ~FeatureFamilies();
340  std::vector<FeatureFamily *> getAllFeatureFamilies();
341  };
342  }
343 }
344 
345 #endif
Definition: FeatureFamilies.h:146
Definition: FeatureFamilies.h:188
Definition: FeatureFamilies.h:194
Definition: FeatureFamilies.h:218
Definition: FeatureFamilies.h:140
Definition: FeatureFamilies.h:86
Definition: FeatureFamilies.h:134
Definition: FeatureFamilies.h:236
Definition: FeatureFamilies.h:230
Definition: FeatureFamilies.h:68
Definition: FeatureFamilies.h:260
Definition: FeatureFamilies.h:158
Definition: FeatureFamilies.h:248
Definition: FeatureFamilies.h:62
Definition: FeatureFamilies.h:176
Definition: FeatureFamilies.h:74
Definition: FeatureFamilies.h:116
Definition: FeatureFamilies.h:152
Definition: FeatureFamilies.h:212
Definition: FeatureFamilies.h:170
Definition: FeatureFamilies.h:128
Definition: FeatureFamilies.h:110
Definition: FeatureFamilies.h:44
Definition: FeatureFamilies.h:242
Definition: FeatureFamilies.h:206
Definition: FeatureFamilies.h:164
Definition: FeatureFamilies.h:50
Definition: FeatureFamilies.h:122
Definition: FeatureFamilies.h:80
Definition: FeatureFamilies.h:104
Definition: FeatureFamilies.h:56
Definition: FeatureFamilies.h:182
Definition: FeatureFamilies.h:38
Definition: FeatureFamilies.h:224
Definition: FeatureFamilies.h:92
This is an interface to Advance features of OceanDirect that allow access to less common controls....
Definition: AcquisitionDelayFeatureAdapter.h:35