1、分离扫描速度和手动控制速度;
2、添加扫描速度的反向运动,并保存以前的设置;

fix
和贡嘎山的相互干扰;
This commit is contained in:
tangchao0503
2026-09-17 10:48:40 +08:00
parent b8febdf8ff
commit 83adaa8b8b
7 changed files with 54 additions and 4 deletions

View File

@ -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();

View File

@ -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);

View File

@ -68,6 +68,11 @@ GonggaShanRecordCtl::~GonggaShanRecordCtl()
}
}
void GonggaShanRecordCtl::recordHsiFinished()
{
emit recordFinishedSignal_gonggashan();
}
void GonggaShanRecordCtl::onGpsAcquisition()
{
logStatus(QStringLiteral("开始GPS定位采集..."), true, false);

View File

@ -122,6 +122,7 @@ public:
GonggaShanRecordCtl(QWidget* parent = nullptr);
~GonggaShanRecordCtl();
void recordHsiFinished();
public Q_SLOTS:
void onFiberImagerStartExposureSignal();

View File

@ -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()
{
//连接马达和光谱仪

View File

@ -461,6 +461,8 @@ public Q_SLOTS:
void onGonggashanHyperAutoExposure();
void onGonggashanFiberAutoExposureRecord(QString posInfo, QString dataFolder);
void onSequenceCompleteStopRecord();
protected:
void closeEvent(QCloseEvent* event) override;

View File

@ -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);