2
2
3
3
#include " ArduinoJson.h"
4
4
5
+ void (*messageReceivedCallback)(std::string , std::string);
6
+
7
+ void onMqttMessage (char * topic, char * payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total)
8
+ {
9
+ std::string topicString (topic);
10
+ std::string payloadString (payload);
11
+
12
+ messageReceivedCallback (topic, payload);
13
+ }
14
+
15
+
5
16
MqttManager::MqttManager ()
6
17
{
7
18
m_connected = false ;
@@ -24,9 +35,11 @@ void MqttManager::setup(std::string mqttServer, std::string mqttPort, std::strin
24
35
IPAddress server;
25
36
server.fromString (m_mqttServer.c_str ());
26
37
27
- m_mqttClient.setServer (server, m_mqttPort );
28
- m_mqttClient. setCredentials (mqttUsername. c_str (), mqttPassword. c_str ());
38
+ m_mqttClient.onMessage (onMqttMessage );
39
+
29
40
m_mqttClient.setCleanSession (false );
41
+ m_mqttClient.setCredentials (mqttUsername.c_str (), mqttPassword.c_str ());
42
+ m_mqttClient.setServer (server, m_mqttPort);
30
43
31
44
m_deviceStatusInfoTimer.start ();
32
45
m_checkConnectivityTimer.start ();
@@ -155,9 +168,9 @@ void MqttManager::publishMQTT(std::string topic, std::string payload)
155
168
}
156
169
}
157
170
158
- void MqttManager::setCallback (void (*callback)(char *, char *, AsyncMqttClientMessageProperties, size_t , size_t , size_t ))
171
+ void MqttManager::setCallback (void (*callback)(std::string , std::string ))
159
172
{
160
- m_mqttClient. onMessage ( callback) ;
173
+ messageReceivedCallback = callback;
161
174
}
162
175
163
176
void MqttManager::setLastWillMQTT (std::string topic, const char * payload)
0 commit comments