1、添加配置文件读、写、解析类Configfile(使用libconfig.h++);
2、打开相机时,通过Configfile读取和解析配置文件,并使用; 3、修复一些代码逻辑bug;
This commit is contained in:
@ -8,6 +8,11 @@ XimeaImager::XimeaImager()
|
||||
m_iImagerState=100;
|
||||
|
||||
//connect(this, SIGNAL(recordFinished()),this, SLOT());
|
||||
|
||||
m_configfile.setConfigfilePath("ximea.cfg");
|
||||
m_configfile.parseConfigfile();
|
||||
|
||||
// m_configfile.createConfigFile();
|
||||
}
|
||||
|
||||
void XimeaImager::openImger()
|
||||
@ -24,40 +29,22 @@ void XimeaImager::openImger()
|
||||
//std::cout<<"XimeaImager::openImger111111111111111111111:正在打开相机!"<<std::endl;
|
||||
m_imager.connect();
|
||||
|
||||
// bool haha = m_imager.setSpectralBin(2);
|
||||
// bool haha2 = m_imager.setSpatialBin(2);
|
||||
int bin=0;
|
||||
m_configfile.getBin(bin);
|
||||
bool haha = m_imager.setSpectralBin(bin);
|
||||
bool haha2 = m_imager.setSpatialBin(bin);
|
||||
|
||||
//sn008_bin1
|
||||
float a=1.999564;
|
||||
float b=-279.893;
|
||||
// //sn008_bin2
|
||||
// float a = 3.99912794;
|
||||
// float b = -278.89317732225084;
|
||||
float gain, offset;//用于生成头文件中的波长信息
|
||||
m_configfile.getGainOffset(gain, offset);
|
||||
m_imager.setGainOffset(gain, offset);
|
||||
|
||||
m_imager.setGainOffset(a, b);
|
||||
|
||||
|
||||
//SN=008自己修改
|
||||
// int OffsetX=272;
|
||||
// int width=1392;
|
||||
//
|
||||
// int OffsetY=338;
|
||||
// int height=302;
|
||||
//
|
||||
// //SN=008标准
|
||||
// int OffsetX=288;//272
|
||||
// int width=1360;//是16的整数倍
|
||||
//
|
||||
// int OffsetY=340;
|
||||
// int height=300;//302
|
||||
|
||||
|
||||
// m_imager.setRoi(288,1360,348,300);//sn0098
|
||||
m_imager.setRoi(288,1360,340,300);//sn008,corning410,bin1
|
||||
// m_imager.setRoi(144,680,170,151);//sn008,corning410,bin2
|
||||
int width = 0, offsetx = 0, height = 0, offsety = 0;
|
||||
m_configfile.getEffectiveWindow(width, offsetx, height, offsety);
|
||||
m_imager.setRoi(offsetx, width, offsety, height);
|
||||
|
||||
setFramerate(100);
|
||||
|
||||
//经验证:frameSizeManual和frameSizeAuto相等
|
||||
int frameSizeManual = m_imager.get_band_count()*m_imager.get_sample_count()*2;
|
||||
int frameSizeAuto = m_imager.getBufferSizeOfOneFrame();
|
||||
|
||||
@ -128,13 +115,13 @@ double XimeaImager::getExposureTime()
|
||||
try
|
||||
{
|
||||
exposureTime=m_imager.get_integration_time();
|
||||
return exposureTime;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return exposureTime;
|
||||
}
|
||||
|
||||
double XimeaImager::setExposureTime(float exposureTime_in_us)
|
||||
@ -161,14 +148,14 @@ double XimeaImager::setExposureTime(float exposureTime_in_us)
|
||||
|
||||
//返回设置的积分时间
|
||||
integrationTime2Return=m_imager.get_integration_time();
|
||||
|
||||
return integrationTime2Return;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
return integrationTime2Return;
|
||||
}
|
||||
|
||||
double XimeaImager::autoExposure()
|
||||
@ -226,14 +213,19 @@ double XimeaImager::autoExposure()
|
||||
|
||||
m_iImagerState=103;
|
||||
emit ximeaImageStatus(m_iImagerState);
|
||||
|
||||
std::cout<<"自动曝光完成!"<<std::endl;
|
||||
return exposureTime;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
|
||||
std::cout<<"自动曝光失败!"<<std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
std::cout<<"自动曝光完成!"<<std::endl;
|
||||
return exposureTime;
|
||||
|
||||
}
|
||||
|
||||
double XimeaImager::getFramerate()
|
||||
@ -243,13 +235,15 @@ double XimeaImager::getFramerate()
|
||||
try
|
||||
{
|
||||
framerate=m_imager.get_framerate();
|
||||
|
||||
return framerate;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
}
|
||||
|
||||
return framerate;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
void XimeaImager::setGain(double gain)
|
||||
@ -273,23 +267,22 @@ double XimeaImager::getGain()
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int XimeaImager::getSampleCount()
|
||||
{
|
||||
int sampleCount;
|
||||
|
||||
try
|
||||
{
|
||||
sampleCount=m_imager.get_sample_count();
|
||||
int sampleCount=m_imager.get_sample_count();
|
||||
return sampleCount;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return sampleCount;
|
||||
}
|
||||
|
||||
int XimeaImager::getBandCount()
|
||||
@ -299,13 +292,13 @@ int XimeaImager::getBandCount()
|
||||
try
|
||||
{
|
||||
bandCount=m_imager.get_band_count();
|
||||
return bandCount;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return bandCount;
|
||||
}
|
||||
|
||||
int XimeaImager::getWindowStartBand()
|
||||
@ -315,13 +308,13 @@ int XimeaImager::getWindowStartBand()
|
||||
try
|
||||
{
|
||||
windowStartBand=m_imager.get_start_band();
|
||||
return windowStartBand;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return windowStartBand;
|
||||
}
|
||||
|
||||
int XimeaImager::getWindowEndBand()
|
||||
@ -331,13 +324,13 @@ int XimeaImager::getWindowEndBand()
|
||||
try
|
||||
{
|
||||
windowEndBand=m_imager.get_end_band();
|
||||
return windowEndBand;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return windowEndBand;
|
||||
}
|
||||
|
||||
double XimeaImager::geWavelengthAtBand(int x)
|
||||
@ -347,13 +340,13 @@ double XimeaImager::geWavelengthAtBand(int x)
|
||||
try
|
||||
{
|
||||
wavelengthAtBand=m_imager.get_wavelength_at_band(x);
|
||||
return wavelengthAtBand;
|
||||
}
|
||||
catch(int xiApiErrorCodes)
|
||||
{
|
||||
processXiApiErrorCodes(xiApiErrorCodes);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return wavelengthAtBand;
|
||||
}
|
||||
|
||||
int XimeaImager::getMaxValueOfOneFrame(unsigned short * data, int numberOfPixel)
|
||||
|
Reference in New Issue
Block a user