49 lines
1.3 KiB
C++
Executable File
49 lines
1.3 KiB
C++
Executable File
#pragma once
|
|
|
|
#include <QThread>
|
|
|
|
#include "../XNCore/XNIDL/XNSimStatusPubSubTypes.hpp"
|
|
#include <fastdds/dds/publisher/DataWriter.hpp>
|
|
#include <fastdds/dds/domain/DomainParticipant.hpp>
|
|
#include <fastdds/dds/domain/DomainParticipantFactory.hpp>
|
|
#include <fastdds/dds/subscriber/Subscriber.hpp>
|
|
#include <fastdds/dds/subscriber/DataReader.hpp>
|
|
#include <fastdds/dds/publisher/Publisher.hpp>
|
|
#include <fastdds/dds/topic/TypeSupport.hpp>
|
|
#include <QMutex>
|
|
|
|
class MonitorThread : public QThread
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
MonitorThread(QObject *parent = nullptr);
|
|
~MonitorThread();
|
|
signals:
|
|
void runStatusChanged(int status);
|
|
void abortProcess();
|
|
|
|
public slots:
|
|
void OnPause();
|
|
void OnContinue();
|
|
void OnAbort();
|
|
|
|
public:
|
|
void OnReceiveSimStatus(const XNSim::XNSimStatus::XNEngineStatus &status);
|
|
|
|
private:
|
|
void run() override;
|
|
|
|
private:
|
|
QMutex m_Mutex;
|
|
int m_RunStatus;
|
|
bool m_RunStatusUpdate;
|
|
eprosima::fastdds::dds::DomainParticipant *m_Participant;
|
|
eprosima::fastdds::dds::Topic *m_EngineStatusTopic;
|
|
eprosima::fastdds::dds::DataWriter *m_ControlDataWriter;
|
|
eprosima::fastdds::dds::Subscriber *m_EngineStatusSubscriber;
|
|
eprosima::fastdds::dds::DataReaderListener *listener;
|
|
eprosima::fastdds::dds::DataReader *m_EngineStatusDataReader;
|
|
eprosima::fastdds::dds::Topic *m_ControlTopic;
|
|
eprosima::fastdds::dds::Publisher *m_ControlPublisher;
|
|
bool isAbort;
|
|
}; |