161 lines
3.2 KiB
C++
161 lines
3.2 KiB
C++
#include <Arduino.h>
|
|
#include "NetworkDevice.h"
|
|
#include "../Logger.h"
|
|
|
|
void NetworkDevice::printError()
|
|
{
|
|
Log->print(F("Free Heap: "));
|
|
Log->println(ESP.getFreeHeap());
|
|
}
|
|
|
|
void NetworkDevice::update()
|
|
{
|
|
if (_mqttEnabled)
|
|
{
|
|
getMqttClient()->loop();
|
|
}
|
|
}
|
|
|
|
void NetworkDevice::mqttSetClientId(const char *clientId)
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
_mqttClientSecure->setClientId(clientId);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->setClientId(clientId);
|
|
}
|
|
}
|
|
|
|
void NetworkDevice::mqttSetCleanSession(bool cleanSession)
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
_mqttClientSecure->setCleanSession(cleanSession);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->setCleanSession(cleanSession);
|
|
}
|
|
}
|
|
|
|
uint16_t NetworkDevice::mqttPublish(const char *topic, uint8_t qos, bool retain, const char *payload)
|
|
{
|
|
return getMqttClient()->publish(topic, qos, retain, payload);
|
|
}
|
|
|
|
uint16_t NetworkDevice::mqttPublish(const char *topic, uint8_t qos, bool retain, const uint8_t *payload, size_t length)
|
|
{
|
|
return getMqttClient()->publish(topic, qos, retain, payload, length);
|
|
}
|
|
|
|
bool NetworkDevice::mqttConnected() const
|
|
{
|
|
return getMqttClient()->connected();
|
|
}
|
|
|
|
void NetworkDevice::mqttSetServer(const char *host, uint16_t port)
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
_mqttClientSecure->setServer(host, port);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->setServer(host, port);
|
|
}
|
|
}
|
|
|
|
bool NetworkDevice::mqttConnect()
|
|
{
|
|
return getMqttClient()->connect();
|
|
}
|
|
|
|
bool NetworkDevice::mqttDisconnect(bool force)
|
|
{
|
|
return getMqttClient()->disconnect(force);
|
|
}
|
|
|
|
void NetworkDevice::setWill(const char *topic, uint8_t qos, bool retain, const char *payload)
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
_mqttClientSecure->setWill(topic, qos, retain, payload);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->setWill(topic, qos, retain, payload);
|
|
}
|
|
}
|
|
|
|
void NetworkDevice::mqttSetCredentials(const char *username, const char *password)
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
_mqttClientSecure->setCredentials(username, password);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->setCredentials(username, password);
|
|
}
|
|
}
|
|
|
|
void NetworkDevice::mqttOnMessage(espMqttClientTypes::OnMessageCallback callback)
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
_mqttClientSecure->onMessage(callback);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->onMessage(callback);
|
|
}
|
|
}
|
|
|
|
void NetworkDevice::mqttOnConnect(espMqttClientTypes::OnConnectCallback callback)
|
|
{
|
|
if(_useEncryption)
|
|
{
|
|
_mqttClientSecure->onConnect(callback);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->onConnect(callback);
|
|
}
|
|
}
|
|
|
|
void NetworkDevice::mqttOnDisconnect(espMqttClientTypes::OnDisconnectCallback callback)
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
_mqttClientSecure->onDisconnect(callback);
|
|
}
|
|
else
|
|
{
|
|
_mqttClient->onDisconnect(callback);
|
|
}
|
|
}
|
|
|
|
uint16_t NetworkDevice::mqttSubscribe(const char *topic, uint8_t qos)
|
|
{
|
|
return getMqttClient()->subscribe(topic, qos);
|
|
}
|
|
|
|
void NetworkDevice::disableMqtt()
|
|
{
|
|
getMqttClient()->disconnect();
|
|
_mqttEnabled = false;
|
|
}
|
|
|
|
MqttClient *NetworkDevice::getMqttClient() const
|
|
{
|
|
if (_useEncryption)
|
|
{
|
|
return _mqttClientSecure;
|
|
}
|
|
else
|
|
{
|
|
return _mqttClient;
|
|
}
|
|
} |