From 83adaa8b8b1f0c56d837bb92a5b0dce17606ad57 Mon Sep 17 00:00:00 2001 From: tangchao0503 <735056338@qq.com> Date: Thu, 17 Sep 2026 10:48:40 +0800 Subject: [PATCH] =?UTF-8?q?add=201=E3=80=81=E5=88=86=E7=A6=BB=E6=89=AB?= =?UTF-8?q?=E6=8F=8F=E9=80=9F=E5=BA=A6=E5=92=8C=E6=89=8B=E5=8A=A8=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E9=80=9F=E5=BA=A6=EF=BC=9B=202=E3=80=81=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=89=AB=E6=8F=8F=E9=80=9F=E5=BA=A6=E7=9A=84=E5=8F=8D?= =?UTF-8?q?=E5=90=91=E8=BF=90=E5=8A=A8=EF=BC=8C=E5=B9=B6=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E4=BB=A5=E5=89=8D=E7=9A=84=E8=AE=BE=E7=BD=AE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix 和贡嘎山的相互干扰; --- HPPA/AppSettings.cpp | 10 ++++++++++ HPPA/AppSettings.h | 3 +++ HPPA/GonggaShanRecordCtl.cpp | 5 +++++ HPPA/GonggaShanRecordCtl.h | 1 + HPPA/HPPA.cpp | 16 +++++++++++++--- HPPA/HPPA.h | 2 ++ HPPA/OneMotorControl.cpp | 21 ++++++++++++++++++++- 7 files changed, 54 insertions(+), 4 deletions(-) diff --git a/HPPA/AppSettings.cpp b/HPPA/AppSettings.cpp index 54ab0cd..d864698 100644 --- a/HPPA/AppSettings.cpp +++ b/HPPA/AppSettings.cpp @@ -185,6 +185,16 @@ void AppSettings::setManualMovementSpeed(double value) m_settings.setValue("OneMotorControl/ManualMovementSpeed", value); } +bool AppSettings::isReverseMove() const +{ + return m_settings.value("OneMotorControl/IsReverseMove", 0).toBool(); +} + +void AppSettings::setIsReverseMove(bool value) +{ + m_settings.setValue("OneMotorControl/IsReverseMove", value); +} + int AppSettings::gonggaShanRecordPort() const { return m_settings.value("GonggaShanRecordCtl/Port", kDefaultGonggaShanRecordPort).toInt(); diff --git a/HPPA/AppSettings.h b/HPPA/AppSettings.h index dbad821..5a3b2a2 100644 --- a/HPPA/AppSettings.h +++ b/HPPA/AppSettings.h @@ -60,6 +60,9 @@ public: double manualMovementSpeed() const; void setManualMovementSpeed(double value); + bool isReverseMove() const; + void setIsReverseMove(bool value); + // 贡嘎山记录端口 int gonggaShanRecordPort() const; void setGonggaShanRecordPort(int value); diff --git a/HPPA/GonggaShanRecordCtl.cpp b/HPPA/GonggaShanRecordCtl.cpp index a974a68..2030069 100644 --- a/HPPA/GonggaShanRecordCtl.cpp +++ b/HPPA/GonggaShanRecordCtl.cpp @@ -68,6 +68,11 @@ GonggaShanRecordCtl::~GonggaShanRecordCtl() } } +void GonggaShanRecordCtl::recordHsiFinished() +{ + emit recordFinishedSignal_gonggashan(); +} + void GonggaShanRecordCtl::onGpsAcquisition() { logStatus(QStringLiteral("开始GPS定位采集..."), true, false); diff --git a/HPPA/GonggaShanRecordCtl.h b/HPPA/GonggaShanRecordCtl.h index 92adf4b..506f71f 100644 --- a/HPPA/GonggaShanRecordCtl.h +++ b/HPPA/GonggaShanRecordCtl.h @@ -122,6 +122,7 @@ public: GonggaShanRecordCtl(QWidget* parent = nullptr); ~GonggaShanRecordCtl(); + void recordHsiFinished(); public Q_SLOTS: void onFiberImagerStartExposureSignal(); diff --git a/HPPA/HPPA.cpp b/HPPA/HPPA.cpp index e0f590e..9fdbee1 100644 --- a/HPPA/HPPA.cpp +++ b/HPPA/HPPA.cpp @@ -1121,12 +1121,22 @@ void HPPA::setupGonggashanAutoRecordConnection() connect(m_fodisWindow, &FodisWindow::exposureCompleteSignal, m_gonggaShanRecordCtl, &GonggaShanRecordCtl::fiberExposureDoneSignal_gonggashan); connect(m_gonggaShanRecordCtl, &GonggaShanRecordCtl::startRcordSignal_gonggashan, this, &HPPA::onGonggashanRecord); - connect(m_omc, &OneMotorControl::sequenceCompleteSignal_hyperImagerStopRecord, m_rgbCameraControlWindow, &rgbCameraWindow::toggleTakePhoto); - connect(m_omc, &OneMotorControl::sequenceCompleteSignal_hyperImagerStopRecord, m_fodisWindow, &FodisWindow::closeFiberImager); - connect(m_omc, &OneMotorControl::sequenceCompleteSignal_hyperImagerStopRecord, m_gonggaShanRecordCtl, &GonggaShanRecordCtl::recordFinishedSignal_gonggashan); + connect(m_omc, &OneMotorControl::sequenceCompleteSignal_hyperImagerStopRecord, this, &HPPA::onSequenceCompleteStopRecord); //connect(m_omc, &OneMotorControl::sequenceComplete_motorBack2Origin, m_gonggaShanRecordCtl, &GonggaShanRecordCtl::); } +void HPPA::onSequenceCompleteStopRecord() +{ + if (m_ScenarioActionGroup->checkedAction() != ui.mActionGonggaRotatingPlatformScenario) + { + return; + } + + m_rgbCameraControlWindow->toggleTakePhoto(); + m_fodisWindow->closeFiberImager(); + m_gonggaShanRecordCtl->recordHsiFinished(); +} + void HPPA::onGonggashanHyperAutoExposure() { //连接马达和光谱仪 diff --git a/HPPA/HPPA.h b/HPPA/HPPA.h index 67af960..14dd7e7 100644 --- a/HPPA/HPPA.h +++ b/HPPA/HPPA.h @@ -461,6 +461,8 @@ public Q_SLOTS: void onGonggashanHyperAutoExposure(); void onGonggashanFiberAutoExposureRecord(QString posInfo, QString dataFolder); + void onSequenceCompleteStopRecord(); + protected: void closeEvent(QCloseEvent* event) override; diff --git a/HPPA/OneMotorControl.cpp b/HPPA/OneMotorControl.cpp index 71a0b40..7c9fd8b 100644 --- a/HPPA/OneMotorControl.cpp +++ b/HPPA/OneMotorControl.cpp @@ -27,6 +27,9 @@ OneMotorControl::OneMotorControl(QWidget* parent) : QDialog(parent) connect(ui.manualMovementSpeed_lineEdit, &QLineEdit::editingFinished, [this]() { AppSettings::instance().setManualMovementSpeed(ui.manualMovementSpeed_lineEdit->text().toDouble()); }); + connect(ui.reverseMove_radioButton, &QRadioButton::toggled, [this](bool checked) { + AppSettings::instance().setIsReverseMove(checked); + }); loadSettings(); } @@ -42,6 +45,8 @@ void OneMotorControl::loadSettings() ui.scanSpeed_lineEdit->setText(QString::number(AppSettings::instance().scanSpeed())); ui.return_speed_lineEdit->setText(QString::number(AppSettings::instance().returnSpeed())); ui.manualMovementSpeed_lineEdit->setText(QString::number(AppSettings::instance().manualMovementSpeed())); + + ui.reverseMove_radioButton->setChecked(AppSettings::instance().isReverseMove()); } void OneMotorControl::onConnectMotor() @@ -212,6 +217,10 @@ void OneMotorControl::setImager(ImagerOperationBase* imager) void OneMotorControl::record_dark() { double s = ui.scanSpeed_lineEdit->text().toDouble(); + if (ui.reverseMove_radioButton->isChecked()) + { + s = s * -1; + } if (m_darkCaptureCoordinator == nullptr) { @@ -224,6 +233,10 @@ void OneMotorControl::record_dark() void OneMotorControl::record_white() { double s = ui.scanSpeed_lineEdit->text().toDouble(); + if (ui.reverseMove_radioButton->isChecked()) + { + s = s * -1; + } if (m_whiteCaptureCoordinator == nullptr) { @@ -253,7 +266,13 @@ void OneMotorControl::run() this, &OneMotorControl::onSequenceComplete_motorBack2Origin); OneMotionCapturePathLine tmp; - tmp.speedRecord = ui.scanSpeed_lineEdit->text().toDouble(); + + double s = ui.scanSpeed_lineEdit->text().toDouble(); + if (ui.reverseMove_radioButton->isChecked()) + { + s = s * -1; + } + tmp.speedRecord = s; tmp.speedBack = ui.return_speed_lineEdit->text().toDouble(); emit start(tmp);