1、创建场景:室内线性一轴平台;
fix
1、采集逻辑错误;
2、鼠标左键单击显示光谱;
This commit is contained in:
tangchao0503
2025-07-17 18:30:30 +08:00
parent a629115e91
commit 48be580226
4 changed files with 89 additions and 14 deletions

View File

@ -11,7 +11,7 @@
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
<string>调焦</string>
</property>
<property name="windowIcon">
<iconset resource="HPPA.qrc">

View File

@ -240,6 +240,7 @@ HPPA::HPPA(QWidget *parent)
connect(this->ui.action_about, SIGNAL(triggered()), this, SLOT(onAbout()));
initPanelToolbar();
connect(this->ui.mActionOneMotorScenario, SIGNAL(triggered()), this, SLOT(createOneMotorScenario()));
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
QWidget* widget = new QWidget();
@ -303,7 +304,7 @@ HPPA::HPPA(QWidget *parent)
omc = new OneMotorControl();
connect(omc, SIGNAL(startRecordLineSignal(int)), this, SLOT(recordHyperSpecImg(int)));
QDockWidget* dock_omc = new QDockWidget(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
dock_omc = new QDockWidget(QString::fromLocal8Bit("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), this);
dock_omc->setObjectName("mDockOneMotorControl");
dock_omc->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
dock_omc->setWidget(omc);
@ -501,6 +502,41 @@ void HPPA::initPanelToolbar()
mToolbarMenu->addAction(ui.mainToolBar->toggleViewAction());
}
void HPPA::createOneMotorScenario()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DockWidget
//this->removeDockWidget(ui.mDockWidgetSpectrometer);
QList<QDockWidget*> dockWidgets = this->findChildren<QDockWidget*>();
for (QDockWidget* dock : dockWidgets)
{
dock->hide();
}
ui.mDockWidgetSpectralViewer->show();
ui.mDockWidgetSpectrometer->show();
dock_omc->show();
//tabifyDockWidget(ui.mDockWidgetSpectrometer, dock_omc);
//addDockWidget(Qt::RightDockWidgetArea, ui.mDockWidgetSpectralViewer);
//addDockWidget(Qt::RightDockWidgetArea, ui.mDockWidgetSpectrometer);
//splitDockWidget(ui.mDockWidgetSpectralViewer, ui.mDockWidgetSpectrometer, Qt::Vertical);
//QDockWidget* dockTop = new QDockWidget(QString::fromLocal8Bit("1"), this);
//QDockWidget* dockBottom = new QDockWidget(QString::fromLocal8Bit("2"), this);
//QDockWidget* dockBottom3 = new QDockWidget(QString::fromLocal8Bit("3"), this);
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD> dock
//addDockWidget(Qt::RightDockWidgetArea, dockTop);
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD> dock<63><6B><EFBFBD><EFBFBD>ʼҲ<CABC><D2B2><EFBFBD>Ҳ<EFBFBD>
//addDockWidget(Qt::RightDockWidgetArea, dockBottom);
//addDockWidget(Qt::RightDockWidgetArea, dockBottom3);
// <20><><EFBFBD><EFBFBD><EFBFBD>½<EFBFBD> dock <20>ָ<D6B8><EEB5BD><EFBFBD><EFBFBD> dock <20><><EFBFBD>·<EFBFBD>
//splitDockWidget(dockTop, dockBottom, Qt::Horizontal);
}
void HPPA::CalculateIntegratioinTimeRange()
{
double range = 1 / m_Imager->getFramerate() * 1000;//<2F><><EFBFBD><EFBFBD>
@ -544,7 +580,6 @@ void HPPA::onStartRecordStep1()
else
{
//std::cout << "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" << std::endl;
//m_RecordState -= 1;//<2F><><EFBFBD><EFBFBD><EFBFBD>ǵĻ<C7B5><C4BB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3>ɼ<EFBFBD>
return;
}
}
@ -726,6 +761,7 @@ void HPPA::onStartRecordStep2(int lineNumber)
else if (lineNumber == -1)
{
std::cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>" << std::endl;
m_RecordState += 1;
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
ui.mainToolBar->widgetForAction(ui.action_start_recording)->setStyleSheet("QWidget{background-color:rgb(0,255,0);}");
@ -900,16 +936,43 @@ void HPPA::onLeftMouseButtonPressed(int x, int y)
QLineSeries *series = new QLineSeries();
//series->clear();//////////////////////////////
int start = m_Imager->getStartBand();
for (size_t i = 0; i < m_Imager->getBandCount(); i++)
QString imagerSelected = mImagerGroup->checkedAction()->objectName();
if (imagerSelected == "mActionPica_L" || imagerSelected == "mActionCorning_410" || imagerSelected == "mActionPika_XC2")
{
//malloc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>÷<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
series->append(m_Imager->getWavelengthAtBand(i + start), data[i]);
int start = m_Imager->getStartBand();
for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++)
{
//malloc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>÷<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
series->append(m_Imager->getWavelengthAtBand(i + start), data[i]);
////malloc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>÷<EFBFBD>2<EFBFBD><32>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ȡ
//series->append(m_Imager->getWavelengthAtBand(i), *data);
//data++;
////malloc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>÷<EFBFBD>2<EFBFBD><32>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ȡ
//series->append(m_Imager->getWavelengthAtBand(i), *data);
//data++;
}
}
else if (imagerSelected == "mActionPica_NIR")
{
int start = 0;
for (size_t i = 0; i < m_Imager->getBandCount() - 1; i++)
{
//malloc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>÷<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
series->append(m_Imager->getWavelengthAtBand(i + start), data[i]);
////malloc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>÷<EFBFBD>2<EFBFBD><32>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ȡ
//series->append(m_Imager->getWavelengthAtBand(i), *data);
//data++;
}
}
else
{
QMessageBox msgBox;
msgBox.setText(QString::fromLocal8Bit("<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
msgBox.exec();
return;
}
QChart *chart = new QChart();
chart->legend()->hide();
@ -2234,6 +2297,13 @@ void HPPA::PlotSpectral(int state)
void HPPA::onRecordFinishedSignal_WhenFrameNumberMeet()
{
QAction* checked = moveplatformActionGroup->checkedAction();
QString checkedName = checked->objectName();
if (checkedName == "mAction_2AxisMotor")//<2F><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>ߣ<EFBFBD><DFA3>м<EFBFBD><D0BC><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ󲻴<C9BA><F3B2BBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return;
}
std::cout << "ֹͣ<EFBFBD>ɼ<EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>" << std::endl;
ui.action_start_recording->setText(QString::fromLocal8Bit("<EFBFBD>ɼ<EFBFBD>"));
@ -2241,8 +2311,6 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberMeet()
m_RecordState++;//<2F><><EFBFBD>Զ<EFBFBD>ֹͣ<CDA3>ɼ<EFBFBD>
QAction* checked = moveplatformActionGroup->checkedAction();
QString checkedName = checked->objectName();
if (checkedName == "mAction_1AxisMotor")
{
omc->moveMotor2StartPosAndStopRecord();
@ -2260,6 +2328,11 @@ void HPPA::onRecordFinishedSignal_WhenFrameNumberNotMeet()
return;
}
if (checkedName == "mAction_2AxisMotor")//<2F><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>ߣ<EFBFBD><DFA3>м<EFBFBD><D0BC><EFBFBD>ij<EFBFBD><C4B3><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɺ󲻴<C9BA><F3B2BBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return;
}
std::cout << "ֹͣ<EFBFBD>ɼ<EFBFBD>ԭ<EFBFBD>򣺣<EFBFBD>1<EFBFBD><EFBFBD>֡<EFBFBD><EFBFBD>û<EFBFBD>вɼ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>ֹͣ<EFBFBD>ɼ<EFBFBD><EFBFBD><EFBFBD>" << std::endl;

View File

@ -247,6 +247,7 @@ private:
RobotArmControl* rac;
OneMotorControl* omc;
QDockWidget* dock_omc;
PathPlan* m_pathPlan;
@ -346,6 +347,7 @@ public Q_SLOTS:
void recordFromRobotArm(int fileCounter);
void recordHyperSpecImg(int status);
void createOneMotorScenario();
signals:
void StartFocusSignal();
void StartLoopSignal();

View File

@ -59,7 +59,7 @@
<LibraryPath>D:\cpp_library\opencv3.4.11\opencv\build\x64\vc15\lib;D:\cpp_library\gdal2.2.3_vs2017\lib;C:\Program Files\ResononAPI\lib64;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\x64\Debug;D:\cpp_library\libconfig-1.7.3\build\x64;D:\cpp_project_vs2022\HPPA\x64\Debug;C:\XIMEA\API\xiAPI;D:\cpp_project_vs2022\HPPA\IrisMultiMotorController\x64\Debug;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
<IncludePath>D:\cpp_library\gdal2.2.3_vs2017\include;C:\Program Files\ResononAPI\include;D:\cpp_library\opencv3.4.11\opencv\build\include;D:\cpp_library\opencv3.4.11\opencv\build\include\opencv;D:\cpp_library\opencv3.4.11\opencv\build\include\opencv2;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\AutoFocus_InspireLinearMotor_DLL\SDKs\PCOMM\Include;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\AutoFocus_InspireLinearMotor_DLL\SDKs\PortControl;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\AutoFocus_InspireLinearMotor_DLL;D:\cpp_project_vs2022\HPPA\HPPA;D:\cpp_library\libconfig-1.7.3\lib;D:\cpp_project_vs2022\HPPA\vincecontrol;C:\XIMEA\API\xiAPI;D:\cpp_project_vs2022\IrisMultiMotorController\IrisMultiMotorController;$(IncludePath)</IncludePath>
<IncludePath>D:\cpp_library\gdal2.2.3_vs2017\include;C:\Program Files\ResononAPI\include;D:\cpp_library\opencv3.4.11\opencv\build\include;D:\cpp_library\opencv3.4.11\opencv\build\include\opencv;D:\cpp_library\opencv3.4.11\opencv\build\include\opencv2;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\AutoFocus_InspireLinearMotor_DLL\SDKs\PCOMM\Include;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\AutoFocus_InspireLinearMotor_DLL\SDKs\PortControl;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\AutoFocus_InspireLinearMotor_DLL;D:\cpp_project_vs2022\HPPA\HPPA;D:\cpp_library\libconfig-1.7.3\lib;D:\cpp_project_vs2022\HPPA\vincecontrol;C:\XIMEA\API\xiAPI;D:\cpp_project_vs2022\HPPA\IrisMultiMotorController\IrisMultiMotorController;$(IncludePath)</IncludePath>
<LibraryPath>D:\cpp_library\opencv3.4.11\opencv\build\x64\vc15\lib;D:\cpp_library\vincecontrol_vs2017_release;D:\cpp_library\gdal2.2.3_vs2017\lib;C:\Program Files\ResononAPI\lib64;D:\cpp_project_vs2022\AutoFocus_InspireLinearMotor_DLL\x64\Release;D:\cpp_library\libconfig-1.7.3\build\x64;D:\cpp_project_vs2022\IrisMultiMotorController\x64\Release;C:\XIMEA\API\xiAPI;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
@ -99,7 +99,7 @@
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>false</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>