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