103 lines
2.1 KiB
C++
103 lines
2.1 KiB
C++
#ifndef UDPSERVER_H
|
|
#define UDPSERVER_H
|
|
|
|
#include <iostream>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
#include <ctime>
|
|
|
|
#include <QCoreApplication>
|
|
#include <QUdpSocket>
|
|
#include <QObject>
|
|
#include <QThread>
|
|
#include <QDir>
|
|
#include <QtSerialPort/QSerialPort>
|
|
#include <QtSerialPort/QSerialPortInfo>
|
|
|
|
#include "ximeaimager.h"
|
|
#include "sbgrecorder.h"
|
|
#include "fileoperation.h"
|
|
|
|
extern "C"
|
|
{
|
|
// #include <sbgEComLib.h>
|
|
#include <stdlib.h>
|
|
}
|
|
|
|
class Record300TcTemperature : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
Record300TcTemperature();
|
|
|
|
void stopRecordTemperature();
|
|
|
|
private:
|
|
bool m_bIsRecord;
|
|
|
|
QSerialPort * m_serial;
|
|
|
|
float parseMessage(QByteArray * data);
|
|
public slots:
|
|
void recordTemperature(QString filePath);
|
|
|
|
signals:
|
|
|
|
};
|
|
|
|
class UdpServer:public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
UdpServer();
|
|
QThread * m_RecordThread;
|
|
QThread * m_RecordSbgThread;
|
|
QThread * m_CopyFileThread;
|
|
|
|
private slots:
|
|
void processPendingDatagrams();
|
|
|
|
private:
|
|
QUdpSocket * m_udpSocket;
|
|
|
|
QHostAddress m_clientIpAddress;
|
|
quint16 m_clientPort;
|
|
|
|
XimeaImager * m_imager;
|
|
sbgtc::SbgRecorder * m_sbgRecorder;
|
|
FileOperation * m_copyFile;
|
|
double getTimeDifferenceBetweenSystemAndSbg(double secondSbg);
|
|
|
|
void sender(int status);
|
|
|
|
QThread * m_recordTempThread;
|
|
Record300TcTemperature * m_300tcTemperature;
|
|
|
|
signals:
|
|
void systemStart();
|
|
void systemStop();
|
|
void startRecordHyperspectralSignal();
|
|
void startCopyFileSignal();
|
|
void startDeleteFileSignal();
|
|
|
|
void recordXimeaOnlySignal(double,QString);
|
|
void record300tcTemperatureSignal(QString);
|
|
|
|
public slots:
|
|
void onRecordFinished();
|
|
|
|
void sendSerialPortStatus(int serialPortStatus);
|
|
|
|
void sendSbgSolutionModeState(int SolutionMode);
|
|
void sendSbgAccuracyState(int Accuracy,int SatelliteCounter);
|
|
|
|
void sendXimeaImageStatus(int ximeaImageStatus);
|
|
void sendXimeaAutoExposeMaxValueOfOneFrame(int autoExposeMaxValueOfOneFrame, double exposeTime);
|
|
void sendXimeaBinState(int spatialBin, int spectralBin);
|
|
void sendXimeaImageFrameRate(double frameRate);
|
|
void sendCopyFileStatus(int fileStatus);
|
|
};
|
|
#endif // UDPSERVER_H
|