The Resonon API is no longer being updated or maintained. We recommend customers move to using the camera vendors' SDKs.
Documentation on how to do so is available here.
Resonon API  3.12 [Deprecated]
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