refactor NetworkDevice interface to work with new esp mqtt lib
This commit is contained in:
@@ -13,103 +13,104 @@ the LICENSE file.
|
||||
|
||||
#include "MqttClient.h"
|
||||
|
||||
template <typename T>
|
||||
class MqttClientSetup : public MqttClient {
|
||||
public:
|
||||
void setKeepAlive(uint16_t keepAlive) {
|
||||
_keepAlive = keepAlive * 1000; // s to ms conversion, will also do 16 to 32 bit conversion
|
||||
public:
|
||||
T& setKeepAlive(uint16_t keepAlive) {
|
||||
_keepAlive = keepAlive * 1000; // s to ms conversion, will also do 16 to 32 bit conversion
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
T& setClientId(const char* clientId) {
|
||||
_clientId = clientId;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
T& setCleanSession(bool cleanSession) {
|
||||
_cleanSession = cleanSession;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
T& setCredentials(const char* username, const char* password) {
|
||||
_username = username;
|
||||
_password = password;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
T& setWill(const char* topic, uint8_t qos, bool retain, const uint8_t* payload, size_t length) {
|
||||
_willTopic = topic;
|
||||
_willQos = qos;
|
||||
_willRetain = retain;
|
||||
_willPayload = payload;
|
||||
if (!_willPayload) {
|
||||
_willPayloadLength = 0;
|
||||
} else {
|
||||
_willPayloadLength = length;
|
||||
}
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
void setClientId(const char* clientId) {
|
||||
_clientId = clientId;
|
||||
T& setWill(const char* topic, uint8_t qos, bool retain, const char* payload) {
|
||||
return setWill(topic, qos, retain, reinterpret_cast<const uint8_t*>(payload), strlen(payload));
|
||||
}
|
||||
|
||||
}
|
||||
T& setServer(IPAddress ip, uint16_t port) {
|
||||
_ip = ip;
|
||||
_port = port;
|
||||
_useIp = true;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
void setCleanSession(bool cleanSession) {
|
||||
_cleanSession = cleanSession;
|
||||
T& setServer(const char* host, uint16_t port) {
|
||||
_host = host;
|
||||
_port = port;
|
||||
_useIp = false;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
}
|
||||
T& onConnect(espMqttClientTypes::OnConnectCallback callback) {
|
||||
_onConnectCallback = callback;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
void setCredentials(const char* username, const char* password) {
|
||||
_username = username;
|
||||
_password = password;
|
||||
T& onDisconnect(espMqttClientTypes::OnDisconnectCallback callback) {
|
||||
_onDisconnectCallback = callback;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
}
|
||||
T& onSubscribe(espMqttClientTypes::OnSubscribeCallback callback) {
|
||||
_onSubscribeCallback = callback;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
void setWill(const char* topic, uint8_t qos, bool retain, const uint8_t* payload, size_t length) {
|
||||
_willTopic = topic;
|
||||
_willQos = qos;
|
||||
_willRetain = retain;
|
||||
_willPayload = payload;
|
||||
if (!_willPayload) {
|
||||
_willPayloadLength = 0;
|
||||
} else {
|
||||
_willPayloadLength = length;
|
||||
}
|
||||
T& onUnsubscribe(espMqttClientTypes::OnUnsubscribeCallback callback) {
|
||||
_onUnsubscribeCallback = callback;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
}
|
||||
T& onMessage(espMqttClientTypes::OnMessageCallback callback) {
|
||||
_onMessageCallback = callback;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
void setWill(const char* topic, uint8_t qos, bool retain, const char* payload) {
|
||||
return setWill(topic, qos, retain, reinterpret_cast<const uint8_t*>(payload), strlen(payload));
|
||||
}
|
||||
T& onPublish(espMqttClientTypes::OnPublishCallback callback) {
|
||||
_onPublishCallback = callback;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
|
||||
void setServer(IPAddress ip, uint16_t port) {
|
||||
_ip = ip;
|
||||
_port = port;
|
||||
_useIp = true;
|
||||
/*
|
||||
T& onError(espMqttClientTypes::OnErrorCallback callback) {
|
||||
_onErrorCallback = callback;
|
||||
return static_cast<T&>(*this);
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
void setServer(const char* host, uint16_t port) {
|
||||
_host = host;
|
||||
_port = port;
|
||||
_useIp = false;
|
||||
|
||||
}
|
||||
|
||||
void onConnect(espMqttClientTypes::OnConnectCallback callback) {
|
||||
_onConnectCallback = callback;
|
||||
|
||||
}
|
||||
|
||||
void onDisconnect(espMqttClientTypes::OnDisconnectCallback callback) {
|
||||
_onDisconnectCallback = callback;
|
||||
|
||||
}
|
||||
|
||||
void onSubscribe(espMqttClientTypes::OnSubscribeCallback callback) {
|
||||
_onSubscribeCallback = callback;
|
||||
|
||||
}
|
||||
|
||||
void onUnsubscribe(espMqttClientTypes::OnUnsubscribeCallback callback) {
|
||||
_onUnsubscribeCallback = callback;
|
||||
|
||||
}
|
||||
|
||||
void onMessage(espMqttClientTypes::OnMessageCallback callback) {
|
||||
_onMessageCallback = callback;
|
||||
|
||||
}
|
||||
|
||||
void onPublish(espMqttClientTypes::OnPublishCallback callback) {
|
||||
_onPublishCallback = callback;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
void onError(espMqttClientTypes::OnErrorCallback callback) {
|
||||
_onErrorCallback = callback;
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
protected:
|
||||
protected:
|
||||
#if defined(ESP32)
|
||||
explicit MqttClientSetup(bool useTask, uint8_t priority = 1, uint8_t core = 1)
|
||||
: MqttClient(useTask, priority, core) {}
|
||||
explicit MqttClientSetup(bool useTask, uint8_t priority = 1, uint8_t core = 1)
|
||||
: MqttClient(useTask, priority, core) {}
|
||||
#else
|
||||
MqttClientSetup()
|
||||
MqttClientSetup()
|
||||
: MqttClient() {}
|
||||
#endif
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user