Resonon API  3.7
C++ API for controlling Resonon hyperspectral imagers
resonon_imager_base.h
1 /*
2  * Resonon API
3  *
4  * By using this API, the user agrees to the terms and conditions as stated in the
5  * document "Resonon API Terms of Use", located on the Resonon website
6  * at: http://www.resonon.com/downloads/Resonon_API_Terms_of_Use.pdf.
7  *
8  */
9 
10 
11 #ifndef __GUARD_RESONON_IMAGER_BASE_H
12 #define __GUARD_RESONON_IMAGER_BASE_H
13 
14 #ifdef RESONON_BUILD_DLL
15  #define RESONONDLL __declspec(dllexport)
16 #else
17  #define RESONONDLL __declspec(dllimport)
18 #endif
19 
20 #include <stdexcept>
21 #include <cstdint>
22 
26 namespace Resonon
27 {
31  class RESONONDLL ResononImagerBase
32  {
33  public:
35  virtual ~ResononImagerBase();
36 
37 
38  virtual void connect(const char * camera_sn=NULL)=0;
39  virtual void disconnect()=0;
40  virtual void start()=0;
41  virtual void stop()=0;
42  virtual void get_imager_type(char *buffer, int buffer_size)=0;
43  virtual void get_serial_number(char *buffer, int buffer_size)=0;
44  virtual void get_camera_serial_number(char *buffer, int buffer_size)=0;
45  virtual void generate_configuration_report(char *buffer, int buffer_size)=0;
46  virtual float get_coeff_a()=0;
47  virtual float get_coeff_b()=0;
48  virtual float get_coeff_c()=0;
49  virtual double get_wavelength_at_band(const int band)=0;
50  int get_nearest_band_to_wavelength(const double wavelength);
51  virtual int get_frame_buffer_size_in_bytes()=0;
52  virtual unsigned short* get_frame(unsigned short* buffer)=0;
53  virtual std::uint64_t get_last_timestamp()=0;
54  virtual std::uint64_t ticks_per_second()=0;
55  virtual void set_spectral_bin(int new_spectral_bin);
56  virtual int get_spectral_bin();
57  virtual int get_min_spectral_bin();
58  virtual int get_max_spectral_bin();
59  virtual int get_band_count()=0;
60  virtual int get_start_band();
61  virtual void set_start_band(int band);
62  virtual int get_min_start_band();
63  virtual int get_max_start_band();
64  virtual int get_inc_start_band();
65  virtual int get_end_band();
66  virtual void set_end_band(int band);
67  virtual int get_min_end_band();
68  virtual int get_max_end_band();
69  virtual int get_inc_end_band();
70  virtual int get_sample_count()=0;
71  virtual int get_start_sample();
72  virtual void set_start_sample(int sample);
73  virtual int get_min_start_sample();
74  virtual int get_max_start_sample();
75  virtual int get_inc_start_sample();
76  virtual int get_end_sample();
77  virtual void set_end_sample(int sample);
78  virtual int get_min_end_sample();
79  virtual int get_max_end_sample();
80  virtual int get_inc_end_sample();
81  virtual void set_framerate(const double frames_per_second)=0;
82  virtual double get_framerate()=0;
83  virtual double get_min_framerate()=0;
84  virtual double get_max_framerate()=0;
85  virtual double get_min_integration_time()=0;
86  virtual double get_max_integration_time()=0;
87  virtual void set_integration_time(const double milliseconds)=0;
88  virtual double get_integration_time()=0;
89  virtual void set_gain(const double gain);
90  virtual double get_gain();
91  virtual double get_min_gain();
92  virtual double get_max_gain();
93  virtual void set_internal_trigger();
94  virtual void set_external_trigger(unsigned int signal_line, bool rising_edge=true);
95  virtual bool is_trigger_external();
96  };
97 } //end namespace Resonon
98 #endif //end ifndef __GUARD_RESONON_IMAGER_BASE_H
The Resonon namespace contains all public classes.
Definition: resonon_imager_allied.h:14
An abstract base class which provides a common interface for all imagers.
Definition: resonon_imager_base.h:31