#ifndef WORKPIECESPLICEPRESENTER_H #define WORKPIECESPLICEPRESENTER_H #include #include #include #include "IYWorkpieceSpliceStatus.h" #include "IBinocularMarkReceiver.h" #include "IVrConfig.h" class WorkpieceSplicePresenter : public QObject { Q_OBJECT public: explicit WorkpieceSplicePresenter(QObject *parent = nullptr); ~WorkpieceSplicePresenter(); int Init(); void SetStatusCallback(IYWorkpieceSpliceStatus* pStatus); private slots: void onMarkReconnectTimeout(); private: int InitConfig(); int InitBinocularMarkReceiver(); void OnMarkResult(const std::vector& marks, qint64 timestamp, int errorCode); void OnMarkConnectionChanged(bool connected); void UpdateWorkStatus(WorkStatus status); void UpdateStatusMessage(const std::string& message); int ConnectToBinocularMark(); private: IYWorkpieceSpliceStatus* m_pStatusCallback; IVrConfig* m_pConfig; ConfigResult m_configResult; IBinocularMarkReceiver* m_pMarkReceiver; std::string m_binocularMarkIp; quint16 m_binocularMarkPort; bool m_bMarkConnected; QTimer* m_pMarkReconnectTimer; std::mutex m_mutex; }; #endif // WORKPIECESPLICEPRESENTER_H