最新更改

This commit is contained in:
2022-08-30 16:14:46 +08:00
parent 8c6be81f94
commit 1cee2339ce
26 changed files with 440 additions and 874 deletions

View File

@ -24,12 +24,15 @@ int CMainGrabber::SetContext(BD357Controller &pctrlGPS, DataFileProcessor &dfpDa
{
if (&pctrlGPS == NULL)
{
qDebug() << "GPS Not Initialized";
//qDebug() << "GPS Not Initialized";
printf("GPS Not Initialized");
return 1;
}
m_pctrlGPS = &pctrlGPS;
m_dfpDataSaver = &dfpDataSaver;
return 0;
}
int CMainGrabber::Initialize()
@ -40,6 +43,8 @@ int CMainGrabber::Initialize()
int CMainGrabber::StartGrab()
{
system("gpio write 5 1");
m_dfpDataSaver->GenerateFilePath();
m_pctrlFS->PerformAutoExposure();
DataFrame dfTemp;
m_iFlagIsCapture = 1;
@ -50,20 +55,26 @@ int CMainGrabber::StartGrab()
qtTime.start();
////////////
system("gpio write 5 0");
qDebug() << "system IO";
m_pctrlFS->SingleShot(dfTemp);
qDebug() << "SingleShot";
RemoveBackground(dfTemp);
CheckExposureTime(dfTemp);
m_dfpDataSaver->WriteData(dfTemp);
system("gpio write 5 1");
////////////
//int iMillisec = qtTime.elapsed();
int iSleep =m_struFSRunParams.dMinSamplingInterval - qtTime.elapsed();
if (iSleep>0)
{
Delay_MSec(iSleep);
}
qDebug() << "Delay_MSec"<<iSleep;
int iSleep =m_struFSRunParams.dMinSamplingInterval - qtTime.elapsed();
if (iSleep>0)
{
Delay_MSec(iSleep);
}
qDebug() << "Delay_MSec"<< iSleep;
}
return 0;
}
int CMainGrabber::Initialize_Self()
@ -73,6 +84,8 @@ int CMainGrabber::Initialize_Self()
LoadDCT();
emit Signal_InitFinished();
return 0;
}
void CMainGrabber::Delay_MSec(ZZ_U16 usMS)
@ -100,7 +113,6 @@ int CMainGrabber::InitializeWorkers()
Delay_MSec(1000);
}
m_pctrlFS->GetDeviceAttr(m_struDeviceAttr);
m_dfpDataSaver->GenerateFilePath();
m_dfpDataSaver->WriteWavelengthInfo(m_struDeviceAttr.fWaveLengthInNM, m_struDeviceAttr.iPixels);
return 0;
}
@ -120,6 +132,8 @@ int CMainGrabber::LoadDCT()
m_DCTable.Initialize_Part();
m_DCTable.LoadTable();
m_DCTable.GetDCTable(m_vecDataFrame);
return 0;
}
int CMainGrabber::CheckExposureTime(DataFrame dfTemp)
@ -164,9 +178,20 @@ int CMainGrabber::CheckExposureTime(DataFrame dfTemp)
if ((dExpTimeMS <= m_struDeviceAttr.iMinIntegrationTimeInMS)|| (dExpTimeMS > m_struDeviceAttr.iMaxIntegrationTimeInMS - 1))
{
qDebug() << "SetExposureTime out of range";
return 1;
if ((dExpTimeMS <= m_struDeviceAttr.iMinIntegrationTimeInMS))
{
dExpTimeMS = m_struDeviceAttr.iMinIntegrationTimeInMS;
qDebug() << "SetExposureTime out of range-Min";
return 1;
}
if ((dExpTimeMS > m_struDeviceAttr.iMaxIntegrationTimeInMS - 1))
{
dExpTimeMS = m_struDeviceAttr.iMaxIntegrationTimeInMS - 1;
qDebug() << "SetExposureTime out of range-Max";
return 2;
}
}
m_pctrlFS->SetExposureTime((int)dExpTimeMS);