Files
M300CO2/Source/MainAcqThread.h
2023-03-22 09:47:10 +08:00

74 lines
1.6 KiB
C++

#pragma once
#include <iostream>
#include <fstream>
#include <atomic>
#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<int> 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();
};