SeaBreeze
OOISpectrometerFeature.h
Go to the documentation of this file.
1 /***************************************************/
30 #ifndef OOISPECTROMETERFEATURE_H
31 #define OOISPECTROMETERFEATURE_H
32 
33 #include <vector>
36 #include "common/buses/Bus.h"
41 
42 namespace seabreeze {
43 
46  public:
48  virtual ~OOISpectrometerFeature();
49  /* Request and read out a spectrum formatted into intensity (A/D counts) */
50  virtual std::vector<double> *getSpectrum(const Protocol &protocol,
51  const Bus &bus) throw (FeatureException);
52 
53  /* Request and read out the raw spectrum data stream */
54  virtual std::vector<byte> *getUnformattedSpectrum(const Protocol &protocol,
55  const Bus &bus) throw (FeatureException);
56 
57  /* Request and read out the wavelengths in nanometers as a vector of doubles */
58  virtual std::vector<double> *getWavelengths(const Protocol &protocol,
59  const Bus &bus) throw (FeatureException);
60 
61  /* Read the raw spectrum data stream. No request is made first. */
62  virtual std::vector<byte> *readUnformattedSpectrum(const Protocol &protocol,
63  const Bus &bus) throw (FeatureException);
64 
65  /* Set the integration time of the spectrometer */
66  virtual void setIntegrationTimeMicros(const Protocol &protocol,
67  const Bus &bus, unsigned long time_usec)
69 
70  /* Request that the spectrometer make a spectrum available for
71  * reading (e.g. with readUnformattedSpectrum())
72  */
73  virtual void writeRequestSpectrum(const Protocol &protocol,
74  const Bus &bus) throw (FeatureException);
75 
76  /* Setting the external trigger mode for the spectrometer */
77  virtual void setTriggerMode(const Protocol &protocol,
78  const Bus &bus, SpectrometerTriggerMode &mode) throw (FeatureException);
79 
80  virtual std::vector<SpectrometerTriggerMode *> getTriggerModes() const;
81 
82  virtual std::vector<int> getElectricDarkPixelIndices() const;
83 
84  virtual long getIntegrationTimeMinimum() const;
85  virtual long getIntegrationTimeMaximum() const;
86  virtual long getIntegrationTimeIncrement() const;
87 
88  virtual int getNumberOfPixels() const;
89  virtual int getMaximumIntensity() const;
90 
91  /* Overriding from Feature */
92  virtual FeatureFamily getFeatureFamily();
93 
94  protected:
95  /* Detector details */
96  int numberOfPixels;
97  int maxIntensity;
98 
99  /* Integration time parameters (measured in microseconds) */
100  long integrationTimeMinimum;
101  long integrationTimeMaximum;
102  long integrationTimeBase;
103  long integrationTimeIncrement;
104 
105  std::vector<SpectrometerTriggerMode *> triggerModes;
106  std::vector<int> electricDarkPixelIndices;
107  };
108 
109 }
110 
111 #endif /* OOISPECTROMETERFEATURE_H */
Definition: OOISpectrometerFeatureInterface.h:42
Definition: Protocol.h:44
Definition: FeatureImpl.h:54
Definition: FeatureFamily.h:39
Definition: FeatureException.h:43
Definition: Bus.h:48
Encapsulates all SeaBreeze classes.
Definition: DeviceFactory.h:42
Definition: SpectrometerTriggerMode.h:54
Definition: OOISpectrometerFeature.h:44
Definition: IllegalArgumentException.h:43