SeaBreeze
OOISpectrometerFeatureInterface.h
Go to the documentation of this file.
1 /***************************************************/
30 #ifndef OOISPECTROMETERFEATUREINTERFACE_H
31 #define OOISPECTROMETERFEATUREINTERFACE_H
32 
33 #include <vector>
35 #include "common/buses/Bus.h"
39 
40 namespace seabreeze {
41 
43  public:
44  virtual ~OOISpectrometerFeatureInterface() = 0;
45 
46  /* Request and read out a spectrum formatted into intensity (A/D counts) */
47  virtual std::vector<double> *getSpectrum(const Protocol &protocol,
48  const Bus &bus) throw (FeatureException) = 0;
49 
50  /* Request and read out the raw spectrum data stream */
51  virtual std::vector<byte> *getUnformattedSpectrum(const Protocol &protocol,
52  const Bus &bus) throw (FeatureException) = 0;
53 
54  /* Request and read out the wavelengths in nanometers as a vector of doubles */
55  virtual std::vector<double> *getWavelengths(const Protocol &protocol,
56  const Bus &bus) throw (FeatureException) = 0;
57 
58  /* Read the raw spectrum data stream. No request is made first. */
59  virtual std::vector<byte> *readUnformattedSpectrum(const Protocol &protocol,
60  const Bus &bus) throw (FeatureException) = 0;
61 
62  /* Set the integration time of the spectrometer */
63  virtual void setIntegrationTimeMicros(const Protocol &protocol,
64  const Bus &bus, unsigned long time_usec)
66 
67  /* Request that the spectrometer make a spectrum available for
68  * reading (e.g. with readUnformattedSpectrum())
69  */
70  virtual void writeRequestSpectrum(const Protocol &protocol,
71  const Bus &bus) throw (FeatureException) = 0;
72 
73  /* Setting the external trigger mode for the spectrometer */
74  virtual void setTriggerMode(const Protocol &protocol,
75  const Bus &bus, SpectrometerTriggerMode &mode) throw (FeatureException) = 0;
76 
77  virtual std::vector<SpectrometerTriggerMode *> getTriggerModes() const = 0;
78 
79  virtual std::vector<int> getElectricDarkPixelIndices() const = 0;
80 
81  virtual long getIntegrationTimeMinimum() const = 0;
82  virtual long getIntegrationTimeMaximum() const = 0;
83  virtual long getIntegrationTimeIncrement() const = 0;
84 
85  virtual int getNumberOfPixels() const = 0;
86  virtual int getMaximumIntensity() const = 0;
87 
88  };
89 
90  /* Default implementation for (otherwise) pure virtual destructor */
91  inline OOISpectrometerFeatureInterface::~OOISpectrometerFeatureInterface() {}
92 
93 }
94 
95 #endif /* OOISPECTROMETERFEATUREINTERFACE_H */
Definition: OOISpectrometerFeatureInterface.h:42
Definition: Protocol.h:44
Definition: FeatureException.h:43
Definition: Bus.h:48
Encapsulates all SeaBreeze classes.
Definition: DeviceFactory.h:42
Definition: SpectrometerTriggerMode.h:54
Definition: IllegalArgumentException.h:43