优化自动调焦马达控制和界面
This commit is contained in:
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>650</width>
|
<width>582</width>
|
||||||
<height>530</height>
|
<height>465</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
@ -279,13 +279,28 @@ QRadioButton
|
|||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QGroupBox" name="groupBox">
|
<widget class="QGroupBox" name="groupBox">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>连接调焦模块</string>
|
<string>连接调焦线性平台</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_7">
|
<layout class="QGridLayout" name="gridLayout_7">
|
||||||
<item row="2" column="0" colspan="2">
|
<item row="0" column="0">
|
||||||
<widget class="QPushButton" name="connectMotor_btn">
|
<widget class="QRadioButton" name="is_new_version_radioButton">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>连接线性平台</string>
|
<string>新版</string>
|
||||||
|
</property>
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="autoExclusive">
|
||||||
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -296,7 +311,7 @@ QRadioButton
|
|||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>107</width>
|
<width>40</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -359,22 +374,72 @@ QRadioButton
|
|||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="2" column="0" colspan="2">
|
||||||
<widget class="QRadioButton" name="is_new_version_radioButton">
|
<widget class="QPushButton" name="connectMotor_btn">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>新版</string>
|
<string>连接</string>
|
||||||
</property>
|
|
||||||
<property name="checkable">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="autoExclusive">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>状态</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="motor_state_label">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>8</width>
|
||||||
|
<height>8</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="sizeIncrement">
|
||||||
|
<size>
|
||||||
|
<width>8</width>
|
||||||
|
<height>8</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">QLabel#motor_state_label
|
||||||
|
{
|
||||||
|
background-color: red;
|
||||||
|
border-radius: 4px;
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -446,7 +511,7 @@ QRadioButton
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>10</string>
|
<string>0</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
@ -462,7 +527,7 @@ QRadioButton
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>10</string>
|
<string>1</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
@ -518,7 +583,7 @@ QRadioButton
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>10</string>
|
<string>1</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
|
|||||||
@ -78,6 +78,40 @@ focusWindow::focusWindow(QWidget *parent, ImagerOperationBase* imager)
|
|||||||
m_dSpeed = 1.0;
|
m_dSpeed = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void focusWindow::showMessageBox(QString msg, QString title)
|
||||||
|
{
|
||||||
|
QMessageBox msgBox(this);
|
||||||
|
msgBox.setWindowTitle(title);
|
||||||
|
msgBox.setText(msg);
|
||||||
|
msgBox.setStyleSheet(R"(
|
||||||
|
QMessageBox {
|
||||||
|
background-color: #0D1233;
|
||||||
|
}
|
||||||
|
QMessageBox QLabel {
|
||||||
|
color: #ACCDFF;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
QPushButton {
|
||||||
|
background-color: #142D7F;
|
||||||
|
color: #e6eeff;
|
||||||
|
border: 1px solid #2f6bff;
|
||||||
|
border-radius: 6px;
|
||||||
|
padding: 6px 20px;
|
||||||
|
min-width: 60px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
QPushButton:hover {
|
||||||
|
border: 1px solid #4d8dff;
|
||||||
|
background-color: red;
|
||||||
|
}
|
||||||
|
QPushButton:pressed {
|
||||||
|
background-color: #23345c;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
|
||||||
|
msgBox.exec();
|
||||||
|
}
|
||||||
|
|
||||||
focusWindow::~focusWindow()
|
focusWindow::~focusWindow()
|
||||||
{
|
{
|
||||||
printf("destroy focusWindow-------------------------\n");
|
printf("destroy focusWindow-------------------------\n");
|
||||||
@ -163,33 +197,7 @@ void focusWindow::onConnectMotor()
|
|||||||
{
|
{
|
||||||
if (ui.is_new_version_radioButton->isChecked())
|
if (ui.is_new_version_radioButton->isChecked())
|
||||||
{
|
{
|
||||||
FileOperation* fileOperation = new FileOperation();
|
connectMotor(true);
|
||||||
string directory = fileOperation->getDirectoryOfExe();
|
|
||||||
QString configFilePath = QString::fromStdString(directory) + "\\oneMotorConfigFile_focus.cfg";
|
|
||||||
|
|
||||||
m_multiAxisController = new IrisMultiMotorController(configFilePath);
|
|
||||||
m_multiAxisController->moveToThread(&m_motorThread);
|
|
||||||
connect(&m_motorThread, SIGNAL(finished()), m_multiAxisController, SLOT(deleteLater()));
|
|
||||||
connect(this, SIGNAL(rmoveSignal(int, double, double, int)), m_multiAxisController, SLOT(rmove(int, double, double, int)));
|
|
||||||
connect(this, SIGNAL(move2LocSignal(int, double, double, int)), m_multiAxisController, SLOT(moveTo(int, double, double, int)));
|
|
||||||
connect(this, SIGNAL(rangeMeasurementSignal(int, double, int)), m_multiAxisController, SLOT(rangeMeasurement(int, double, int)));
|
|
||||||
connect(this, SIGNAL(zeroStartSignal(int)), m_multiAxisController, SLOT(zeroStart(int)));
|
|
||||||
connect(this, SIGNAL(move2MaxLocSignal(int, double, int)), m_multiAxisController, SLOT(moveToMax(int, double, int)));
|
|
||||||
connect(m_multiAxisController, SIGNAL(broadcastLocationSignal(std::vector<double>)), this, SLOT(display_x_loc(std::vector<double>)));
|
|
||||||
connect(m_multiAxisController, SIGNAL(motorStopSignal(int, double)), this, SLOT(moveAfterAutoFocus(int, double)));
|
|
||||||
m_motorThread.start();
|
|
||||||
|
|
||||||
//归零
|
|
||||||
//emit zeroStartSignal(0);
|
|
||||||
|
|
||||||
//自动调焦逻辑
|
|
||||||
m_coordinator = new MotionCaptureCoordinator(m_multiAxisController, m_Imager);
|
|
||||||
m_coordinator->moveToThread(&m_MotionCaptureCoordinatorThread);
|
|
||||||
connect(&m_MotionCaptureCoordinatorThread, SIGNAL(finished()), m_coordinator, SLOT(deleteLater()));
|
|
||||||
connect(this, SIGNAL(startStepMotion(double, int, double, double)), m_coordinator, SLOT(startStepMotion(double, int, double, double)));
|
|
||||||
connect(m_coordinator, SIGNAL(progressChanged(int)), this, SLOT(onAutoFocusProgress(int)));
|
|
||||||
connect(m_coordinator, SIGNAL(sequenceComplete()), this, SLOT(onAutoFocusFinished()));
|
|
||||||
m_MotionCaptureCoordinatorThread.start();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -260,6 +268,131 @@ void focusWindow::onConnectMotor()
|
|||||||
disableBeforeConnect(false);
|
disableBeforeConnect(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void focusWindow::connectMotor(bool isNotification)//需要修改这个函数
|
||||||
|
{
|
||||||
|
if (getMotorsConnectionStatus())
|
||||||
|
{
|
||||||
|
if (isNotification)
|
||||||
|
{
|
||||||
|
showMessageBox(QString::fromLocal8Bit("马达已连接!"));
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_multiAxisController)
|
||||||
|
{
|
||||||
|
disconnect(&m_motorThread, SIGNAL(finished()), m_multiAxisController, SLOT(deleteLater()));
|
||||||
|
disconnect(this, SIGNAL(rmoveSignal(int, double, double, int)), m_multiAxisController, SLOT(rmove(int, double, double, int)));
|
||||||
|
disconnect(this, SIGNAL(move2LocSignal(int, double, double, int)), m_multiAxisController, SLOT(moveTo(int, double, double, int)));
|
||||||
|
disconnect(this, SIGNAL(rangeMeasurementSignal(int, double, int)), m_multiAxisController, SLOT(rangeMeasurement(int, double, int)));
|
||||||
|
disconnect(this, SIGNAL(zeroStartSignal(int)), m_multiAxisController, SLOT(zeroStart(int)));
|
||||||
|
disconnect(this, SIGNAL(move2MaxLocSignal(int, double, int)), m_multiAxisController, SLOT(moveToMax(int, double, int)));
|
||||||
|
disconnect(m_multiAxisController, SIGNAL(broadcastLocationSignal(std::vector<double>)), this, SLOT(display_x_loc(std::vector<double>)));
|
||||||
|
disconnect(m_multiAxisController, SIGNAL(motorStopSignal(int, double)), this, SLOT(moveAfterAutoFocus(int, double)));
|
||||||
|
disconnect(m_multiAxisController, SIGNAL(broadcastConnectivity(std::vector<int>)), this, SLOT(display_motors_connectivity(std::vector<int>)));
|
||||||
|
|
||||||
|
m_motorThread.quit();
|
||||||
|
m_motorThread.wait();
|
||||||
|
m_multiAxisController->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_coordinator)
|
||||||
|
{
|
||||||
|
disconnect(&m_MotionCaptureCoordinatorThread, SIGNAL(finished()), m_coordinator, SLOT(deleteLater()));
|
||||||
|
disconnect(this, SIGNAL(startStepMotion(double, int, double, double)), m_coordinator, SLOT(startStepMotion(double, int, double, double)));
|
||||||
|
disconnect(m_coordinator, SIGNAL(progressChanged(int)), this, SLOT(onAutoFocusProgress(int)));
|
||||||
|
disconnect(m_coordinator, SIGNAL(sequenceComplete()), this, SLOT(onAutoFocusFinished()));
|
||||||
|
|
||||||
|
m_MotionCaptureCoordinatorThread.quit();
|
||||||
|
m_MotionCaptureCoordinatorThread.wait();
|
||||||
|
m_coordinator->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
FileOperation* fileOperation = new FileOperation();
|
||||||
|
string directory = fileOperation->getDirectoryOfExe();
|
||||||
|
QString configFilePath = QString::fromStdString(directory) + "\\oneMotorConfigFile_focus.cfg";
|
||||||
|
|
||||||
|
m_multiAxisController = new IrisMultiMotorController(configFilePath);
|
||||||
|
}
|
||||||
|
catch (std::exception const& e)
|
||||||
|
{
|
||||||
|
showMessageBox(QString::fromLocal8Bit("请连接马达!"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
m_multiAxisController->moveToThread(&m_motorThread);
|
||||||
|
connect(&m_motorThread, SIGNAL(finished()), m_multiAxisController, SLOT(deleteLater()));
|
||||||
|
connect(this, SIGNAL(rmoveSignal(int, double, double, int)), m_multiAxisController, SLOT(rmove(int, double, double, int)));
|
||||||
|
connect(this, SIGNAL(move2LocSignal(int, double, double, int)), m_multiAxisController, SLOT(moveTo(int, double, double, int)));
|
||||||
|
connect(this, SIGNAL(rangeMeasurementSignal(int, double, int)), m_multiAxisController, SLOT(rangeMeasurement(int, double, int)));
|
||||||
|
connect(this, SIGNAL(zeroStartSignal(int)), m_multiAxisController, SLOT(zeroStart(int)));
|
||||||
|
connect(this, SIGNAL(move2MaxLocSignal(int, double, int)), m_multiAxisController, SLOT(moveToMax(int, double, int)));
|
||||||
|
connect(m_multiAxisController, SIGNAL(broadcastLocationSignal(std::vector<double>)), this, SLOT(display_x_loc(std::vector<double>)));
|
||||||
|
connect(m_multiAxisController, SIGNAL(motorStopSignal(int, double)), this, SLOT(moveAfterAutoFocus(int, double)));
|
||||||
|
connect(this, SIGNAL(testConnectivitySignal(int, int)), m_multiAxisController, SLOT(testConnectivity(int, int)));
|
||||||
|
connect(m_multiAxisController, SIGNAL(broadcastConnectivity(std::vector<int>)), this, SLOT(display_motors_connectivity(std::vector<int>)));
|
||||||
|
m_motorThread.start();
|
||||||
|
emit testConnectivitySignal(0, 1000);
|
||||||
|
|
||||||
|
//归零
|
||||||
|
//emit zeroStartSignal(0);
|
||||||
|
|
||||||
|
//自动调焦逻辑
|
||||||
|
m_coordinator = new MotionCaptureCoordinator(m_multiAxisController, m_Imager);
|
||||||
|
m_coordinator->moveToThread(&m_MotionCaptureCoordinatorThread);
|
||||||
|
connect(&m_MotionCaptureCoordinatorThread, SIGNAL(finished()), m_coordinator, SLOT(deleteLater()));
|
||||||
|
connect(this, SIGNAL(startStepMotion(double, int, double, double)), m_coordinator, SLOT(startStepMotion(double, int, double, double)));
|
||||||
|
connect(m_coordinator, SIGNAL(progressChanged(int)), this, SLOT(onAutoFocusProgress(int)));
|
||||||
|
connect(m_coordinator, SIGNAL(sequenceComplete()), this, SLOT(onAutoFocusFinished()));
|
||||||
|
m_MotionCaptureCoordinatorThread.start();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void focusWindow::display_motors_connectivity(std::vector<int> connectivity)
|
||||||
|
{
|
||||||
|
//std::cout << "-----------------------------------"<<connectivity.size()<< std::endl;
|
||||||
|
if (connectivity[0])
|
||||||
|
{
|
||||||
|
m_xMotorConnectionStatus = true;
|
||||||
|
|
||||||
|
this->ui.motor_state_label->setStyleSheet(R"(
|
||||||
|
QLabel
|
||||||
|
{
|
||||||
|
background-color: #08FACE;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_xMotorConnectionStatus = false;
|
||||||
|
|
||||||
|
this->ui.motor_state_label->setStyleSheet(R"(
|
||||||
|
QLabel
|
||||||
|
{
|
||||||
|
background-color: red;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getMotorsConnectionStatus())
|
||||||
|
{
|
||||||
|
this->ui.connectMotor_btn->setText(QString::fromLocal8Bit("已连接"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this->ui.connectMotor_btn->setText(QString::fromLocal8Bit("重新连接"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool focusWindow::getMotorsConnectionStatus()
|
||||||
|
{
|
||||||
|
return m_xMotorConnectionStatus;
|
||||||
|
}
|
||||||
|
|
||||||
void focusWindow::display_x_loc(std::vector<double> loc)
|
void focusWindow::display_x_loc(std::vector<double> loc)
|
||||||
{
|
{
|
||||||
double tmp = round(loc[0] * 100) / 100;
|
double tmp = round(loc[0] * 100) / 100;
|
||||||
@ -517,20 +650,16 @@ void focusWindow::moveAfterAutoFocus(int motorID, double location)
|
|||||||
std::cout << "\n已经到达位置:" << location << std::endl;
|
std::cout << "\n已经到达位置:" << location << std::endl;
|
||||||
|
|
||||||
double tmp = abs(location - m_goodPos) / m_goodPos * 100;
|
double tmp = abs(location - m_goodPos) / m_goodPos * 100;
|
||||||
if (tmp < 5)
|
if (tmp < 5 || m_goodPos == 0)
|
||||||
{
|
{
|
||||||
m_isMoveAfterAutoFocus = false;
|
m_isMoveAfterAutoFocus = false;
|
||||||
if (!m_isAutoFocusSuccess)
|
if (!m_isAutoFocusSuccess)
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
showMessageBox(QString::fromLocal8Bit("纹理较弱,自动调焦效果不佳!请使用调焦纸进行自动调焦!"));
|
||||||
msgBox.setText(QString::fromLocal8Bit("纹理较弱,自动调焦效果不佳!请使用调焦纸进行自动调焦!"));
|
|
||||||
msgBox.exec();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QMessageBox msgBox;
|
showMessageBox(QString::fromLocal8Bit("自动调焦成功!"));
|
||||||
msgBox.setText(QString::fromLocal8Bit("自动调焦成功!"));
|
|
||||||
msgBox.exec();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
#include <QtSerialPort/QSerialPortInfo>
|
#include <QtSerialPort/QSerialPortInfo>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
|
#include <QPointer>
|
||||||
|
|
||||||
#include "ui_FocusDialog.h"
|
#include "ui_FocusDialog.h"
|
||||||
#include "AbstractPortMiscDefines.h"
|
#include "AbstractPortMiscDefines.h"
|
||||||
@ -123,11 +124,11 @@ private:
|
|||||||
void disableBeforeConnect(bool disable);
|
void disableBeforeConnect(bool disable);
|
||||||
|
|
||||||
QThread m_motorThread;
|
QThread m_motorThread;
|
||||||
IrisMultiMotorController* m_multiAxisController;
|
QPointer<IrisMultiMotorController> m_multiAxisController;
|
||||||
double m_dSpeed;
|
double m_dSpeed;
|
||||||
|
|
||||||
QThread m_MotionCaptureCoordinatorThread;
|
QThread m_MotionCaptureCoordinatorThread;
|
||||||
MotionCaptureCoordinator* m_coordinator;
|
QPointer<MotionCaptureCoordinator> m_coordinator;
|
||||||
|
|
||||||
int m_iStepSize;
|
int m_iStepSize;
|
||||||
double m_goodPos;
|
double m_goodPos;
|
||||||
@ -136,6 +137,11 @@ private:
|
|||||||
void getGaussianInitParam(const std::vector<double>& pos, const std::vector<double>& index, double& a_init, double& mu_init, double& sigma_init, double& c_init);
|
void getGaussianInitParam(const std::vector<double>& pos, const std::vector<double>& index, double& a_init, double& mu_init, double& sigma_init, double& c_init);
|
||||||
void gaussian_fit(const std::vector<double>& x_data, const std::vector<double>& y_data, double& a, double& mu, double& sigma, double& c);
|
void gaussian_fit(const std::vector<double>& x_data, const std::vector<double>& y_data, double& a, double& mu, double& sigma, double& c);
|
||||||
|
|
||||||
|
bool m_xMotorConnectionStatus = false;
|
||||||
|
bool getMotorsConnectionStatus();
|
||||||
|
void connectMotor(bool isNotification);
|
||||||
|
|
||||||
|
void showMessageBox(QString msg, QString title = QString::fromLocal8Bit("提示"));
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void onConnectMotor();
|
void onConnectMotor();
|
||||||
@ -158,6 +164,8 @@ public Q_SLOTS:
|
|||||||
|
|
||||||
void onExit();
|
void onExit();
|
||||||
|
|
||||||
|
void display_motors_connectivity(std::vector<int> connectivity);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void StartManualFocusSignal(int);//1:开始调焦;0:停止调焦;
|
void StartManualFocusSignal(int);//1:开始调焦;0:停止调焦;
|
||||||
|
|
||||||
@ -166,6 +174,7 @@ signals:
|
|||||||
void rmoveSignal(int, double, double, int);
|
void rmoveSignal(int, double, double, int);
|
||||||
void rangeMeasurementSignal(int, double, int);
|
void rangeMeasurementSignal(int, double, int);
|
||||||
void zeroStartSignal(int);
|
void zeroStartSignal(int);
|
||||||
|
void testConnectivitySignal(int, int);
|
||||||
|
|
||||||
void startStepMotion(double speed, int stepInterval = 100, double startPos = 0, double endPos = -1);
|
void startStepMotion(double speed, int stepInterval = 100, double startPos = 0, double endPos = -1);
|
||||||
void closeSignal();
|
void closeSignal();
|
||||||
|
|||||||
Reference in New Issue
Block a user