#pragma once #include #include #include #include "ui_oneMotorControl.h" #include "IrisMultiMotorController.h" #include "fileOperation.h" #include "CaptureCoordinator.h" #include "MotorWindowBase.h" #include "AppSettings.h" class OneMotorControl : public QDialog, public MotorWindowBase { Q_OBJECT public: OneMotorControl(QWidget* parent = nullptr); ~OneMotorControl(); void setImager(ImagerOperationBase* imager); void run(); void stop(); void record_dark(); void record_white(); bool getMotorsConnectionStatus(); void connectMotor(bool isNotification); public Q_SLOTS: void onConnectMotor(); void display_x_loc(std::vector loc); void display_motors_connectivity(std::vector connectivity); void onxMove2Loc(); void zeroStart(); void onx_rangeMeasurement(); void onxMotorRight(); void onxMotorLeft(); void onxMotorStop(); void onSequenceComplete(int state); 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(OneMotionCapturePathLine); void stopStepMotionSignal(); void sequenceComplete(); void broadcastLocationSignal(std::vector); private: Ui::OneMotorControl_UI ui; QThread m_motorThread; IrisMultiMotorController* m_multiAxisController = nullptr; QPointer m_coordinator; ImagerOperationBase* m_Imager; DarkAndWhiteCaptureCoordinator* m_darkCaptureCoordinator = nullptr; DarkAndWhiteCaptureCoordinator* m_whiteCaptureCoordinator = nullptr; bool m_xMotorConnectionStatus = false; }; class OneMotorControl_LiftingPlatform : public QDialog, public MotorWindowBase { Q_OBJECT public: OneMotorControl_LiftingPlatform(QWidget* parent = nullptr); ~OneMotorControl_LiftingPlatform(); void run(); void stop(); bool getMotorsConnectionStatus(); void connectMotor(bool isNotification); public Q_SLOTS: void onConnectMotor(); void display_x_loc(std::vector loc); void display_motors_connectivity(std::vector connectivity); void onxMove2Loc(); void zeroStart(); void onx_rangeMeasurement(); void onxMotorRight(); void onxMotorLeft(); void onxMotorStop(); void onSequenceComplete(int state); 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(OneMotionCapturePathLine); void stopStepMotionSignal(); void sequenceComplete(); void broadcastLocationSignal(std::vector); private: Ui::OneMotorControl_UI ui; QThread m_motorThread; IrisMultiMotorController* m_multiAxisController = nullptr; QPointer m_coordinator; bool m_xMotorConnectionStatus = false; };