#ifndef IVDRIVER_LIDAR_H #define IVDRIVER_LIDAR_H #include #include #include #include #include #include #include "ivdriver.h" #include "modulecomm.h" namespace iv { class ivdriver_lidar : public ivdriver { public: ivdriver_lidar(); void RegisterPointMsg(const char * strmemname,iv::modulecomm::ModuleComm_TYPE xtype); void SharePointCloud(pcl::PointCloud::Ptr point_cloud); virtual void modulerun(); virtual int processudpData(QByteArray ba,pcl::PointCloud::Ptr point_cloud) = 0; private: void * mpa; pcl::PointCloud::Ptr mpoint_cloud; qint64 m_seq = 0; public: char mstr_memname[256]; double mfrollang = 0; double mfinclinationang_yaxis = 0; //from y axis double mfinclinationang_xaxis = 0; //from x axis char mstr_hostip[256]; char mstr_port[256]; double mfoffset_x = 0; double mfoffset_y = 0; double mfoffset_z = 0; bool mbinclix = false; bool mbincliy = false; // if(finclinationang_xaxis != 0.0)binclix = true; // if(finclinationang_yaxis != 0.0)bincliy = true; double mcos_finclinationang_xaxis;// = cos(mfinclinationang_xaxis); double msin_finclinationang_xaxis;// = sin(mfinclinationang_xaxis); double mcos_finclinationang_yaxis;// = cos(mfinclinationang_yaxis); double msin_finclinationang_yaxis;// = sin(mfinclinationang_yaxis); private: void threadudp(); bool mbrunudpthread = false; std::vector mvectorba; QMutex mMutexba; }; } #endif // IVDRIVER_LIDAR_H