/* * Iris API * * By using this API, the user agrees to the terms and conditions as stated in the * document "Terms of Use", located on the Resonon website * at: http://www.resonon.com/downloads/Resonon_API_Terms_of_Use.pdf. * */ #ifndef __GUARD_Iris_IMAGER_BASE_H #define __GUARD_Iris_IMAGER_BASE_H #include #include #include "irisximeaimager_global.h" /** * The Iris namespace contains all public classes. */ namespace Iris { /** * An abstract base class which provides a common interface for all imagers. */ class IRISXIMEAIMAGERSHARED_EXPORT ImagerBase { public: ImagerBase(); virtual ~ImagerBase(); virtual void connect(const char * camera_sn=NULL)=0; virtual void disconnect()=0; virtual void start()=0; virtual void stop()=0; virtual void get_imager_type(char *buffer, int buffer_size)=0; virtual void get_serial_number(char *buffer, int buffer_size)=0; virtual void get_camera_serial_number(char *buffer, int buffer_size)=0; virtual void generate_configuration_report(char *buffer, int buffer_size)=0; virtual float get_coeff_a()=0; virtual float get_coeff_b()=0; virtual float get_coeff_c()=0; virtual double get_wavelength_at_band(const int band)=0; int get_nearest_band_to_wavelength(const double wavelength); virtual int get_frame_buffer_size_in_bytes()=0; virtual unsigned short* get_frame(unsigned short* buffer)=0; virtual std::uint64_t get_last_timestamp()=0; virtual std::uint64_t ticks_per_second()=0; virtual void set_spectral_bin(int new_spectral_bin); virtual int get_spectral_bin(); virtual int get_min_spectral_bin(); virtual int get_max_spectral_bin(); virtual int get_band_count()=0; virtual int get_start_band(); virtual void set_start_band(int band); virtual int get_min_start_band(); virtual int get_max_start_band(); virtual int get_inc_start_band(); virtual int get_end_band(); virtual void set_end_band(int band); virtual int get_min_end_band(); virtual int get_max_end_band(); virtual int get_inc_end_band(); virtual int get_sample_count()=0; virtual int get_start_sample(); virtual void set_start_sample(int sample); virtual int get_min_start_sample(); virtual int get_max_start_sample(); virtual int get_inc_start_sample(); virtual int get_end_sample(); virtual void set_end_sample(int sample); virtual int get_min_end_sample(); virtual int get_max_end_sample(); virtual int get_inc_end_sample(); virtual void set_framerate(const double frames_per_second)=0; virtual double get_framerate()=0; virtual double get_min_framerate()=0; virtual double get_max_framerate()=0; virtual double get_min_integration_time()=0; virtual double get_max_integration_time()=0; virtual void set_integration_time(const double milliseconds)=0; virtual double get_integration_time()=0; virtual void set_gain(const double gain); virtual double get_gain(); virtual double get_min_gain(); virtual double get_max_gain(); virtual void set_internal_trigger(); virtual void set_external_trigger(unsigned int signal_line, bool rising_edge=true); virtual bool is_trigger_external(); }; } //end namespace Iris #endif //end ifndef __GUARD_Iris_IMAGER_BASE_H