Resonon API  3.3
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_sample_count()=0;
59  virtual void set_framerate(const double frames_per_second)=0;
60  virtual double get_framerate()=0;
61  virtual double get_min_framerate()=0;
62  virtual double get_max_framerate()=0;
63  virtual double get_min_integration_time()=0;
64  virtual double get_max_integration_time()=0;
65  virtual void set_integration_time(const double milliseconds)=0;
66  virtual double get_integration_time()=0;
67  virtual void set_gain(const double gain);
68  virtual double get_gain();
69  virtual double get_min_gain();
70  virtual double get_max_gain();
71  virtual void set_internal_trigger();
72  virtual void set_external_trigger(unsigned int signal_line, bool rising_edge=true);
73  virtual bool is_trigger_external();
74  };
75 } //end namespace Resonon
76 #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