Merge remote-tracking branch 'origin/zhangzhuo'

# Conflicts:
#	source/CaptureThread/Scheduler.cpp
This commit is contained in:
xin
2022-03-21 16:46:12 +08:00
5 changed files with 33 additions and 3 deletions

View File

@ -252,6 +252,7 @@ int CMainDataGrabber::SetupMsgPipelines()
connect(this, &CMainDataGrabber::SignalGrabOnceFinished, this, &CMainDataGrabber::GrabOnceFinished); connect(this, &CMainDataGrabber::SignalGrabOnceFinished, this, &CMainDataGrabber::GrabOnceFinished);
connect(m_psScheduler, &Scheduler::SignalGrabOnce, this, &CMainDataGrabber::OnTimeCounter); connect(m_psScheduler, &Scheduler::SignalGrabOnce, this, &CMainDataGrabber::OnTimeCounter);
connect(m_psScheduler, &Scheduler::SignalZeroHoldCurrent, this, &CMainDataGrabber::OnZeroHoldCurrent);
connect(this, &CMainDataGrabber::SignalStartGrab, this, &CMainDataGrabber::StartGrabTimer); connect(this, &CMainDataGrabber::SignalStartGrab, this, &CMainDataGrabber::StartGrabTimer);
connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Signal, this, &CMainDataGrabber::GrabOnceFinished_Signal); connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Signal, this, &CMainDataGrabber::GrabOnceFinished_Signal);
connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Dark, this, &CMainDataGrabber::GrabOnceFinished_Dark); connect(this, &CMainDataGrabber::SignalGrabOnceFinished_Dark, this, &CMainDataGrabber::GrabOnceFinished_Dark);
@ -443,6 +444,15 @@ int CMainDataGrabber::GrabOnceFinished()
m_pControlThread[i]->ClearBuffer(); m_pControlThread[i]->ClearBuffer();
} }
////hold current
bool bRes = m_ctrlLS.SetHoldCurrent(0.4f);
if (!bRes)
{
qDebug() << "SetHoldCurrent 0.4 Failed";
}
Delay_MSec(1000);
////
for (int i=0;i< m_struAcqPosSetting.iTotalPosition-1;i++) for (int i=0;i< m_struAcqPosSetting.iTotalPosition-1;i++)
{ {
ResetThreadStatus(); ResetThreadStatus();
@ -479,9 +489,15 @@ int CMainDataGrabber::GrabOnceFinished()
{ {
Delay_MSec(1000); Delay_MSec(1000);
} }
} }
////hold current
bRes = m_ctrlLS.SetHoldCurrent(0);
if (!bRes)
{
qDebug() << "SetHoldCurrent 0 Failed";
}
Delay_MSec(1000);
////
std::vector<std::vector<DataFrame>> vecData; std::vector<std::vector<DataFrame>> vecData;
for (ZZ_U8 i = 0; i < m_struDeviceContext.ucDeviceNumber; i++) for (ZZ_U8 i = 0; i < m_struDeviceContext.ucDeviceNumber; i++)
@ -544,3 +560,14 @@ int CMainDataGrabber::GrabOnceFinished()
return 0; return 0;
} }
int CMainDataGrabber::OnZeroHoldCurrent()
{
bool bRes = m_ctrlLS.SetHoldCurrent(0);
if (!bRes)
{
qDebug() << "OnZeroHoldCurrent Failed";
}
return 0;
}

View File

@ -75,6 +75,7 @@ public slots:
int InitLS(); int InitLS();
int StartGrabTimer(); int StartGrabTimer();
int OnTimeCounter(); int OnTimeCounter();
int OnZeroHoldCurrent();
int HandleThreadEvent_Signal(int iThreadID, int iFlagStatus); int HandleThreadEvent_Signal(int iThreadID, int iFlagStatus);
int HandleThreadEvent_Dark(int iThreadID, int iFlagStatus); int HandleThreadEvent_Dark(int iThreadID, int iFlagStatus);

View File

@ -79,6 +79,7 @@ int Scheduler::OnTimeCounter()
{ {
m_iFlagIsOnRestart = 1; m_iFlagIsOnRestart = 1;
} }
emit SignalZeroHoldCurrent();
system("gpio write 1 0");//<2F><EFBFBD>ϵ<EFBFBD> system("gpio write 1 0");//<2F><EFBFBD>ϵ<EFBFBD>
qDebug() << "gpio write 1 0......"<<endl; qDebug() << "gpio write 1 0......"<<endl;
qDebug() << "Non working time. Idling......"; qDebug() << "Non working time. Idling......";

View File

@ -22,6 +22,7 @@ public:
public slots: public slots:
int OnTimeCounter(); int OnTimeCounter();
signals: signals:
void SignalZeroHoldCurrent();
void SignalGrabOnce(); void SignalGrabOnce();
void SignalSelfStart(); void SignalSelfStart();
}; };

View File

@ -465,7 +465,7 @@ int OceanOptics_lib::GetDeviceAttribute(DeviceAttribute &Attr)
long minimum_time; long minimum_time;
minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error); minimum_time = seabreeze_get_min_integration_time_microsec(m_iSpectralmeterHandle, &error);
Attr.iMinIntegrationTimeInMS = minimum_time; Attr.iMinIntegrationTimeInMS = (int)((double)minimum_time / (double)1000);
Attr.iMaxIntegrationTimeInMS = 60000; Attr.iMaxIntegrationTimeInMS = 60000;
if (spec_length > 0) { if (spec_length > 0) {