powermeter refactor: use destructors to de-initialize
This commit is contained in:
parent
e78f5849c1
commit
673b9f4fa8
@ -16,7 +16,6 @@ public:
|
|||||||
~PowerMeterHttpJson();
|
~PowerMeterHttpJson();
|
||||||
|
|
||||||
bool init() final { return true; }
|
bool init() final { return true; }
|
||||||
void deinit() final { }
|
|
||||||
void loop() final;
|
void loop() final;
|
||||||
float getPowerTotal() const final;
|
float getPowerTotal() const final;
|
||||||
void doMqttPublish() const final;
|
void doMqttPublish() const final;
|
||||||
|
|||||||
@ -13,7 +13,6 @@ public:
|
|||||||
~PowerMeterHttpSml();
|
~PowerMeterHttpSml();
|
||||||
|
|
||||||
bool init() final { return true; }
|
bool init() final { return true; }
|
||||||
void deinit() final { }
|
|
||||||
void loop() final;
|
void loop() final;
|
||||||
bool updateValues();
|
bool updateValues();
|
||||||
char tibberPowerMeterError[256];
|
char tibberPowerMeterError[256];
|
||||||
|
|||||||
@ -8,8 +8,9 @@
|
|||||||
|
|
||||||
class PowerMeterMqtt : public PowerMeterProvider {
|
class PowerMeterMqtt : public PowerMeterProvider {
|
||||||
public:
|
public:
|
||||||
|
~PowerMeterMqtt();
|
||||||
|
|
||||||
bool init() final;
|
bool init() final;
|
||||||
void deinit() final;
|
|
||||||
void loop() final { }
|
void loop() final { }
|
||||||
float getPowerTotal() const final;
|
float getPowerTotal() const final;
|
||||||
void doMqttPublish() const final;
|
void doMqttPublish() const final;
|
||||||
|
|||||||
@ -21,7 +21,6 @@ public:
|
|||||||
// returns true if the provider is ready for use, false otherwise
|
// returns true if the provider is ready for use, false otherwise
|
||||||
virtual bool init() = 0;
|
virtual bool init() = 0;
|
||||||
|
|
||||||
virtual void deinit() = 0;
|
|
||||||
virtual void loop() = 0;
|
virtual void loop() = 0;
|
||||||
virtual float getPowerTotal() const = 0;
|
virtual float getPowerTotal() const = 0;
|
||||||
|
|
||||||
|
|||||||
@ -7,8 +7,9 @@
|
|||||||
|
|
||||||
class PowerMeterSerialSdm : public PowerMeterProvider {
|
class PowerMeterSerialSdm : public PowerMeterProvider {
|
||||||
public:
|
public:
|
||||||
|
~PowerMeterSerialSdm();
|
||||||
|
|
||||||
bool init() final;
|
bool init() final;
|
||||||
void deinit() final;
|
|
||||||
void loop() final;
|
void loop() final;
|
||||||
float getPowerTotal() const final;
|
float getPowerTotal() const final;
|
||||||
void doMqttPublish() const final;
|
void doMqttPublish() const final;
|
||||||
|
|||||||
@ -6,8 +6,9 @@
|
|||||||
|
|
||||||
class PowerMeterSerialSml : public PowerMeterSml {
|
class PowerMeterSerialSml : public PowerMeterSml {
|
||||||
public:
|
public:
|
||||||
|
~PowerMeterSerialSml();
|
||||||
|
|
||||||
bool init() final;
|
bool init() final;
|
||||||
void deinit() final;
|
|
||||||
void loop() final;
|
void loop() final;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@ -9,8 +9,9 @@
|
|||||||
|
|
||||||
class PowerMeterUdpSmaHomeManager : public PowerMeterProvider {
|
class PowerMeterUdpSmaHomeManager : public PowerMeterProvider {
|
||||||
public:
|
public:
|
||||||
|
~PowerMeterUdpSmaHomeManager();
|
||||||
|
|
||||||
bool init() final;
|
bool init() final;
|
||||||
void deinit() final;
|
|
||||||
void loop() final;
|
void loop() final;
|
||||||
float getPowerTotal() const final { return _powerMeterPower; }
|
float getPowerTotal() const final { return _powerMeterPower; }
|
||||||
void doMqttPublish() const final;
|
void doMqttPublish() const final;
|
||||||
|
|||||||
@ -24,10 +24,7 @@ void PowerMeterClass::updateSettings()
|
|||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> l(_mutex);
|
std::lock_guard<std::mutex> l(_mutex);
|
||||||
|
|
||||||
if (_upProvider) {
|
if (_upProvider) { _upProvider.reset(); }
|
||||||
_upProvider->deinit();
|
|
||||||
_upProvider = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto const& config = Configuration.get();
|
auto const& config = Configuration.get();
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,7 @@ bool PowerMeterMqtt::init()
|
|||||||
return _mqttSubscriptions.size() > 0;
|
return _mqttSubscriptions.size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PowerMeterMqtt::deinit()
|
PowerMeterMqtt::~PowerMeterMqtt()
|
||||||
{
|
{
|
||||||
for (auto const& t: _mqttSubscriptions) { MqttSettings.unsubscribe(t); }
|
for (auto const& t: _mqttSubscriptions) { MqttSettings.unsubscribe(t); }
|
||||||
_mqttSubscriptions.clear();
|
_mqttSubscriptions.clear();
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
#include "MessageOutput.h"
|
#include "MessageOutput.h"
|
||||||
#include "SerialPortManager.h"
|
#include "SerialPortManager.h"
|
||||||
|
|
||||||
void PowerMeterSerialSdm::deinit()
|
PowerMeterSerialSdm::~PowerMeterSerialSdm()
|
||||||
{
|
{
|
||||||
if (_upSdmSerial) {
|
if (_upSdmSerial) {
|
||||||
_upSdmSerial->end();
|
_upSdmSerial->end();
|
||||||
|
|||||||
@ -25,7 +25,7 @@ bool PowerMeterSerialSml::init()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PowerMeterSerialSml::deinit()
|
PowerMeterSerialSml::~PowerMeterSerialSml()
|
||||||
{
|
{
|
||||||
if (!_upSmlSerial) { return; }
|
if (!_upSmlSerial) { return; }
|
||||||
_upSmlSerial->end();
|
_upSmlSerial->end();
|
||||||
|
|||||||
@ -29,7 +29,7 @@ bool PowerMeterUdpSmaHomeManager::init()
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PowerMeterUdpSmaHomeManager::deinit()
|
PowerMeterUdpSmaHomeManager::~PowerMeterUdpSmaHomeManager()
|
||||||
{
|
{
|
||||||
SMAUdp.stop();
|
SMAUdp.stop();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user