config: add new Configuration class to simplify handling json config update api
This commit is contained in:
@@ -200,17 +200,14 @@ MQTTTelemetry::handleEventOnline(const InputEvent& evt)
|
||||
}
|
||||
|
||||
void
|
||||
MQTTTelemetry::handleConfigChange(const InputEvent& event)
|
||||
MQTTTelemetry::handleConfigChange(const Configuration& cfg)
|
||||
{
|
||||
Log.notice("Config change in mqtt");
|
||||
const JsonObject* obj = event.as<JsonObject>();
|
||||
if (obj->containsKey("mqtt.ip")) {
|
||||
const char* newIP = (*obj)["mqtt.ip"].as<JsonString>().c_str();
|
||||
Log.notice("ip: %s", newIP);
|
||||
strncpy(m_hostBuf, newIP, sizeof(m_hostBuf));
|
||||
m_hostBuf[sizeof(m_hostBuf)-1] = 0;
|
||||
m_mqtt.disconnect();
|
||||
}
|
||||
const char* newIP = cfg.get("mqtt.ip", m_hostBuf);
|
||||
Log.notice("ip: %s", newIP);
|
||||
strncpy(m_hostBuf, newIP, sizeof(m_hostBuf));
|
||||
m_hostBuf[sizeof(m_hostBuf)-1] = 0;
|
||||
m_mqtt.disconnect();
|
||||
}
|
||||
|
||||
void
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <PubSubClient.h>
|
||||
#include <ArduinoLog.h>
|
||||
#include "../../Config.h"
|
||||
|
||||
#include "../../Sequencer.h"
|
||||
|
||||
@@ -47,7 +48,7 @@ class MQTTTelemetry : public BufferedInputSource, OnlineTaskMixin, ConfigTaskMix
|
||||
|
||||
void handleEvent(const InputEvent& evt) override;
|
||||
void handleEventOnline(const InputEvent& evt) override;
|
||||
void handleConfigChange(const InputEvent& evt) override;
|
||||
void handleConfigChange(const Configuration& cfg) override;
|
||||
void loop() override;
|
||||
|
||||
void loopOnline() override;
|
||||
|
Reference in New Issue
Block a user