-
Notifications
You must be signed in to change notification settings - Fork 3
/
PubSubMqttMessageHandler.cpp
102 lines (77 loc) · 3.02 KB
/
PubSubMqttMessageHandler.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
* Create by Bassirou NGOM
* 09/09/2018
*/
#include "PubSubMqttMessageHandler.h"
MqttMessageHandlerInterface *__mqttMessageHandler = nullptr;
PubSubMqttMessageHandler::PubSubMqttMessageHandler(PubSubClient& pubSub): pubSubClient(pubSub){}
PubSubMqttMessageHandler::PubSubMqttMessageHandler(Client& client){
pubSubClient = PubSubClient(client);
}
PubSubMqttMessageHandler::PubSubMqttMessageHandler(IPAddress addr, uint16_t port, Client& client){
pubSubClient = PubSubClient(addr, port, client);
}
/*PubSubMqttMessageHandler::PubSubMqttMessageHandler(IPAddress addr, uint16_t port, MQTT_CALLBACK_SIGNATURE,Client& client){
pubSubClient = PubSubClient(addr, port, MQTT_CALLBACK_SIGNATURE, client);
}*/
bool PubSubMqttMessageHandler::begin(){
if (core == nullptr) {
return false;
}
__mqttMessageHandler = this;
return true;
}
void PubSubMqttMessageHandler::setCore(Core *core) {
this->core = core;
}
void PubSubMqttMessageHandler::setLogger(LoggerInterface *logger) {
this->logger = logger;
}
void PubSubMqttMessageHandler::setServer(uint8_t *ip, uint16_t port) {
pubSubClient.setServer(ip, port);
}
void PubSubMqttMessageHandler::setServer(const char *hostname, uint16_t port) {
pubSubClient.setServer(hostname, port);
}
bool PubSubMqttMessageHandler::connect(const char *id) {
return pubSubClient.connect(id);
}
bool PubSubMqttMessageHandler::connect(const char *id, const char *user, const char *pass) {
return pubSubClient.connect(id, user, pass);
}
bool PubSubMqttMessageHandler::connect(const char *id, const char *willTopic, uint8_t willQos, bool willRetain, const uint8_t *willMessage,
const uint16_t willMessageLength) {
return pubSubClient.connect(id, willTopic, willQos, willRetain, willMessage);//,
//willMessageLength);
}
bool PubSubMqttMessageHandler::connect(const char *id, const char *user, const char *pass, const char *willTopic, uint8_t willQos, bool willRetain,
const uint8_t *willMessage, const uint16_t willMessageLength) {
return this->pubSubClient.connect(id, user, pass, willTopic, willQos, willRetain,
willMessage); //willMessageLength);
}
void PubSubMqttMessageHandler::disconnect() {
pubSubClient.disconnect();
}
bool PubSubMqttMessageHandler::subscribe(const char *topic, uint8_t qos) {
return pubSubClient.subscribe(topic, qos);
}
bool PubSubMqttMessageHandler::publish(const char *topic, const uint8_t *payload, uint16_t plength, uint8_t qos, bool retained){
return pubSubClient.publish(topic,
payload,
plength,
//qos,
retained);
}
bool PubSubMqttMessageHandler::unsubscribe(const char *topic){
return pubSubClient.unsubscribe(topic);
}
bool PubSubMqttMessageHandler::receive_publish(char *topic, uint8_t *payload, uint32_t length){
int16_t publish_result = core->publish(topic, payload, length, false);
return publish_result == SUCCESS;
}
bool PubSubMqttMessageHandler::loop(){
return pubSubClient.loop();
}
PubSubClient& PubSubMqttMessageHandler::getPubSubClient(){
return pubSubClient;
}