
1、继承resonon相机库虚类(imager_base.h),实现了控制ximea相机的控制类库; 2、在ximea相机控制类(irisximeaimager.h)中,加入了定制的7个函数(setGainOffset、setRoi等等);
94 lines
3.5 KiB
C++
94 lines
3.5 KiB
C++
/*
|
|
* 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 <stdexcept>
|
|
#include <cstdint>
|
|
#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
|