Files
ximeaControlDll/Header_Files/imager_base.h
tangchao0503 d453bb9406 第一次提交:
1、继承resonon相机库虚类(imager_base.h),实现了控制ximea相机的控制类库;
2、在ximea相机控制类(irisximeaimager.h)中,加入了定制的7个函数(setGainOffset、setRoi等等);
2022-06-27 21:06:14 +08:00

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