#ifndef MQTTCLIENTWRAPPER_H #define MQTTCLIENTWRAPPER_H #include "defines.h" #include #include #include "CloudParams.h" #include "MQTTMessage.h" #include 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 MessagesList); int DisconnectFromBroker(); int SendMQTTTestMessage(); int SetCANDevicesList(QList *List); int StartMQTTClient(); int StopMQTTClient(); quint64 GetMQTTServerPresenceCANMask(); #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 *mCANDevicesList; QList 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