#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include "modulecomm.h" #include "ndtpos.pb.h" #include "relocate.pb.h" #include "pcdmap.pb.h" #include struct pose { double x; double y; double z; double roll; double pitch; double yaw; double vx; double vy; }; namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); signals: void ndtposupdate(); private slots: void on_pushButton_Test_clicked(); void on_pushButton_EnableRelocation_clicked(); void on_horizontalSlider_valueChanged(int value); void on_checkBox_clicked(); void on_comboBox_currentIndexChanged(int index); void onndtposupdate(); private: void threadpcdview(); private: void UpdateNDTPos(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname); void UpdatePCDMap(const char * strdata,const unsigned int nSize,const unsigned int index,const QDateTime * dt,const char * strmemname); private: Ui::MainWindow *ui; pcl::visualization::CloudViewer * mpviewer; std::thread * mpthreadpcd; bool mbRun = true; void * mpandtpos; void * mparelocate; void * mpapcdmap; pose mCurPose; iv::lidar::ndtpos mndtpos; std::mutex mmutexndtpos; bool mbndtposupdate = false; QLabel * mpLabelStatus; double mfTransProb = 0.0; std::string mstrpcdmappath; std::mutex mmutexpcdmap; bool mbpcdmapupdate =false; }; #endif // MAINWINDOW_H