98 lines
2.3 KiB
C++
98 lines
2.3 KiB
C++
#pragma once
|
|
#include <QThread>
|
|
#include <QMessageBox>
|
|
#include <QFileDialog>
|
|
|
|
#include "ui_twoMotorControl.h"
|
|
|
|
#include "IrisMultiMotorController.h"
|
|
#include "fileOperation.h"
|
|
#include "CaptureCoordinator.h"
|
|
|
|
#define PI 3.1415926
|
|
|
|
|
|
|
|
class TwoMotorControl : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
TwoMotorControl(QWidget* parent = nullptr);
|
|
~TwoMotorControl();
|
|
|
|
void setImager(ImagerOperationBase* imager);
|
|
void setPosFileName(QString posFileName);
|
|
|
|
void record_dark();
|
|
void record_white();
|
|
|
|
private:
|
|
ImagerOperationBase* m_Imager;
|
|
bool getState();
|
|
|
|
bool isWritePosFile = false;
|
|
QString m_posFileName;
|
|
FILE* m_posFileHandle;
|
|
|
|
|
|
public Q_SLOTS:
|
|
void onConnectMotor();
|
|
|
|
void displayRealTimeLoc(std::vector<double> loc);
|
|
void display_motors_connectivity(std::vector<int> connectivity);
|
|
//void onxMove2Loc();
|
|
void zeroStart();
|
|
void on_rangeMeasurement();
|
|
|
|
void onxMotorRight();
|
|
void onxMotorLeft();
|
|
void onxMotorStop();
|
|
void onxMove2Loc();
|
|
|
|
void onyMotorforward();
|
|
void onyMotorbackward();
|
|
void onyMotorStop();
|
|
void onyMove2Loc();
|
|
|
|
void onAddRecordLine_btn();
|
|
void onRemoveRecordLine_btn();
|
|
void onGenerateRecordLine_btn();
|
|
void onDeleteRecordLine_btn();
|
|
void onSaveRecordLine2File_btn();
|
|
void onReadRecordLineFile_btn();
|
|
|
|
void run();
|
|
void stop();
|
|
void receiveStartRecordLineNum(int lineNum);
|
|
void receiveFinishRecordLineNum(int lineNum);
|
|
void onSequenceComplete();
|
|
|
|
signals:
|
|
void moveSignal(int, bool, double, int);
|
|
void move2LocSignal(int, double, double, int);
|
|
void move2LocSignal(const std::vector<double>, const std::vector<double>, int);
|
|
void stopSignal(int);
|
|
|
|
void rangeMeasurement(int, double, int);
|
|
void zeroStartSignal(int);
|
|
void testConnectivitySignal(int, int);
|
|
|
|
void start(QVector<PathLine>);
|
|
void stopSignal();
|
|
|
|
void startLineNumSignal(int lineNum);
|
|
void sequenceComplete();//所有采集线正常运行完成
|
|
|
|
private:
|
|
Ui::twoMotorControl_UI ui;
|
|
QThread m_coordinatorThread;
|
|
TwoMotionCaptureCoordinator* m_coordinator = nullptr;
|
|
|
|
DarkAndWhiteCaptureCoordinator* m_darkCaptureCoordinator = nullptr;
|
|
DarkAndWhiteCaptureCoordinator* m_whiteCaptureCoordinator = nullptr;
|
|
|
|
QThread m_motorThread;
|
|
IrisMultiMotorController* m_multiAxisController;
|
|
};
|