重大更新

1.添加了对双通道光闸系统的支持。
2.针对QEPro系列硬件添加了非线性矫正
3.进行了完整的实际采集测试,通过。
4.优化统一了ATP基类内置自动曝光函数。
This commit is contained in:
2022-04-29 15:37:54 +08:00
committed by xin
parent 1158ea5712
commit b2225cea5b
15 changed files with 305 additions and 59 deletions

View File

@ -512,7 +512,7 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
double fLastExposureTime = 0.1;
int iRepeatCount = 0;
int iRes = SetExposureTime(2000);//need change to load from files
int iRes = SetExposureTime(m_daDeviceAttr.iMinIntegrationTimeInMS);//need change to load from files
if (iRes != 0)
{
qDebug() << "Err:PerformAutoExposure Failed.Exit Code:1";
@ -527,10 +527,14 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
{
bFlagIsAutoExposureFailed = true;
bFlagIsOverTrying = true;
qDebug() << "over 30 Times" << endl;
break;
}
fExposureTime = (float)m_daDeviceAttr.iMinIntegrationTimeInMS;
//fExposureTime = (float)m_daDeviceAttr.iMinIntegrationTimeInMS;
int fTemp;
GetExposureTime(fTemp);
fExposureTime = fTemp;
fTempExposureTime = fExposureTime;
iRes = SingleShot(dfTemp);
@ -592,11 +596,13 @@ int ZZ_ATPControl_Serial_Qt::PerformAutoExposure(float fMinScaleFactor, float fM
dFactor = dTemp / (iDeviceDepth * fMaxScaleFactor);
fExposureTime = (float)(fExposureTime / dFactor);
}
if (/*fExposureTime > 100 || */fExposureTime < 10)
if (fExposureTime < m_daDeviceAttr.iMinIntegrationTimeInMS)
{
bFlagIsAutoExposureOK = false;
bFlagIsAutoExposureFailed = true;
bFlagIsLowerMinExposureTime = true;
qDebug() << "lower than minimum" << endl;
}
}
bIsLastValueOverflow = bIsValueOverflow;
@ -669,7 +675,7 @@ int ZZ_ATPControl_Serial_Qt::SetExposureTime(int iExposureTimeInMS)
if ((ZZ_U8)qbRecv[0] != 0)
{
qDebug() << "Err:SetExposureTime Failed.Exit Code:1";
return 1;
//return 1;
}
return 0;

View File

@ -200,11 +200,21 @@ namespace ZZ_MISCDEF
float fWavelength[MAX_DEVICENUMBER_FS][4096];
}FSContext;
typedef struct tagDualShutterStatus
{
std::string strChannelA;
std::string strChannelB;
int iChannelA = 0;
int iChannelB = 0;
}DSStatus;
typedef struct tagLinearShutterContext
{
std::string strInterface;
ZZ_U8 ucProtocolType;
ZZ_U8 ucCmdID;
ZZ_U16 usCmdID;
}LSContext;
typedef struct tagAcquisitionTimeSettings