You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.0 KiB
C++
59 lines
1.0 KiB
C++
#pragma once
|
|
#include "common.h"
|
|
|
|
#ifdef __MQTTSend
|
|
#include <QDebug>
|
|
#include <QDateTime>
|
|
#include <iostream>
|
|
#include <QThread>
|
|
#include <QtMqtt/qmqttclient.h>
|
|
#include "SyncQueue.h"
|
|
|
|
class _MqttSendInfo
|
|
{
|
|
public:
|
|
int MsgID;
|
|
QString timecost;
|
|
|
|
_MqttSendInfo()
|
|
{
|
|
|
|
}
|
|
};
|
|
|
|
class threadSendMqtt : public QThread {
|
|
public:
|
|
QString ip;
|
|
int port;
|
|
int num = 0;
|
|
|
|
threadSendMqtt(QObject* o = nullptr) :QThread(o)
|
|
{
|
|
isLoop = true;
|
|
}
|
|
|
|
~threadSendMqtt()
|
|
{
|
|
stop();
|
|
_MqttSendInfo TCPSendInfo;
|
|
Local_MQTT_Info_queue->put(TCPSendInfo);
|
|
quit();
|
|
wait();
|
|
}
|
|
void stop();
|
|
bool connectMqtt();
|
|
|
|
protected:
|
|
void run();
|
|
|
|
public:
|
|
void init(SyncQueue<_MqttSendInfo>* p_MQTT_Info_queue, std::string ip_, int port_);
|
|
void start_work();
|
|
void sendData(_MqttSendInfo* TCPSendInfo, int Num);
|
|
|
|
public:
|
|
SyncQueue<_MqttSendInfo>* Local_MQTT_Info_queue;
|
|
std::atomic_bool isLoop = { 0 };
|
|
QMqttClient m_client;
|
|
};
|
|
#endif |