Resonon API  3.6
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_band_count()=0;
58  virtual int get_start_band();
59  virtual void set_start_band(int band);
60  virtual int get_min_start_band();
61  virtual int get_max_start_band();
62  virtual int get_inc_start_band();
63  virtual int get_end_band();
64  virtual void set_end_band(int band);
65  virtual int get_min_end_band();
66  virtual int get_max_end_band();
67  virtual int get_inc_end_band();
68  virtual int get_sample_count()=0;
69  virtual int get_start_sample();
70  virtual void set_start_sample(int sample);
71  virtual int get_min_start_sample();
72  virtual int get_max_start_sample();
73  virtual int get_inc_start_sample();
74  virtual int get_end_sample();
75  virtual void set_end_sample(int sample);
76  virtual int get_min_end_sample();
77  virtual int get_max_end_sample();
78  virtual int get_inc_end_sample();
79  virtual void set_framerate(const double frames_per_second)=0;
80  virtual double get_framerate()=0;
81  virtual double get_min_framerate()=0;
82  virtual double get_max_framerate()=0;
83  virtual double get_min_integration_time()=0;
84  virtual double get_max_integration_time()=0;
85  virtual void set_integration_time(const double milliseconds)=0;
86  virtual double get_integration_time()=0;
87  virtual void set_gain(const double gain);
88  virtual double get_gain();
89  virtual double get_min_gain();
90  virtual double get_max_gain();
91  virtual void set_internal_trigger();
92  virtual void set_external_trigger(unsigned int signal_line, bool rising_edge=true);
93  virtual bool is_trigger_external();
94  };
95 } //end namespace Resonon
96 #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