2,新增“Apps”; 3,新增“Common”; 4,新增“FileList”; 5,新增“MediaX”; 6,新增“OpenSource”; 7,新增“Samples”; 8,新增“SoftwareBusinessLines”.
73 lines
2.0 KiB
C++
73 lines
2.0 KiB
C++
#ifndef MQTTCONNECT_H
|
|
#define MQTTCONNECT_H
|
|
|
|
#include "mosquitto.h"
|
|
#include "mosquittopp.h"
|
|
|
|
#include <thread>
|
|
#include <mutex>
|
|
|
|
#include <QObject>
|
|
|
|
// 设备通信模块
|
|
class MqttDealer : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit MqttDealer();
|
|
virtual ~MqttDealer();
|
|
|
|
public:
|
|
bool Open(const char* sDevIP, int iDevPort);
|
|
bool Close();
|
|
bool IsOpen();
|
|
|
|
bool Subcribe(QString strTopic);
|
|
bool Unsubcribe(QString strTopic);
|
|
|
|
void PublishDataByMQTT(QString strTopic, QString strData);
|
|
void PublishDataByMQTT(QString strTopic, QByteArray arrayData);
|
|
|
|
void SetHexData(bool bHexData);
|
|
|
|
private:
|
|
static bool InitMQTT();
|
|
static void UintMQTT();
|
|
static bool m_bIsInitMQTT;
|
|
|
|
signals:
|
|
void sigMQTTDisconnect();
|
|
void sigMQTTMessage(QString, QString);
|
|
void sigMQTTMessage(QString, QByteArray);
|
|
|
|
protected:
|
|
typedef void (MqttDealer::*ThreadRunFunPtr)();
|
|
static void ThreadEntry(ThreadRunFunPtr pRunFun, void* pOwner);
|
|
void ThreadFunLoop();
|
|
|
|
private:
|
|
static void mqtt_log_callback(struct mosquitto* mosq, void* ubuf, int level, const char* str);
|
|
static void mqtt_connect_callback(struct mosquitto* mosq, void* topic, int result);
|
|
static void mqtt_message_callback(struct mosquitto* mosq, void* obj, const struct mosquitto_message* message);
|
|
static void mqtt_disconnect_callback(struct mosquitto* mosq, void* obj, int result);
|
|
static void mqtt_publish_callback(struct mosquitto* mosq, void* obj, int mid);
|
|
|
|
private:
|
|
bool m_bOpen;
|
|
|
|
//MQTT
|
|
mosquitto* m_pMosquitto;
|
|
std::mutex m_varMutexMosquitto;
|
|
|
|
bool m_bThreadRunning;
|
|
std::thread* m_ptrThread;
|
|
|
|
QString m_strMqttServerIP; //MQTT服务器IP
|
|
int m_nMqttServerPort; //MQTT服务器连接端口
|
|
bool m_bConnectSuccess; //连接成功标志
|
|
|
|
bool m_bHexData;
|
|
};
|
|
|
|
#endif // MQTTCONNECT_H
|