#pragma once #include #include #include #include "ui_twoMotorControl.h" #include "IrisMultiMotorController.h" #include "fileOperation.h" #include "CaptureCoordinator.h" #include "MotorWindowBase.h" #define PI 3.1415926 class TwoMotorControl : public QDialog, public MotorWindowBase { Q_OBJECT public: TwoMotorControl(QWidget* parent = nullptr); ~TwoMotorControl(); void setImager(ImagerOperationBase* imager); void setPosFileName(QString posFileName); void record_dark(); void record_white(); bool getMotorsConnectionStatus(); private: ImagerOperationBase* m_Imager; bool getState(); bool isWritePosFile = false; QString m_posFileName; FILE* m_posFileHandle; bool m_xMotorConnectionStatus = false; bool m_yMotorConnectionStatus = false; public Q_SLOTS: void onConnectMotor(); void displayRealTimeLoc(std::vector loc); void display_motors_connectivity(std::vector 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 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, const std::vector, int); void stopSignal(int); void rangeMeasurement(int, double, int); void zeroStartSignal(int); void testConnectivitySignal(int, int); void start(QVector); void stopSignal(); void startLineNumSignal(int lineNum); void sequenceComplete();//所有采集线正常运行完成 void broadcastLocationSignal(std::vector); 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 = nullptr; };