90 lines
2.3 KiB
C++
90 lines
2.3 KiB
C++
#ifndef MQTTCLIENTWRAPPER_H
|
|
#define MQTTCLIENTWRAPPER_H
|
|
|
|
|
|
#include "defines.h"
|
|
#include <QtMqtt/QtMqtt>
|
|
#include <QMqttClient>
|
|
#include "CloudParams.h"
|
|
#include "MQTTMessage.h"
|
|
#include <QList>
|
|
|
|
|
|
|
|
class COtarcikCan;
|
|
class CCANDevice;
|
|
class CComputerBoardInterface;
|
|
|
|
class CMQTTClientWrapper : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
typedef enum
|
|
{
|
|
MQTT_DROP_MSG_MODE,
|
|
MQTT_TRANSMIT_MSG_MODE,
|
|
MQTT_QUEUE_MSG_MODE
|
|
}eMQTTMsgQueuingMode;
|
|
|
|
CMQTTClientWrapper();
|
|
~CMQTTClientWrapper();
|
|
int SetMQTTParams(CCloudParams *Params);
|
|
#ifdef ENABLE_CHIPSET_DRIVER
|
|
int SetCPUInterface(CComputerBoardInterface *CPUIF);
|
|
#endif
|
|
int SetMQTTServerPresenceCANBit(quint64 CANBit);
|
|
int ConnectToBroker();
|
|
int NewMQTTMessages(QList<CMQTTMessage> MessagesList);
|
|
int DisconnectFromBroker();
|
|
int SendMQTTTestMessage();
|
|
int SetCANDevicesList(QList<CCANDevice*> *List);
|
|
int StartMQTTClient();
|
|
int StopMQTTClient();
|
|
quint64 GetMQTTServerPresenceCANMask();
|
|
bool IsMQTTClientConnected();
|
|
QString GetMQTTClientConnectionState();
|
|
int SendMQTTMessages(QList<CMQTTMessage> *MessagesList);
|
|
|
|
#ifdef ENABLE_DEVELOPMENT_DEBUG_TOOLS
|
|
int ForceMQTTClientDisconnection(bool Disconnect);
|
|
bool mMQTTDisconnectionForced;
|
|
#endif
|
|
|
|
|
|
COtarcikCan *mProgramPtr;
|
|
private:
|
|
QTimer *mMQTTRefreshTimer;
|
|
QTimer *mMQTTReconnectTimer;
|
|
QTimer *mMQTTQueueFlushTimer;
|
|
eMQTTMsgQueuingMode mMessagesQueueMode;
|
|
bool mDisconnectionIsVoluntary;
|
|
QMqttClient mMQTTClient;
|
|
CCloudParams mMQTTParams;
|
|
QList<CCANDevice*> *mCANDevicesList;
|
|
QList<CMQTTMessage*> mMQTTMessagesQueue;
|
|
bool mIsClientConnecting;
|
|
QString mCircularBufferStatusText, mBufferingModeText, mUploadTimeText;
|
|
#ifdef ENABLE_CHIPSET_DRIVER
|
|
CComputerBoardInterface *mCPUInterface;
|
|
#endif
|
|
CMQTTMessage GetSystemStatusMessage();
|
|
|
|
int SendNextQueueMessage();
|
|
quint64 mMQTTPresenceCANBit;
|
|
|
|
|
|
int UpdateGUIBufferingStatus();
|
|
|
|
public slots:
|
|
void StateChanged();
|
|
void MQTTSendTimerExpired();
|
|
void MQTTReconnectTimerExpired();
|
|
void MQTTQueueFlushTimerExipred();
|
|
void MQTTClientError(QMqttClient::ClientError error);
|
|
void MQTTMessageSent(qint32 MsgID);
|
|
void MQTTMessageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties);
|
|
|
|
};
|
|
|
|
#endif // MQTTCLIENTWRAPPER_H
|