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.
Cigarette/Cigarette/Thread/threadSendMqtt.h

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