100 lines
3.3 KiB
C++
100 lines
3.3 KiB
C++
#include "FodisWindow.h"
|
|
#include "JinspFiberImagerConfig.h"
|
|
|
|
FodisWindow::FodisWindow(QWidget* parent)
|
|
: QDialog(parent)
|
|
{
|
|
ui.setupUi(this);
|
|
|
|
m_FiberImagerThread = new QThread();
|
|
m_JinspFiberImagerOperation = new JinspFiberImager(false, JinspFiberImagerConfig::instance().portName().toStdString(), "JINSP");
|
|
connect(m_JinspFiberImagerOperation, &JinspFiberImager::spectalCaptured, this, &FodisWindow::spectalCaptured);
|
|
connect(m_JinspFiberImagerOperation, &JinspFiberImager::startExposureSignal, this, &FodisWindow::startExposureSignal);
|
|
connect(m_JinspFiberImagerOperation, &JinspFiberImager::exposureCompleteSignal, this, &FodisWindow::exposureCompleteSignal);
|
|
m_JinspFiberImagerOperation->moveToThread(m_FiberImagerThread);
|
|
m_FiberImagerThread->start();
|
|
|
|
connect(ui.open_btn, &QPushButton::clicked, this, &FodisWindow::openFiberImager);
|
|
connect(ui.close_btn, &QPushButton::clicked, this, &FodisWindow::closeFiberImager);
|
|
|
|
connect(this, &FodisWindow::openFiberImagerSignal, m_JinspFiberImagerOperation, &JinspFiberImager::OpenFiberImagerAndRecord);
|
|
|
|
//connect(m_JinspFiberImagerOperation, &JinspFiberImager::CamOpenedSignal, this, &FodisWindow::onCamOpened);
|
|
//connect(m_JinspFiberImagerOperation, &JinspFiberImager::CamClosedSignal, this, &FodisWindow::onCamClosed);
|
|
|
|
//connect(m_JinspFiberImagerOperation, &JinspFiberImager::PlotSignal, this, &FodisWindow::PlotSpectralSignal);
|
|
//connect(m_JinspFiberImagerOperation, &JinspFiberImager::CamClosedSignal, this, &FodisWindow::FiberImagerClosedSignal);
|
|
|
|
connect(this->ui.dataFolderBtn, SIGNAL(clicked()), this, SLOT(onSelectDataFolder()));
|
|
|
|
// 初始化数据保存路径显示(从 AppSettings 恢复或使用默认)
|
|
ui.dataFolderLineEdit->setText(AppSettings::instance().depthCameraDataFolder());
|
|
|
|
setDataFolder(AppSettings::instance().FiberImagerDataFolder());
|
|
}
|
|
|
|
FodisWindow::~FodisWindow()
|
|
{
|
|
m_FiberImagerThread->quit();
|
|
m_FiberImagerThread->wait();
|
|
delete m_JinspFiberImagerOperation;
|
|
m_JinspFiberImagerOperation = nullptr;
|
|
}
|
|
|
|
void FodisWindow::onSelectDataFolder()
|
|
{
|
|
QString dir = QFileDialog::getExistingDirectory(this,
|
|
QString::fromLocal8Bit("选择数据保存路径"),
|
|
ui.dataFolderLineEdit->text());
|
|
|
|
setDataFolder(dir);
|
|
}
|
|
|
|
void FodisWindow::setDataFolder(QString dir)
|
|
{
|
|
if (!dir.isEmpty())
|
|
{
|
|
ui.dataFolderLineEdit->setText(dir);
|
|
AppSettings::instance().setFiberImagerDataFolder(dir);
|
|
}
|
|
}
|
|
|
|
void FodisWindow::setCaptureInterval(int captureIntervalSeconds)
|
|
{
|
|
m_JinspFiberImagerOperation->setCaptureInterval(captureIntervalSeconds);
|
|
}
|
|
|
|
void FodisWindow::openFiberImager()
|
|
{
|
|
openFiberImager_expose_record("pos_null");
|
|
}
|
|
|
|
void FodisWindow::openFiberImager_expose_record(QString posInfo)
|
|
{
|
|
if (!m_JinspFiberImagerOperation->getRecordStatus())
|
|
{
|
|
emit openFiberImagerSignal(posInfo);
|
|
}
|
|
}
|
|
|
|
void FodisWindow::onCamOpened()
|
|
{
|
|
ui.open_btn->setEnabled(false);
|
|
ui.close_btn->setEnabled(true);
|
|
|
|
ui.open_btn->setText(QString::fromLocal8Bit("已打开"));
|
|
}
|
|
|
|
void FodisWindow::closeFiberImager()
|
|
{
|
|
m_JinspFiberImagerOperation->disconnectFiberSpectrometer();
|
|
}
|
|
|
|
void FodisWindow::onCamClosed()
|
|
{
|
|
ui.open_btn->setEnabled(true);
|
|
ui.close_btn->setEnabled(false);
|
|
|
|
ui.open_btn->setText(QString::fromLocal8Bit("打 开"));
|
|
}
|