#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 "IrisSensor_Gas_P0.h" #include "DataFileManager.h" #include "MainConfigParser.h" using namespace ZZ_DATA_DEF::M300RTK; 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; M300RTKDataFrame m_struM300RTKDataFrame; GSDataFrame m_struGSDataFrame; UASDataFrame m_struUASDataFrame; double m_dRotationMatrix[9]; float m_fTempWindVecX, m_fTempWindVecY, m_fTempWindVecZ; float m_fTempFixedWindVecX, m_fTempFixedWindVecY, m_fTempFixedWindVecZ; public: atomic m_iFlagCaptureStatus; private: MainConfigParser m_ctrlConfigParser; VehicleController m_ctrlVehicle; DataFileManager m_ctrlData; IrisSensor_Gas_P0 m_ctrlGasSensor; IrisSensor_WDA_P0 m_ctrlWindSensor; public: int SetupContext(); int StartUp(); private: 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(); };