#pragma once #include #include #include #include "dji_typedef.h" #include "dji_core.h" #include "pch.h" #include "VehicleController.h" #include "IrisSensor_WDA_P0.h" #include "DataFileManager.h" #include "ConfigParser_DJI.h" #include "CCtrlNikiraPMA.h" using namespace ZZ_DATA_DEF::DJI; using namespace ZZ_DATA_DEF::UA_SENSOR; using namespace ZZ_DATA_DEF::CH4_GAS_SENSOR; //using namespace ZZ_DATA_DEF::CO2_GAS_SENSOR; //using namespace ZZ_DATA_DEF::UA_SENSOR; //using namespace ZZ_DATA_DEF::MainConfig; class CMainAcqThread :public QObject { Q_OBJECT public: CMainAcqThread(QObject* parent = nullptr); ~CMainAcqThread(); private: QTime lastTime; QTimer m_clsCapTimer; int iFlagIsPathGenerated; //MiscControls m_struMiscCtrls; //M300RTKSettings m_struM300RTKSs; //SensorPort m_struSensorPort; M350RTKDataFrame m_struM350RTKDataFrame; //M300RTKDataFrame m_struM300RTKDataFrame; //GSDataFrame m_struGSDataFrame; UASDataFrame m_struUASDataFrame; NikiraDataFrame m_struGasDataFrame; double m_dRotationMatrix[9]; float m_fTempWindVecX, m_fTempWindVecY, m_fTempWindVecZ; float m_fTempFixedWindVecX, m_fTempFixedWindVecY, m_fTempFixedWindVecZ; public: atomic m_iFlagCaptureStatus; private: VehicleController m_ctrlVehicle; DataFileManager m_ctrlData; CtrlNikiraPMA m_ctrlGasSensor; IrisSensor_WDA_P0 m_ctrlWindSensor; public: int SetupContext(); int StartUp(); private: //int StartDataGrab(); int SetupMessagePipe(); int GetData(); int WindSensorCorrection(); int QuaternionToRotationMatrix(); int ConvertWindData(); int RotateWindVec(); int FormFixedWindData(); signals: void Signal_UpdateVehicleMessage(QString qstrMessage); public slots: void OnTestTimer(); int OnTimerCapture(); int Slot_StartCapture(); int Slot_StopCapture(); };